Commit Graph

3223 Commits

Author SHA1 Message Date
Daniel Watkins 1a72757f01
fix: combine ANSI color codes before wrapping them (#5762)
* combine ANSI color codes before wrapping them

The existing code wraps each individual module's output for
`context.shell`, concatenates all that output together and passes it to
`AnsiStrings` to merge ANSI color codes.  However, the wrapping obscures
ANSI color codes, meaning that no merging is possible.

This commit changes the shell-specific wrapping to happen right before
output, once all modules' output has been concatenated together.  This
results in ANSI color codes being correctly merged, as well as reducing
the number of calls to `wrap_colorseq_for_shell` to one.

With a minimal `starship.toml`:

```
format = """$directory"""

[directory]
format = '[a]($style)[b]($style)'
```

The current code produces[0]:

```
\n%{\x1b[31m%}a%{\x1b[0m%}%{\x1b[31m%}b%{\x1b[0m%
```

And this commit's code:

```
\n%{\x1b[31m%}ab%{\x1b[0m%}
```

You can see that the current code emits an additional reset and repeated
color code between "a" and "b" compared to the new code.

[0] Produced in a Python shell with:

```
subprocess.check_output(
    "./target/debug/starship prompt", shell=True,
    env={"STARSHIP_CONFIG": "./starship.toml", "STARSHIP_SHELL": "zsh"}
)
```

* utils: return early from wrap_seq_for_shell unless wrapping required

* refactor(utils): simplify wrap_seq_for_shell

This commit modifies wrap_seq_for_shell to (a) return early for shells
with no wrapping required, and (b) determine the wrapping characters
once at the start of the function (rather than inline in the map
function for every character).
2024-04-06 15:28:26 +02:00
Alper Cugun 9c1eaddae1
feat(username): add aliases option (#5855)
* Create place to put it in the config

* Initial functional version

* Fix grammar

* Add option documentation to README

* Add test for two aliases and emoji translation

* Remove println

* Rewrite match as iflet

* Improve converting the reference

* Format file

* Try to restore autoformat of markdown

* Replace toml:Map with concrete IndexMap

* Update schema

* Add option that got lost
2024-04-05 23:57:13 +02:00
[Error_27] 335c514e9e
feat(odin): Add Odin Lang module (#5873)
* Add Odin lang module

* add utils string and remove commit number from output

* switch to new symbol because ZWJ support is rare

* add config docs

* add option to show the commit number

* fix lack of trimming

* fix formatting to comply with checks

* Add trailing newline to comply with cargo fmt

* Add new Odin test and add newline in cmd output
2024-04-05 23:56:49 +02:00
boreinhardt 34a8f7e628
feat(gleam): Add Gleam module (#5886)
Co-authored-by: benno.reinhardt <benno.reinhardt@silbury.com>
2024-04-05 23:56:15 +02:00
renovate[bot] f9c4bef85d
build(deps): update rust crate notify-rust to 4.11.0 2024-04-04 23:55:01 +00:00
renovate[bot] 86235967b4 build(deps): update crate-ci/typos action to v1.20.4 2024-04-04 19:33:47 +00:00
Sam ab3f529794
docs(faq): fix typo (#5905) 2024-04-04 21:33:14 +02:00
renovate[bot] a25a7d2f7f
build(deps): update rust crate strsim to 0.11.1 2024-04-03 01:58:21 +00:00
renovate[bot] 089d6d73cb
build(deps): update crate-ci/typos action to v1.20.3 2024-04-02 18:48:47 +00:00
Koichi Murase 0f859e8b61
fix(bash): use `eval` instead of a procsub for the POSIX mode (#5020)
fix(bash): use eval instead of a procsub for the POSIX mode
2024-04-02 10:45:02 +02:00
renovate[bot] 55e11a42e5
build(deps): update pest crates to 2.7.9 2024-04-02 04:55:31 +00:00
renovate[bot] c4b6fd0804
build(deps): update crate-ci/typos action to v1.20.1 2024-04-02 00:03:27 +00:00
renovate[bot] d12d9a2751
build(deps): update crate-ci/typos action to v1.20.0 2024-04-01 19:16:58 +00:00
Andrei Lapshin 5d4007f5c1
docs(preset): fix incorrect Rocky Linux key in plain text symbols preset (#5899) 2024-04-01 15:17:14 +02:00
Ramy be4e97c2d9
fix(bun): change default icon (#5880)
* feat: change bun icon #5871

* fix: reverts docs
2024-03-30 09:38:19 +01:00
Matan Kushner df477694d3
docs(i18n): new Crowdin updates (#5883)
* New translations readme.md (Chinese Traditional)

* New translations readme.md (Chinese Traditional)

* New translations readme.md (Chinese Traditional)

* New translations readme.md (Chinese Traditional)

* New translations readme.md (Chinese Traditional)
2024-03-30 00:42:36 +09:00
github-actions[bot] 4131edaa60
chore(master): release 1.18.2 (#5882)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-29 16:41:58 +01:00
David Knaack 940eca5867
chore(cargo-deny): migrate to advisories & licenses v2 config (#5877) 2024-03-29 16:40:58 +01:00
renovate[bot] babf941cac
build(deps): update rust crate yaml-rust2 to 0.8.0 2024-03-29 11:19:49 +00:00
David Knaack 796a411602
fix: replace unmaintained crates `yaml-rust`, `dirs-next` (#5887) 2024-03-29 12:14:57 +01:00
renovate[bot] e4d0c2db5a
build(deps): update rust crate chrono to 0.4.37 2024-03-27 14:35:21 +00:00
renovate[bot] 334e98d192
build(deps): update rust crate serde_json to 1.0.115 2024-03-26 07:21:08 +00:00
renovate[bot] 1ec8626f26
build(deps): update rust crate clap to 4.5.4 2024-03-26 01:42:08 +00:00
David Knaack eb80dbab99
revert: "build(deps): update rust crate gix to 0.61.1" (#5878) 2024-03-25 10:59:43 +09:00
Matan Kushner 0696b32142
docs(i18n): new Crowdin updates (#5869)
* New translations readme.md (French)

* New translations readme.md (Spanish)

* New translations readme.md (Arabic)

* New translations readme.md (German)

* New translations readme.md (Italian)

* New translations readme.md (Japanese)

* New translations readme.md (Korean)

* New translations readme.md (Dutch)

* New translations readme.md (Norwegian)

* New translations readme.md (Polish)

* New translations readme.md (Portuguese)

* New translations readme.md (Russian)

* New translations readme.md (Turkish)

* New translations readme.md (Ukrainian)

* New translations readme.md (Chinese Simplified)

* New translations readme.md (Chinese Traditional)

* New translations readme.md (Vietnamese)

* New translations readme.md (Portuguese, Brazilian)

* New translations readme.md (Indonesian)

* New translations readme.md (Bengali)

* New translations readme.md (Sorani (Kurdish))

* New translations readme.md (French)

* New translations readme.md (Spanish)

* New translations readme.md (Arabic)

* New translations readme.md (German)

* New translations readme.md (Italian)

* New translations readme.md (Japanese)

* New translations readme.md (Korean)

* New translations readme.md (Dutch)

* New translations readme.md (Norwegian)

* New translations readme.md (Polish)

* New translations readme.md (Portuguese)

* New translations readme.md (Russian)

* New translations readme.md (Turkish)

* New translations readme.md (Ukrainian)

* New translations readme.md (Chinese Simplified)

* New translations readme.md (Chinese Traditional)

* New translations readme.md (Vietnamese)

* New translations readme.md (Portuguese, Brazilian)

* New translations readme.md (Indonesian)

* New translations readme.md (Bengali)

* New translations readme.md (Sorani (Kurdish))
2024-03-24 18:52:26 +09:00
renovate[bot] 413364ed2a build(deps): update rust crate rayon to 1.10.0 2024-03-24 09:52:15 +00:00
github-actions[bot] 422934dc71
chore(master): release 1.18.1 (#5874)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-24 10:51:46 +01:00
David Knaack 7dcd26a2c8
docs: document ble.sh version requirement (#5861) 2024-03-24 08:04:11 +01:00
David Knaack d5861f9f97
fix: replace all remaining paths referring to vuepress (#5859) 2024-03-24 08:03:55 +01:00
David Knaack d421f63785
fix(deps): update rust crate os_info to 3.8.2 (#5870)
Previous versions were yanked because they did not build on FreeBSD.
2024-03-24 08:03:10 +01:00
renovate[bot] 899e3b7d6d
build(deps): update dependency vitepress to ^1.0.1 2024-03-23 07:27:24 +00:00
renovate[bot] c9542a3d87
build(deps): update rust crate which to 6.0.1 2024-03-23 07:19:10 +00:00
Brett Cannon d8ab405b60
docs(faq): Tweak some grammar in the FAQ (#5867)
Tweak some grammar in the FAQ
2024-03-23 08:18:02 +01:00
renovate[bot] 3ed5f53808 build(deps): update rust crate regex to 1.10.4 2024-03-23 05:01:25 +00:00
renovate[bot] a3a3735289
build(deps): update rust crate indexmap to 2.2.6 2024-03-23 01:54:33 +00:00
renovate[bot] df107acc6d build(deps): update embarkstudios/cargo-deny-action action to v1.6.2 2024-03-22 14:36:33 +00:00
renovate[bot] 19ae0fbe8c
build(deps): update rust crate gix to 0.61.1 2024-03-22 06:36:07 +00:00
Matan Kushner 82a8d69432
docs(i18n): new Crowdin updates (#5858)
* New translations readme.md (French)

* New translations readme.md (Spanish)

* New translations readme.md (Arabic)

* New translations readme.md (German)

* New translations readme.md (Italian)

* New translations readme.md (Japanese)

* New translations readme.md (Korean)

* New translations readme.md (Dutch)

* New translations readme.md (Norwegian)

* New translations readme.md (Polish)

* New translations readme.md (Portuguese)

* New translations readme.md (Russian)

* New translations readme.md (Turkish)

* New translations readme.md (Ukrainian)

* New translations readme.md (Chinese Simplified)

* New translations readme.md (Chinese Traditional)

* New translations readme.md (Vietnamese)

* New translations readme.md (Portuguese, Brazilian)

* New translations readme.md (Indonesian)

* New translations readme.md (Bengali)

* New translations readme.md (Sorani (Kurdish))

* New translations readme.md (German)
2024-03-22 00:15:33 +09:00
github-actions[bot] a5108a7638
chore(master): release 1.18.0 (#5684)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-21 16:14:45 +01:00
Matan Kushner 2da45e7984
docs(i18n): new Crowdin updates (#5818)
* New translations readme.md (French)

* New translations readme.md (French)

* New translations readme.md (French)

* New translations readme.md (French)

* New translations readme.md (French)

* New translations readme.md (Spanish)

* New translations readme.md (Spanish)

* New translations readme.md (Spanish)

* New translations readme.md (Spanish)

* New translations readme.md (Spanish)

* New translations readme.md (Spanish)

* New translations readme.md (Arabic)

* New translations readme.md (Arabic)

* New translations readme.md (Arabic)

* New translations readme.md (Arabic)

* New translations readme.md (German)

* New translations readme.md (German)

* New translations readme.md (German)

* New translations readme.md (German)

* New translations readme.md (Italian)

* New translations readme.md (Italian)

* New translations readme.md (Italian)

* New translations readme.md (Italian)

* New translations readme.md (Japanese)

* New translations readme.md (Japanese)

* New translations readme.md (Japanese)

* New translations readme.md (Japanese)

* New translations readme.md (Korean)

* New translations readme.md (Korean)

* New translations readme.md (Korean)

* New translations readme.md (Korean)

* New translations readme.md (Dutch)

* New translations readme.md (Dutch)

* New translations readme.md (Dutch)

* New translations readme.md (Norwegian)

* New translations readme.md (Norwegian)

* New translations readme.md (Norwegian)

* New translations readme.md (Polish)

* New translations readme.md (Polish)

* New translations readme.md (Polish)

* New translations readme.md (Polish)

* New translations readme.md (Portuguese)

* New translations readme.md (Portuguese)

* New translations readme.md (Portuguese)

* New translations readme.md (Russian)

* New translations readme.md (Russian)

* New translations readme.md (Russian)

* New translations readme.md (Russian)

* New translations readme.md (Turkish)

* New translations readme.md (Turkish)

* New translations readme.md (Turkish)

* New translations readme.md (Turkish)

* New translations readme.md (Turkish)

* New translations readme.md (Ukrainian)

* New translations readme.md (Ukrainian)

* New translations readme.md (Ukrainian)

* New translations readme.md (Ukrainian)

* New translations readme.md (Ukrainian)

* New translations readme.md (Ukrainian)

* New translations readme.md (Chinese Simplified)

* New translations readme.md (Chinese Simplified)

* New translations readme.md (Chinese Simplified)

* New translations readme.md (Chinese Simplified)

* New translations readme.md (Chinese Simplified)

* New translations readme.md (Chinese Simplified)

* New translations readme.md (Chinese Traditional)

* New translations readme.md (Chinese Traditional)

* New translations readme.md (Chinese Traditional)

* New translations readme.md (Chinese Traditional)

* New translations readme.md (Vietnamese)

* New translations readme.md (Vietnamese)

* New translations readme.md (Vietnamese)

* New translations readme.md (Vietnamese)

* New translations readme.md (Portuguese, Brazilian)

* New translations readme.md (Portuguese, Brazilian)

* New translations readme.md (Portuguese, Brazilian)

* New translations readme.md (Portuguese, Brazilian)

* New translations readme.md (Portuguese, Brazilian)

* New translations readme.md (Portuguese, Brazilian)

* New translations readme.md (Indonesian)

* New translations readme.md (Indonesian)

* New translations readme.md (Indonesian)

* New translations readme.md (Indonesian)

* New translations readme.md (Bengali)

* New translations readme.md (Bengali)

* New translations readme.md (Bengali)

* New translations readme.md (Sorani (Kurdish))

* New translations readme.md (Sorani (Kurdish))

* New translations readme.md (Sorani (Kurdish))

* New translations readme.md (French)

* New translations readme.md (French)

* New translations readme.md (French)

* New translations readme.md (Spanish)

* New translations readme.md (Spanish)

* New translations readme.md (Spanish)

* New translations readme.md (Arabic)

* New translations readme.md (Arabic)

* New translations readme.md (German)

* New translations readme.md (German)

* New translations readme.md (Italian)

* New translations readme.md (Italian)

* New translations readme.md (Japanese)

* New translations readme.md (Japanese)

* New translations readme.md (Korean)

* New translations readme.md (Dutch)

* New translations readme.md (Dutch)

* New translations readme.md (Norwegian)

* New translations readme.md (Norwegian)

* New translations readme.md (Polish)

* New translations readme.md (Polish)

* New translations readme.md (Russian)

* New translations readme.md (Russian)

* New translations readme.md (Russian)

* New translations readme.md (Turkish)

* New translations readme.md (Turkish)

* New translations readme.md (Ukrainian)

* New translations readme.md (Ukrainian)

* New translations readme.md (Ukrainian)

* New translations readme.md (Chinese Simplified)

* New translations readme.md (Chinese Simplified)

* New translations readme.md (Chinese Simplified)

* New translations readme.md (Chinese Traditional)

* New translations readme.md (Chinese Traditional)

* New translations readme.md (Vietnamese)

* New translations readme.md (Vietnamese)

* New translations readme.md (Portuguese, Brazilian)

* New translations readme.md (Portuguese, Brazilian)

* New translations readme.md (Portuguese, Brazilian)

* New translations readme.md (Indonesian)

* New translations readme.md (Indonesian)

* New translations readme.md (French)

* New translations readme.md (Bengali)

* New translations readme.md (Bengali)

* New translations readme.md (Sorani (Kurdish))

* New translations readme.md (Sorani (Kurdish))

* New translations readme.md (Indonesian)

* New translations readme.md (Indonesian)

* New translations readme.md (Spanish)

* New translations readme.md (Spanish)

* New translations readme.md (Spanish)

* New translations readme.md (Ukrainian)

* New translations readme.md (Ukrainian)

* New translations readme.md (Ukrainian)

* New translations readme.md (Ukrainian)

* New translations readme.md (Indonesian)

* New translations readme.md (Dutch)

* New translations readme.md (French)

* New translations readme.md (Spanish)

* New translations readme.md (Arabic)

* New translations readme.md (German)

* New translations readme.md (Italian)

* New translations readme.md (Japanese)

* New translations readme.md (Korean)

* New translations readme.md (Dutch)

* New translations readme.md (Norwegian)

* New translations readme.md (Polish)

* New translations readme.md (Portuguese)

* New translations readme.md (Russian)

* New translations readme.md (Turkish)

* New translations readme.md (Ukrainian)

* New translations readme.md (Chinese Simplified)

* New translations readme.md (Chinese Traditional)

* New translations readme.md (Vietnamese)

* New translations readme.md (Portuguese, Brazilian)

* New translations readme.md (Indonesian)

* New translations readme.md (Bengali)

* New translations readme.md (Sorani (Kurdish))

* New translations readme.md (Dutch)

* New translations readme.md (French)

* New translations readme.md (Spanish)

* New translations readme.md (Arabic)

* New translations readme.md (German)

* New translations readme.md (Italian)

* New translations readme.md (Japanese)

* New translations readme.md (Korean)

* New translations readme.md (Dutch)

* New translations readme.md (Norwegian)

* New translations readme.md (Polish)

* New translations readme.md (Portuguese)

* New translations readme.md (Russian)

* New translations readme.md (Turkish)

* New translations readme.md (Ukrainian)

* New translations readme.md (Chinese Simplified)

* New translations readme.md (Chinese Traditional)

* New translations readme.md (Vietnamese)

* New translations readme.md (Portuguese, Brazilian)

* New translations readme.md (Indonesian)

* New translations readme.md (Bengali)

* New translations readme.md (Sorani (Kurdish))

* New translations readme.md (French)

* New translations readme.md (Ukrainian)

* New translations readme.md (Spanish)

* New translations readme.md (Turkish)

* New translations readme.md (Ukrainian)

* New translations readme.md (French)

* New translations readme.md (Spanish)

* New translations readme.md (Arabic)

* New translations readme.md (German)

* New translations readme.md (Italian)

* New translations readme.md (Japanese)

* New translations readme.md (Korean)

* New translations readme.md (Dutch)

* New translations readme.md (Norwegian)

* New translations readme.md (Polish)

* New translations readme.md (Portuguese)

* New translations readme.md (Russian)

* New translations readme.md (Turkish)

* New translations readme.md (Ukrainian)

* New translations readme.md (Chinese Simplified)

* New translations readme.md (Chinese Traditional)

* New translations readme.md (Vietnamese)

* New translations readme.md (Portuguese, Brazilian)

* New translations readme.md (Indonesian)

* New translations readme.md (Bengali)

* New translations readme.md (Sorani (Kurdish))

* New translations readme.md (Spanish)

* New translations readme.md (Arabic)

* New translations readme.md (German)

* New translations readme.md (Italian)

* New translations readme.md (Japanese)

* New translations readme.md (Korean)

* New translations readme.md (Dutch)

* New translations readme.md (Norwegian)

* New translations readme.md (Polish)

* New translations readme.md (Portuguese)

* New translations readme.md (Russian)

* New translations readme.md (Turkish)

* New translations readme.md (Ukrainian)

* New translations readme.md (Chinese Simplified)

* New translations readme.md (Chinese Traditional)

* New translations readme.md (Vietnamese)

* New translations readme.md (Portuguese, Brazilian)

* New translations readme.md (Indonesian)

* New translations readme.md (French)

* New translations readme.md (Bengali)

* New translations readme.md (Sorani (Kurdish))
2024-03-21 12:42:05 +01:00
Alper Cugun e39e731907
docs(bun): Add nodejs override to bun config documentation (#5834) 2024-03-21 12:41:20 +01:00
David Knaack df65b2155f
feat(os): add new os symbols (#5849) 2024-03-21 12:39:28 +01:00
Texas Toland d308e918ee
fix(nu): continuation prompt not being displayed correctly (#5851)
Resolve #5847 by initializing `$env.STARSHIP_SHELL` before calling `starship`

Most minimal change possible. Other simplification are possible but not know to be
backwards compatible. Also considered `with-env` or `STARSHIP_SHELL=nu starship` but
they'd be worse. Happy to reformat indentation if desired.
2024-03-21 12:38:38 +01:00
Matan Kushner ae4618996b
Update sponsors 2024-03-21 15:45:06 +09:00
David Knaack ab840439e3
fix(status): fix pipestatus width calculation (#5036)
closes #3162

Co-authored-by: flw <flw@cpan.org>
2024-03-20 22:58:33 +01:00
marcybell 938ea3c401
feat: $gemset variable for Ruby module (#5429)
* $gemset variable for Ruby module

* typo

* Added test for no GEM_HOME env set

* Formatting

* Uses `rvm current` for gemset, no more version num
2024-03-20 22:57:26 +01:00
Virgile Andreani 0e49f04a6b
feat(quarto): Add Quarto module (#5820)
Add Quarto module

* Adapted from the Typst module
2024-03-20 22:50:12 +01:00
renovate[bot] d879317d51 build(deps): update rust crate toml_edit to 0.22.9 2024-03-20 21:47:52 +00:00
Mick Hohmann b8a812b932
feat(username): add detect_env_vars as option (#5833)
* Added the option "detect_env_vars" to the `username` module

with the same functionality as in the `hostname` module.

* Fixed logic error and added test to catch it

* build(deps): update dependency vitepress to ^1.0.0-rc.45

* build(deps): update rust crate shadow-rs to 0.27.1

* Added the option "detect_env_vars" to the `username` module

with the same functionality as in the `hostname` module.

* Fixed logic error and added test to catch it

* Removed unused gix import

* Removed unused gix import, again

* Removed unused gix import. Next try

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-20 22:47:32 +01:00
David Knaack aef1a3f275
feat(release): add winget arm64 push & repo sync (#5033) 2024-03-20 19:00:50 +09:00