* feat(k8s): Add detect env vars option
Have added the option to trigger the k8s module based on what env vars
are set, this has been done in a backwards compatible way so if nothing
is changed from the defaults the module will still behave the same way
as before. This is similar to what I did in #4486 for the python module
and if goes well I'd like to rollout to other modules.
* Update src/modules/kubernetes.rs
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* Update src/modules/kubernetes.rs
---------
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* 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).
* 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
* 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