* docs(config): add quote to unquoted strings
Add quote to unquoted strings
There are some unquoted default value strings in module's "options" table
* docs(config): Unify quotes in Option table
some strings in modules' "options" table are wrapped in single quotes, some are
wrapped in double quotes,
standardize them to be wrapped in single quotes
* docs(config): Format file using dprint
* Added hostname.detect_env_vars
based on the newly added context::detect_env_vars
- extended context::detect_env_vars to check for negated environment
variables as well, analogous to the other detect modules
- made hostname.detect_env_vars only active if ssh_only is set to false
for backwards compatibility
Co-authored-by: Dominik Sander <dsander@users.noreply.github.com>
* added clippy recommendations, removed unneeded comments
* Added new logic (suggested in https://github.com/starship/starship/pull/5196#issuecomment-1566228913)
The new `detect_env_vars` now requires either SSH_ONLY to be false or the
environment variable SSH_CONNECTION to be set, so that is will be used
* Fixed typo
* Refactored the detect_env_vars function for early returns and better readability
* Change boolean logic for better readability
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* Apply suggestions from code review to `detect_env_vars` method.
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* Fixed bracket error & updated comments
- fixed bracket error in hostname.rs, after changes
- updated comments for context.rs, for the suggested changes
* Removed obsolete warning from docs/config/README.md
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
---------
Co-authored-by: Dominik Sander <dsander@users.noreply.github.com>
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* feat(kubernetes): Add styling based on current context
Add an ability to customize the configuration of the kubernetes module style, based on the current context.
A new variable is added to the config section, called environments, which is a list of possible customizations. Each such customization is an object with a context_pattern regex, which matches context name, and an optional style and icon that will override the global configuration, if the currently used context matched the context_pattern.
Based on multiple attempts to add per-context styling and symbols to the kubernetes module.
- https://github.com/starship/starship/pull/1568 by @lht https://github.com/lht -> base
- https://github.com/starship/starship/pull/614 by @nomaed https://github.com/nomaed -> naming, symbol, some tests
Rebased and combined by @jankatins
Contains the following squasched commits
- Rename to contexts and move aliases into contexts
- Move deprecated functions to a submodule
- Cleanup: ignore None-valued KubeCtxComponents
- Add regex func + clean up matching-context search
- Placate paper clip
Closes: https://github.com/starship/starship/issues/570
Co-authored-by: =?UTF-8?q?Boris=20Aranovic=CC=8C?= <nomaed@gmail.com>
Co-authored-by: Jan Katins <jasc@gmx.net>
Co-authored-by: Kevin Song <chips@ksong.dev>
* refactor(kubernetes): Remove options and use clearer names
* test(kubernetes): Handle duplicated contexts right
* refactor(kubernetes): Cleaner user matching
* fix(kubernetes): Only show warning in case of problems
* feat(kubernetes): Add back alias replacements
* refactor(kubernetes): Cleanup rust usage
---------
Co-authored-by: Haitao Li <lihaitao@gmail.com>
Co-authored-by: =?UTF-8?q?Boris=20Aranovic=CC=8C?= <nomaed@gmail.com>
Co-authored-by: Kevin Song <chips@ksong.dev>
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* feat(fossil_metrics): add fossil_metrics module
* Return early if not in a Fossil check-out
* Add more tests for fossil_metrics
* Move is in Fossil checkout check after module enabled check
* Update type for new toml version
* Update the config file schema
* Rework parsing of fossil diff output
* Fix Fossil check-out detection in subdirectories
* Use regex to only match expected fossil diff output
* Use shared ancestor scanning and fix detection on Windows
* Add note on minimum Fossil version
* build(deps): update clap crates
* build(deps): update rust crate notify-rust to 4.7.1
* build(deps): update rust crate shadow-rs to 0.20.1
* build(deps): update rust crate git-features to 0.26.5
* build(deps): update rust crate notify-rust to 4.8.0
* docs(kubernetes): Remove extra backspace from regex in example (#4905)
Remove extra backspace from regex in example
In the example, `[\\w-]` would match a literal backspace `\`, the
character `w` or a dash `-`. By removing the backspace, instead it
matches any "word character" `\w` or a dash `-`.
* docs(i18n): new Crowdin updates (#4877)
* chore: use updated gitoxide crate names (#4913)
* build(deps): update rust crate gix to 0.37.1
* build(deps): update rust crate toml_edit to 0.19.4
* docs(install): update nushell instructions in installation script (#4921)
Improve Nushell installation instruction
Consistently use `save -f` rather than `save`; the latter fails if the
file already exists
Signed-off-by: Michel Alexandre Salim <michel@michel-slm.name>
* build(deps): update rust crate clap_complete to 4.1.3
* build(deps): update rust crate gix to 0.37.2
* docs(i18n): new Crowdin updates (#4925)
* chore(master): release 1.13.0 (#4730)
* build(deps): update rust crate tempfile to 3.4.0
* fix: trigger release
* chore(master): release 1.13.1 (#4937)
* ci: set Node version for docs build
* ci: allow docs to be manually published via workflow_dispatch
* ci: remove unneeded dependency in publish job
* ci: add caching for docs publishing step
* build(deps): update rust crate schemars to 0.8.12
* build(deps): update dprint plugins
* build(deps): update rust crate shadow-rs to 0.21.0
* build(deps): update clap crates
* feat(release): handle chocolatey starship.portable and starship.install pkg publishing (#4723)
Handles starship.install (MSI installer) and starship.portable and makes starship an
empty meta-package that only depends on starship.install. MSI/installer packages
seem to be preferred over zip-based installers on chocolatey. Proper virtual packages
that allow choosing either a portable or install variant aren't implemented in chocolatey yet.
* ci: replace `audit` with `deny` action (#4856)
* build(deps): update rust crate clap to 4.1.8
* build(deps): update gitoxide crates
* ci: use `reviewdog/action-suggester` for config-schema check (#4857)
* ci: use `reviewdog/action-suggester` for config-schema check
* increase workflow permissions
* fix(preset): add output-flag to avoid encoding issues (#4926)
* build(deps): update rust crate rayon to 1.7.0
* build(deps): update gitoxide crates
* build(deps): update pest crates to 2.5.6
* build(deps): update rust crate serde_json to 1.0.94
* build(deps): update npm to ^1.9.9
* build(deps): update rust crate open to 3.4.0
* docs(character): use updated `vimcmd_symbol` instead of older `vicmd_symbol` variant (#4960)
Fix typo in character example
* build(deps): update rust crate serde to 1.0.153
* docs(install): fix typo and update indentation and whitespaces (#4941)
* build(deps): update rust crate serde to 1.0.154
* build(deps): update rust crate gix to 0.40.0
* chore: fix clippy warnings for rust 1.68 (#4983)
* fix(init): avoid cygpath for starship binary path (#4970)
Update mod.rs
* build(deps): update rust crate open to v4 (#4982)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* build(deps): update rust crate toml_edit to 0.19.5
* build(deps): update rust crate gix to 0.41.0 (#4984)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* build(deps): update rust crate serde to 1.0.155
* build(deps): update rust crate chrono to 0.4.24
* build(deps): update rust crate semver to 1.0.17
* build(deps): update rust crate quick-xml to 0.28.0
* Update sponsors
* build(deps): update toml crates
* build(deps): update rust crate nu-ansi-term to 0.47.0
* build(deps): update rust crate windows to 0.46.0
* build(deps): update rust crate serde to 1.0.156
* docs(preset): Add `hostname.ssh_symbol` to nerd font preset (#4991)
docs(preset): Add missing ssh_symbol in nerd font
* fix(fossil_branch): fossil checkout database file name on windows (#4978)
fix(fossil_branch): use proper fossil checkout database file name on windows
* build(deps): update gitoxide crates
* build(deps): update rust crate toml_edit to 0.19.7
* build(deps): update clap crates
* build(deps): update rust crate serde to 1.0.157
* build(deps): update rust crate quick-xml to 0.28.1
* build(deps): update rust crate clap to 4.1.11
* docs(preset): add missing config for Java to no-runtime-version (#5011)
docs(preset): add missing Java to no-runtime-version
* build(deps): update rust crate serde to 1.0.158
* feat(aws): Adds support for AWS_CREDENTIAL_EXPIRATION environment variable (#5002)
feat(aws): supports AWS_CREDENTIAL_EXPIRATION environment variable
Adds support for the AWS_CREDENTIAL_EXPIRATION environment variable
which was adopted as the standard way to set the expiration for
temporary credentials. The existing AWS_SESSION_EXPIRATION environment
variable is not dropped for backwards compatibility.
See https://github.com/aws/aws-cli/pull/7398
* build(deps): update rust crate open to 4.0.1
* build(deps): update rust crate regex to 1.7.2
* chore: add spell checker to workflows (#4975)
* chore: add spell checker to workflows
* fix: update config schema
* fix: revert for fennel.rs
* build(deps): update rust crate toml_edit to 0.19.8
* build(deps): update crate-ci/typos action to v1.14.3
* build(deps): update rust crate clap to 4.1.13
* build(deps): update embarkstudios/cargo-deny-action action to v1.5.0
* build(deps): update rust crate gix to 0.43.0
* fix(gradle): add support for unstable Gradle versions (#5021)
* build(deps): update rust crate serde_json to 1.0.95
* docs: Update nerd-font-symbols.toml pop_os! symbol (#5017)
Update nerd-font-symbols.toml
Use the specific pop_os! nerd symbol instead of the generic lollipop
* build(deps): update clap crates
* build(deps): update rust crate regex to 1.7.3
* build(deps): update rust crate serde to 1.0.159
* build(deps): update rust crate indexmap to 1.9.3
* build(deps): update clap crates to 4.2.0
* build(deps): update rust crate tempfile to 3.5.0
* build(deps): update rust crate windows to 0.47.0
* build(deps): update rust crate clap to 4.2.1
* build(deps): update rust crate gix to 0.43.1
* build(deps): update rust crate windows to 0.48.0
* fix(pulumi): Fix formatting on pulumi module when using version (#5038)
Fix formatting on pulumi module when using version
Sanitize `pulumi version` output to remove leading 'v' character and trailing
newlines.
* feat(fossil): detection of Fossil check-outs in subdirectories (#4910)
* Move PathExt::device_id() outside modules module
* Add upwards_sibling_scan-function
* Fix Fossil check-out detection in subdirectories
* Use shared upwards scanning function in hg_branch
* Let the caller specify if they're looking for a file or a folder
* fix merge
---------
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* feat(aws): add support for source_profile (#4859)
feat(aws): add support for source_profile (#3834)
Co-authored-by: @luiscamaral
* feat(custom): add option to check if pwd is in a repo (#4822)
* feat(custom): add option to check if pwd is in a repo
* Apply suggestions from code review
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* change whenrepo to require_repo
* chore: fix doc formatting
---------
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* build(deps): update rust crate terminal_size to 0.2.6
* build(deps): update rust crate process_control to 4.0.3 (#5046)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* build(deps): update pest crates to 2.5.7 (#5043)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* build(deps): update crate-ci/typos action to v1.14.4
* docs(presets): add azure and gcloud default symbols to plaintext preset (#5040)
* chore(nu): use updated closure syntax (#5054)
Update starship.nu to conform to Nushell changes
Nushell recently made a change to require that all closures have an explicit parameter list, even if it's empty, in https://github.com/nushell/nushell/pull/8290.
This updates starship.nu to conform to this requirement.
I have casually tested this against both the latest released version of Nushell, and the latest version on HEAD; the changed code works well (for me) on both.
* build(deps): update crate-ci/typos action to v1.14.5
* build(deps): update embarkstudios/cargo-deny-action action to v1.5.1
* fix(java): wrong version number when using Android Studio JDK (#4966)
The regular expression would get the revision number found in:
with gcc Android (7284624, based on r416183b)
so it would print "7284624".
* build(deps): update dprint plugins
* build(deps): update rust crate os_info to 3.7.0 (#5057)
* build(deps): update rust crate os_info to 3.7.0
* add new os symbols
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* docs(i18n): new Crowdin updates (#4956)
* chore(master): release 1.14.0 (#4948)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* fix: trigger release
* fix: bootstrap manifest for release-please (#5087)
* fix: update the release-please manifest
* chore: fix release-please-manifest version
* ci: Revert "fix: bootstrap manifest for release-please (#5087)"
This reverts commit e392d14f4e.
* chore(master): release 1.14.1 (#5090)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* ci: add missing GH token to doc publishing flow
* build(deps): update rust crate serde to 1.0.160
* docs: update snap instructions (#5007)
As part of #4954, non-edge packages of Starship were removed from Snapcraft. This means the only way to install Starship is through the `edge` channel using `snap install --edge starship`.
* fix(git_commit): resolve panic on 32-bit targets (#5095)
* chore(choco): remove chocolatey dependency (#5078)
* docs(i18n): new Crowdin updates (#5093)
* 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 tokyo-night.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 (Ukrainian)
* New translations README.md (Ukrainian)
* New translations README.md (Ukrainian)
* New translations bracketed-segments.md (Ukrainian)
* New translations nerd-font.md (Ukrainian)
* New translations no-runtimes.md (Ukrainian)
* New translations plain-text.md (Ukrainian)
* New translations pure-preset.md (Ukrainian)
* New translations pastel-powerline.md (Ukrainian)
* New translations no-nerd-font.md (Ukrainian)
* New translations no-empty-icons.md (Ukrainian)
* New translations README.md (French)
* New translations README.md (Russian)
* 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 (Polish)
* New translations README.md (Portuguese)
* New translations README.md (Turkish)
* 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 (Sorani (Kurdish))
* New translations README.md (Ukrainian)
* New translations README.md (Norwegian)
* 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 (Ukrainian)
* New translations README.md (Ukrainian)
* New translations README.md (Ukrainian)
* New translations README.md (Ukrainian)
* New translations README.md (Ukrainian)
* New translations bracketed-segments.md (Ukrainian)
* New translations nerd-font.md (Ukrainian)
* New translations no-runtimes.md (Ukrainian)
* New translations plain-text.md (Ukrainian)
* New translations pure-preset.md (Ukrainian)
* New translations pastel-powerline.md (Ukrainian)
* New translations no-nerd-font.md (Ukrainian)
* New translations no-empty-icons.md (Ukrainian)
* New translations tokyo-night.md (Ukrainian)
* New translations README.md (Ukrainian)
* chore(master): release 1.14.2 (#5098)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* build(deps): update embarkstudios/cargo-deny-action action to v1.5.2
* build(deps): update rust crate quick-xml to 0.28.2
* build(deps): update rust crate serde_json to 1.0.96
* build(deps): update rust crate starship-battery to 0.8.0 (#5106)
* build(deps): update rust crate gethostname to 0.4.2
* feat: add typechange to git_status module (#4829)
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* feat(azure): subscription name aliases (#4949)
* From issue #4448, added `subscription_aliases`
as a field for the Azure module
Can be set in starship.toml with
[azure.subscription_aliases]
* Updated config file schema
* Added entry into documentation
* Update README.md
* Formatted with dprint
* feat(git_metrics): add option to ignore submodules (#5052)
* add docs
* update schema
* ok, actually update schema
* add test
* fix lint
* accidentally included my .devenv directory
* feat: Add Solidity Module (#5047)
* Adding documentation
* Documentation and schema addition
* Creating solidity config
* Module for solidity lang
* Updating all the files
* Changing according to clippy
* Fixing misspellings
* Changes suggested by clippy
* Updating schema , maybe fixing docs workflow error
* Updating schema
* Removing solcjs from default compiler list
* Fallback test added and test string fixed
* Fixing docs
* Updating schema
* Updating schema
* Fixing docs
* Updating schema
* Updating schema
* Typo fix
* Update docs/config/README.md
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* Update src/utils.rs
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* Fix build commit
---------
Co-authored-by: Anirban Halder <shaeo967@gmail.com>
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* build(deps): update crate-ci/typos action to v1.14.6
* build(deps): update rust crate clap to 4.2.2
* fix(config): Make print-config not panic without a config (#5001)
* build(deps): update rust crate open to 4.0.2
* build(deps): update rust crate clap to 4.2.3
* build(deps): update rust crate gix-features to 0.29.0
* build(deps): update crate-ci/typos action to v1.14.8
* build(deps): update rust crate clap to 4.2.4
* build(deps): update rust crate dunce to 1.0.4
* build(deps): update rust crate regex to 1.8.0
* build(deps): update rust crate clap_complete to 4.2.1
* build(deps): update rust crate regex to 1.8.1
* docs(pwsh): use a more convenient method to update the window title (#5125)
docs: fix PowerShell example to update the window title
* fix(style): ensure nested style variables are processed during formatting (#5120)
fix: ensure nested style variables are processed during formatting
* refactor(Context): `set_config` method for `Context` (#5079)
* add `set_config` method to `Context`
* Made inline comment a doc comment
* use `default_context()` for `set_config()` test
* use `set_config()` in tests for `print.rs`
* set root config w `set_config()` (`print.rs` test)
* build(deps): update rust crate home to 0.5.5
* build(deps): update pest crates to 2.6.0
* build(deps): update rust crate open to 4.1.0
* build(deps): upgrade gitoxide to v0.44 for performance improvements during discovery (#5141)
upgrade gitoxide to v0.44 for performance improvements during discovery
Please note that there is a new `dot_git_only` option which would further
speedup discovery. On even moderatly fast disks that probably not going
to make a difference, but it will on incredibly slow (networked) disks.
See https://github.com/helix-editor/helix/issues/6867 for reference.
* fix(snap): Update snapcraft.yaml to add personal-files interface (#5131)
* build(deps): update rust crate clap to 4.2.5
* docs: add Ukranian to the project README (#5147)
* Specify personal-file interface for snap
* fix(presets): Added ($style) to format in module 'sudo' in Bracketed Segments Preset (#5146)
* Fixed error in module 'sudo'
There was no ($style) in format. When module enabled this lead to the error [WARN] - (starship::modules::sudo): Error in module `sudo`
* Update docs/.vuepress/public/presets/toml/bracketed-segments.toml
typo fix
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
---------
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* ci: remove actions-rs actions (#5115)
* build(deps): update rust crate clap to 4.2.7
* build(deps): update crate-ci/typos action to v1.14.9
* build(deps): update rust crate serde to 1.0.162
* build(deps): update rust crate rust-ini to 0.19.0 (#5172)
* build(deps): update rust crate rust-ini to 0.19.0
* add CC0-1.0 to allowed license list
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* build(deps): update rust crate versions to v5 (#5176)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* feat(aws): support aws sso with automatic authentication refresh (#5170)
* feat(aws): support aws sso with automatic authentication refresh
* docs(aws): add sso_session for profile detection
* feat(gcloud): add `detect_env_vars` option (#5166)
* feat(gcloud): add `detect_env_vars` option
* regenerate config schema
* docs: update CONTRIBUTING.md and README.md (#5153)
* build(deps): update rust crate clap_complete to 4.2.2
* fix: update of presets and default configuration to reflect changes in Nerd Fonts 3.0 (#5162)
* Updated nf-mdi-* to nf-md-* symbols
The following symbols where changed
- directory.read_only
- memory_usage
- meson
- nim
- os.symbols.Garuda
- os.symbols.HardenedBSD
- os.symbols.Illumos
- os.symbols.OpenBSD
- os.symbols.OracleLinux
- os.symbols.Redox
- os.symbols.Solus
- os.symbols.Windows
- package
- rlang
* Updated nf-mdi-* to nf-md-* symbols (for all other presets)
The following symbols where changed
for pastel-powerline:
- directory.substitutions.Documents
- nim
for tokyo-night
- directory.substitutions.Documents
- golang
* Updated nf-mdi-* to nf-md-* symbols for the default configuration in modules in src/configs/*.rs
The following symbols where changed
- azure
- battery.full_symbol
- battery.charging_symbol
- battery.discharging_symbol
- battery.unknown_symbol
- battery.empty_symbol
* Updated config-schema.json
* Updated src/modules/*.rs docs/config/README.md
and used `nerdfix` to check if I overlook anything
* Fixed the battery discharging symbol in the tests
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: jtrv <travershasemail@gmail.com>
* build(deps): disable unnecessary/unused regex features (#5175)
This will reduce the binary size by ~400 kB.
* build(deps): update rust crate serde to 1.0.163
* build(deps): update xalvarez/prevent-file-change-action action to v1.3.2
* build(deps): update rust crate clap_complete to 4.2.3
* build(deps): update rust crate gethostname to 0.4.3
* build(deps): update dprint plugins
* build(deps): update toml crates
* build(deps): update crate-ci/typos action to v1.14.10
* build(deps): update clap crates to 4.3.0
* build(deps): update crate-ci/typos action to v1.14.11
* build(deps): update rust crate regex to 1.8.2
* build(deps): update rust crate toml_edit to 0.19.10
* build(deps): update rust crate regex to 1.8.3
* build(deps): update rust crate shadow-rs to 0.22.0
* build(deps): update rust crate log to 0.4.18
* build(deps): update rust crate chrono to 0.4.25
* build(deps): update rust crate once_cell to 1.17.2
* build(deps): update rust crate chrono to 0.4.26
* refactor: simplify `shadow-rs` setup in `build.rs` (#5209)
Update build.rs
* feat(golang): adding `mod_version` variable (#5177)
* feat(nodejs): Add `expected_version` variable (#5081)
* add `expected_version` variable to `nodejs`
* show comparison symbols with `expected_version`
* documentation, formatting, more tests
* Remapped `engines_version` to $version
* Added better descriptions to docs
* Update docs/config/README.md
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* Removed clone from `nodejs`, formatting
* refactored function calls
* rewrote `engines_version` formatter
* Moved Lazy variables into maps
---------
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* build(deps): update crate-ci/typos action to v1.14.12
* build(deps): update clap crates to 4.3.1
* fix: bump libz-ng-sys (#5218)
* build(deps): update rust crate clap to 4.3.2
* build(deps): update rust crate shadow-rs to 0.23.0
* build(deps): update rust crate regex to 1.8.4
* build(deps): update rust crate once_cell to 1.18.0
* Update GA measurement ID
* build(deps): update rust crate nu-ansi-term to 0.48.0
* docs(i18n): new Crowdin updates (#5109)
* Revert "Specify personal-file interface for snap"
This reverts commit 2641a37865.
This was reverted due to errors in the snap publishing pipeline:
interface 'starship-config' not found in base declaration declaration-snap-v2_plug_known (starship-config, starship-config)
invalid plugs interface definition 'starship-config' lint-snap-v2_app_plugs_plug_reference (starship, starship-config)
unknown interface 'starship-config' lint-snap-v2_plugs (starship-config, starship-config)
* chore(master): release 1.15.0 (#5108)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Checkout before running gh commands in CI
* Inline script for GA4
* build(deps): update gitoxide crates
* build(deps): update rust crate tempfile to 3.6.0
* Update GA4 tag attribute
* build(deps): update crate-ci/typos action to v1.15.0
* feat: update the nushell init file and make it valid module and overlay (#5188)
* break long commands into multiple lines for readability
* fix the format of closures
We generally write `{|| ...}` instead of `{ || ...}`.
* remove the `$"--opt=(val)"` structure when possible
`starship` does not require to use `--opt=val` and so we do not
need to do that with Nushell :)
the only place where this is required is with `--status` because
`$env.LAST_EXIT_CODE` can be negative and `starship` does not
appear to *like* values of the form `-2`...
so i left this line as it was.
on the other hand, `$env.CMD_DURATION_MS` and `(term size).columns`
should be fine 😌
* simplify the `config` mutation with new `?` syntax
This is a new very handy feature of Nushell which gives a much
simpler command combined with `default` and `merge`.
* put all `let-env`s inside an `export-env` with `load-env`
This commit has two reasons of existing:
- i think it makes it a bit easier to read with less `let-env`s
- it transforms the *script* into both a valid module and a valid
overlay
* bump the version to `0.78` in to docs
* add a note about the init file being also a module to all docs
* tweak the documentation
* update the Nushell part of the install script
* format the vuepress config file
as previous commit 117580136d3da5e00a4ccb7ada508c8510a2e50e was
not successful, let's try to make the CI happy manually 😌
* remove code quotes in the `config_cmd` of Nushell
* format the style in the Nushell `warning` section
* build(deps): update rust crate serde to 1.0.164 (#5231)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* build(deps): update rust crate starship-battery to 0.8.1 (#5232)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* feat(pwsh): Support vi command mode indicator (#5049)
Support vi command mode in powershell
* build(deps): update rust crate clap to 4.3.3 (#5235)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* build(deps): update rust crate gix to 0.46.0
* build(deps): update rust crate log to 0.4.19 (#5240)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* chore: fix typos (#5239)
* chore: fix new clippy lints (#5241)
* docs: Correct Arch Linux Repo Name (#5243)
* Correct Arch Linux repo name
* Revert changes to translated files.
* build(deps): update rust crate quick-xml to 0.29.0
* build(deps): update reviewdog/action-suggester action to v1.6.1
* build(deps): update rust crate clap to 4.3.4
* build(deps): update rust crate serde_json to 1.0.97
* build(deps): update rust crate shadow-rs to 0.23.0 (#5250)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* fix(bash): Clear out completed jobs before counting NUM_JOBS (#5253)
Clear out completed jobs before counting NUM_JOBS
* build(deps): update pest crates to 2.6.1
* redesign
* jet link
* screenshot
* readme, config
* clean trails whitespace
* fmt
* comment vicmd
* mv pos, right prompt warn
* right prompt prereq
* reco and typo
* resolve build check error
* tidy
* resolve build check error
* resolve build check error
* request changes
* rm src contents
* rm git_status.rs
* tryint fix checks
* PR review request: rm comments
* PR review request: rm redundant default
* PR review request: enable aws
---------
Signed-off-by: Michel Alexandre Salim <michel@michel-slm.name>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tom Fenech <tomjwfenech@gmail.com>
Co-authored-by: Matan Kushner <hello@matchai.dev>
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
Co-authored-by: Michel Alexandre Salim <michel@michel-slm.name>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Jan Dittrich <mail@jand.one>
Co-authored-by: Zhizhen He <hezhizhen.yi@gmail.com>
Co-authored-by: Swarnim Maheshwari <rexzeo0@gmail.com>
Co-authored-by: Guilhem Saurel <guilhem.saurel@laas.fr>
Co-authored-by: Stefan Cosma <66746+stefanc@users.noreply.github.com>
Co-authored-by: Christian Meusel <christian.meusel@posteo.de>
Co-authored-by: Harry Hodge <harry@harryhodge.co.uk>
Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
Co-authored-by: Dave Parr <8363743+DaveParr@users.noreply.github.com>
Co-authored-by: Ryan Sabatini <11415980+rjsab@users.noreply.github.com>
Co-authored-by: Vegard Skui <me@vegardskui.com>
Co-authored-by: Cosimo Matteini <dev.matteini@gmail.com>
Co-authored-by: jliaoh <48660001+hunterliao29@users.noreply.github.com>
Co-authored-by: Matthew T <tet68mt+github@gmail.com>
Co-authored-by: Samir Talwar <samir@functional.computer>
Co-authored-by: Aurélien Gâteau <mail@agateau.com>
Co-authored-by: Aki Kanellis <hello@akikanellis.com>
Co-authored-by: Chad Denyar <6653063+cdenyar@users.noreply.github.com>
Co-authored-by: marcybell <marcy@marcelinesystems.dev>
Co-authored-by: Colton Donnelly <colton@donn.io>
Co-authored-by: AnirbanHalder654322 <92542059+AnirbanHalder654322@users.noreply.github.com>
Co-authored-by: Anirban Halder <shaeo967@gmail.com>
Co-authored-by: Dom Slee <domslee1@gmail.com>
Co-authored-by: Micky Brunetti <micky2be@users.noreply.github.com>
Co-authored-by: Andrew Pantuso <ajpantuso@gmail.com>
Co-authored-by: Sebastian Thiel <sebastian.thiel@icloud.com>
Co-authored-by: Scott Parkhill <scott.parkhill@gmail.com>
Co-authored-by: Eldar Khurmamatov <74624554+e-khurmamatov@users.noreply.github.com>
Co-authored-by: kensasongko <ken.sasongko@gmail.com>
Co-authored-by: Denis Cornehl <denis@cornehl.org>
Co-authored-by: Mick Hohmann <gh@m69.im.net>
Co-authored-by: jtrv <travershasemail@gmail.com>
Co-authored-by: Jakub Jirutka <jakub@jirutka.cz>
Co-authored-by: baoyachi. Aka Rust Hairy crabs <liaoymxsdl@sina.com>
Co-authored-by: Antoine Stevan <44101798+amtoine@users.noreply.github.com>
Co-authored-by: Nemo157 <git@nemo157.com>
Co-authored-by: Dosenpfand <Dosenpfand@users.noreply.github.com>
Co-authored-by: Ajeet D'Souza <98ajeet@gmail.com>
* docs: add new preset gruvbox-rainbow
* docs: add readme page of gruvbox-rainbow preset
* docs: update the screenshot of gruvbox-rainbow
* fix: update the background color of root
* format: fix markdown format
* format: fix markdown format with dprint
* docs(presets): sort the options
* docs(presets): use $linebreak instead of \n
* docs(presets): add icons for redhat distro
* perf: put the space into version block
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* docs(presets): use custom palette to manage colors
* docs(presets): put the space into version block for all context
* docs(presets): add prefix to color names
---------
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* docs(directory): specify option name in example
It took me longer than I'd like to admit to figure out what option this example was referring to. It didn't help that the referenced option is hidden in a collapsible, which evaded any attempt made through the browser's find `ctrl+f` functionality.
* more natural grammar
* break long commands into multiple lines for readability
* fix the format of closures
We generally write `{|| ...}` instead of `{ || ...}`.
* remove the `$"--opt=(val)"` structure when possible
`starship` does not require to use `--opt=val` and so we do not
need to do that with Nushell :)
the only place where this is required is with `--status` because
`$env.LAST_EXIT_CODE` can be negative and `starship` does not
appear to *like* values of the form `-2`...
so i left this line as it was.
on the other hand, `$env.CMD_DURATION_MS` and `(term size).columns`
should be fine 😌
* simplify the `config` mutation with new `?` syntax
This is a new very handy feature of Nushell which gives a much
simpler command combined with `default` and `merge`.
* put all `let-env`s inside an `export-env` with `load-env`
This commit has two reasons of existing:
- i think it makes it a bit easier to read with less `let-env`s
- it transforms the *script* into both a valid module and a valid
overlay
* bump the version to `0.78` in to docs
* add a note about the init file being also a module to all docs
* tweak the documentation
* update the Nushell part of the install script
* format the vuepress config file
as previous commit 117580136d3da5e00a4ccb7ada508c8510a2e50e was
not successful, let's try to make the CI happy manually 😌
* remove code quotes in the `config_cmd` of Nushell
* format the style in the Nushell `warning` section
* add `expected_version` variable to `nodejs`
* show comparison symbols with `expected_version`
* documentation, formatting, more tests
* Remapped `engines_version` to $version
* Added better descriptions to docs
* Update docs/config/README.md
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* Removed clone from `nodejs`, formatting
* refactored function calls
* rewrote `engines_version` formatter
* Moved Lazy variables into maps
---------
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* Updated nf-mdi-* to nf-md-* symbols
The following symbols where changed
- directory.read_only
- memory_usage
- meson
- nim
- os.symbols.Garuda
- os.symbols.HardenedBSD
- os.symbols.Illumos
- os.symbols.OpenBSD
- os.symbols.OracleLinux
- os.symbols.Redox
- os.symbols.Solus
- os.symbols.Windows
- package
- rlang
* Updated nf-mdi-* to nf-md-* symbols (for all other presets)
The following symbols where changed
for pastel-powerline:
- directory.substitutions.Documents
- nim
for tokyo-night
- directory.substitutions.Documents
- golang
* Updated nf-mdi-* to nf-md-* symbols for the default configuration in modules in src/configs/*.rs
The following symbols where changed
- azure
- battery.full_symbol
- battery.charging_symbol
- battery.discharging_symbol
- battery.unknown_symbol
- battery.empty_symbol
* Updated config-schema.json
* Updated src/modules/*.rs docs/config/README.md
and used `nerdfix` to check if I overlook anything
* Fixed the battery discharging symbol in the tests
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: jtrv <travershasemail@gmail.com>
* Fixed error in module 'sudo'
There was no ($style) in format. When module enabled this lead to the error [WARN] - (starship::modules::sudo): Error in module `sudo`
* Update docs/.vuepress/public/presets/toml/bracketed-segments.toml
typo fix
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
---------
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* From issue #4448, added `subscription_aliases`
as a field for the Azure module
Can be set in starship.toml with
[azure.subscription_aliases]
* Updated config file schema
* Added entry into documentation
* Update README.md
* Formatted with dprint
* feat(custom): add option to check if pwd is in a repo
* Apply suggestions from code review
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* change whenrepo to require_repo
* chore: fix doc formatting
---------
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
Remove extra backspace from regex in example
In the example, `[\\w-]` would match a literal backspace `\`, the
character `w` or a dash `-`. By removing the backspace, instead it
matches any "word character" `\w` or a dash `-`.
* feat: Pijul VCS support
* Extra bits needed for new module.
* Format Markdown table.
* Fix lint.
* Don't test Pijul module so thoroughly.
Installing from source is too expensive, and compiled binaries are only
available for Windows (and unofficially as well). Perhaps once Pijul
1.0.0 comes out of beta there will be more binaries available in package
repos.
* Format!
* Bad rebase, remove Pijul install from workflow.
* Mock Pijul commands for code coverage.
* Make fake .pijul directory in fixture.
* Truly mock `pijul` command.
* Rename module from `pijul` to `pijul_channel`.
* Format!
* Fix config-schema.json.
* Missed changing module name in docs/ folder.
* feat(hg_branch): Add support for mercurial topics and find hg root dir
* Fix clippy errors
* Use crate::utils::read_file
* Update config-schema.json
* Extend PathExt to retrieve device ID of Path
* Break hg root search when switching to another device
* Fix clippy and formatting errors
* Update docs/config/README.md
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* Update src/modules/utils/path.rs
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* Update src/configs/hg_branch.rs
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* Update hg_branch description
* Revert to lazy loading, use truncate_text from utils and use fake topic
* Format code and fix clippy error
* Revert to previous test string as topic is optional in the config
* Fix doc formatting
* Stub device_id for windows
* Update config-schema.json
* Update src/modules/hg_branch.rs
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* Do not use unwrap in device_id
* Fix formatter error
* Use dev under non linux unixes
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* Support `nix shell`
* Remove unnecessary `Debug` implementation
* Add test to detect false positive
* Improve detection of `/nix/store` in $PATH
* Add docs about unknown state
* Gate under `heuristic` flag
* Regenerate config schema
The `git_commit` module uses a `tag` variable in its format string,
which is not explained in the Variables section of this module.
Missing clarification of this `tag` variable is added to the
documentation of the `git_commit` module.
Fixes starship/4640
* Add Haxe support
* avoid unwrap
* fix doc formatting
* removed extra newline
* fixed formatter and linter issues
* fixed config file
* better version of detecting contents of .haxerc
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* removed openfl related defaults from detect_files
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* fixed formatting
* reworked reading .haxerc with fallback to haxe --version
* fixed formatting
* added fallback to executable for dev paths in .haxerc
* fixed linter issue
* added support for Windows paths
* use or_else
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* use shorter version with `?`
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* simplified regex check
removed check for "null" string
* fixed format
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* add username to azure module config
* add username to azure module config
* formatting with cargo fmt
* Handle parse failure on azureProfile.json
allow program to procede if unable to parse azure profile due to missing
keys from the JSON structure.
remove unused keys from struct
Code cleanup with suggestions from PR maintainer
Cargo clippy fixes
* feat(preset): Add No Empty Icons preset
When toolset files are identified by the Starship module, the default format displays the toolset icon, and additional information.
When the toolset executables are not available, the additional information (like version number) is missing. Only the toolset icon is displayed.
The No Empty Icons preset changes the format configuration to not show the toolset icons if the variables are empty - presumably because the toolset is not installed or found.
Closes #3070
Related #3248
* Remove non-version-related modules from preset
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* Add new module opa to preset
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* Drop unnecessary inner conditional from format
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* Remove commit_hash_length setting from preset
* Remove undesired modules
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* docs(config): Improve string and escaping information
* docs(config): Use literal strings
* docs(config): Use literal strings
* docs(config): Improve string value type description
* docs(config): Consistently use literal strings
like the documentation recommends and like `starship print-config` prints.
Resolves inconsistencies to format value on aws, container, elixir, gcloud, git_commit, git_state, git_status, kubernetes, nix_shell, openstack, python, singularity, which already uses literal strings.
Resolves inconsistency to status module pipestatus_format, which already uses literal string.
`$all` expanded list remains a non-literal multiline string for readability with escaped newlines.
* docs(config): Drop literal recommendation, describe escaped newlines
* feat(preset): Add powerline-only-symbols preset
Related to #2563 & #3544
* Modify symbols for pulumi and erlang
* Change some wording and add default notification
* Update name of preset
Co-authored-by: Kevin Song <chips@ksong.dev>
In the config `$all` has special meaning, as it is and contains the default value for `format`.
Using `$all` in the example for conditional format strings with multiple variables is thus potentially misleading and confusing.
Using a neutral variable `$combined` has no conflict with other meanings and is thus preferable.
* feat(guix_shell): Initial implementation (#3999)
* fix(guix_shell): Change guix nerd font icon to water buffalo emoji
* fix(guix_shell): Added guix_shell entries in preset files
* fix(guix_shell): Moved guix_shell config docs in to the correct place (alphabetically)
* feat(aws): add a fallback for `expiration`
* fix(aws): intermittent test failures
- extend the time range from `-2s,0s` to `-5s,+2s`
* fix: `docs/config/README.md` readability
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* feat: Open Policy Agent module (#1740)
* Format documentation
* Fix typo, `ropa` -> `rego`
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* Update presets for OPA module
* Add extra space to OPA module symbol
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* docs(preset): update presets with Scala nerd font.
* dos(preset): add an extra space after Scala symbol.
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* feat(module): Add a meson devenv indicator
Adds a Meson Developer Environment indicator, if the MESON_DEVENV
variable is set. Inside a `meson devenv`, the prompt will include the
current Meson project name
This also contains a new Truncate utility function, which may be adapted for other modules in the future
* docs: Add Meson to presets
* Support formatting of pipestatus separator
* Format pipestatus separator with each pipestatus
* Add third exit code to pipestatus test
* Clean up pipestatus mapping
* Add comment that was removed
* Fixed distortion of double and single quotes
* Run dprint fmt
* Use single quotes to avoid backslash escapes
* Update docs/config/README.md
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
Fix typo in docs for Java identification.
The file is "deps.edn", not ".deps.edn" (with a dot at the beginning).
The code looks for the correct name, the typo is only in the docs.
* docs(config): add color palette to docs
* feat: add user-defined color palette
* fix: update config schema
* refactor: apply suggestions from code review
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* fix: update new test
* feat: add support for multiple palettes
* docs(config): update docs for multiple color palettes
* docs(config): fix formatting
* test: test overriding a predefined color with itself
* docs: mention palettes cannot reference themselves
* refactor: warn when using a nonexistent palette
* test: test retrieving a nonexistent color palette
* fix: fix issues with palette log messages
* fix: update config schema
* fix: skip serializing palette if none
* refactor: change nonexistent palette message to warning
* fix: update config schema
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* Add starship preset command
* Use ValueEnum for preset command
* Generate ValueEnum struct in build.rs
* Use absolute paths and refactor codegen
* Use dunce to canonicalize path
* Use raw string literal in include_bytes!
* Use .cloned()
* Apply fixes
* Fix path escaping
* Removed error message if stdout is unavailable
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
* test that we can match a multi-part file extension such as in foo.tar.gz
* now we can match multi-part file extensions like on foo.tar.gz
* add a test that a !ext is a negative match and over-rides any positive match
* test that negative extensions that don't match any file have no effect
* fail the match if any negative extensions exist
* cargo fmt
I'm not happy with this, in particular it's made the structures of has_any_positive_extension and has_no_negative_extension look different, and the logic in is_match is harder to follow
* placate clippy
* documentation for multi-part extensions and negative extensions
* get rid of an unnecessary .to_string() and comment the necessary but weird-looking invocations of .to_string_lossy().to_string()
* tests for negative matching of files and folders
* fail the match is any negative files/folders match
* document file/folder negative matching; be less prolix
* suppress Nodejs if Deno files are present (#2627)
* Revert "suppress Nodejs if Deno files are present (#2627)"
This reverts commit c1394fd7b37bb0bf06b1449e074020a2e16bfa04.
This was a terrible way of doing this, there's got to be a better way!
Have added configuration options to the k8s module to allow activating
the module only in directories that contains certain files or folders.
To ensure this is backwards compatible and because there are not really
any standard files or folders for Kubernetes I have set the defaults to
empty and will activate the module for all directories.
Have switched all vi/vim symbols to have the same prefix 'vim'. To
preserve backwards compatibility with existing configs I have added an
alias for the previous config name.
* add proper vi mode detection for fish shell
* update tests
* fix test
* update config-schema.json
* update docs
* add warning about symbols only supported in fish
* check for go.work file to display go version
* add test to check for go.work file
* update docs to include go.work file
* chore(dprint): fmt & upgrade plugins (#3969)
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
This is an actualization of PR #559 as originally envisioned by qryxip.
Adds the ability to display toolchain versions, either as extracted from
environment/settings files or by getting the host triple. As part of
this, several other major changes were needed:
- Many of the smaller functions within the code have been fused, moved,
or dropped.
- The Rustup environmental info is now initialized lazily using
OnceCells. This will hopefully lead to a performance increase.
- New configuration variables (`toolchain` and `numver`) have been added
to allow finer-grained configuration.
- Override information is no longer read from `rustup` output. Instead,
it is parsed from the same files that rustup would use to determine
this info.
Co-authored-by: qryxip <qryxip@gmail.com>
Co-authored-by: qryxip <qryxip@gmail.com>
* feat(package): Extract package version from PEP621 pyproject.toml
* Update docs explaining PEP 621 package version
* Only read pyproject.toml once
* Simplify get_pep621_version
* Handle version formatting in get_pyproject_version
Have added so additional spaces around the vuepress markers, `:::`, to
ensure that the don't get included in the line above and below and cause
formatting errors in the translated versions of the documentation.