Commit Graph

485 Commits

Author SHA1 Message Date
Jan Katins
3949697c0d
docs(python): Remove a bad config example in the python (#5830)
docs(python): Remove a bad config example in the python

Running a unknown binary in a subfolder (called `.venv/bin/python`) has at least two drawbacks with some security implication:

- In case of a unknown directory, simply cd'ing into a subdirectory could lead to starship executing a unknown binary (usually the binary MUST be in path so it's a decision taken by the user, e.g. by activating the venv)
 - starship would show the result of the venv python even if the venv is not active but calling `python3` on the cli would NOT run that `python3` in the venv but a different one (most likely the system python3).
2024-03-09 08:08:29 +01:00
Brandon Dong
e8442f5d95
docs: Fix git status $all_status documentation (#5826)
* add `typechanged` to git status $all_status documentation

* Revert dog changes for other languages
2024-03-07 21:52:07 +01:00
David Knaack
7485c90c9f
feat(docs): move to vitepress (#5785)
* feat(docs): move to vitepress

* change up hero styles to match existing site

* A bit more style tweaking

* Replace stylus with plain CSS

* improve unicode-range value for nerdfont

---------

Co-authored-by: Matan Kushner <hello@matchai.dev>
2024-03-03 17:55:30 +01:00
CAESIUS_TIM
431aaa5875
docs(battery): add space after symbol in example (#5695)
docs(battery): add space after symbol in example (#5695)
2024-01-11 18:10:48 +01:00
Camron Flanders
cec111affd
fix(direnv): update to work with direnv v2.33 (#5657)
* update AllowStatus to work with direnv 2.33

direnv now returns int enum instead of boolean, https://github.com/direnv/direnv/pull/1158

* update schema

* maybe fixed the schema now

* Whoops, I inverted the flags somehow

* have coffee, fix mistaken understanding

* undo changes to tranlations

* Update docs/config/README.md

* Update src/modules/direnv.rs

Co-authored-by: David Knaack <davidkna@users.noreply.github.com>

* update test output

---------

Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
2024-01-06 11:46:25 +01:00
Andrew Pantuso
e47bfbabb9
feat(direnv): add new direnv module (#5157) 2023-12-17 08:22:29 +01:00
Stefan Richter
6d96df3c68
feat(aws): Adding the AWS SSO CLI env variable to profile list (#5640)
Adding the AWS SSO CLI env variable to profile list

Adding support for the profile env variable used by https://github.com/synfinatic/aws-sso-cli
2023-12-17 08:20:58 +01:00
ecksun
f432800611
docs: Fix typo in gcloud description (#5634) 2023-12-14 19:11:10 +01:00
Gilbert Sanchez
d7a34b45f8
feat(shell): allow distinguishing between pwsh and powershell (#5478)
* Distinguish between pwsh and powershell

Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
2023-11-25 14:06:03 +01:00
Charlotte Thomas
7b217056bd feat: add typst module
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
2023-11-12 19:02:31 +01:00
Ohad Lutzky
7b851fc30e
feat(scanner): add option not to follow symlinks (#5325)
Add follow_symlinks option

Settings this to false can fix hanging on symlinks to slow/inaccessible
filesystems.
2023-11-02 09:01:09 +01:00
Macilenta
ca5851d155
docs(config): Add quote to unquoted strings, unifying quotes (#5480)
* 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
2023-10-29 13:40:09 +01:00
Mick Hohmann
43b2d42cd5
feat(hostname): add detect_env_vars as option (#5196)
* 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>
2023-09-16 16:42:13 +02:00
Jan Katins
6b444e05c6
feat(kubernetes): Add styling based on current context (#4550)
* 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>
2023-09-02 09:19:33 +02:00
Vegard Skui
e867cda1eb
feat(fossil_metrics): add fossil_metrics module (#4874)
* 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
2023-09-02 09:19:04 +02:00
thenbe
3f52c7cd85
docs(directory): specify option name in example (#5324)
* 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
2023-07-27 12:06:18 +02:00
Vivek Kushwaha
3402f0e82a
feat(shlvl): add repeat_offset for repeated symbol (#5289)
Signed-off-by: Vivek Kushwaha <yoursvivek@users.noreply.github.com>
2023-07-14 10:59:02 +02:00
marcybell
70d2014f34
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>
2023-06-01 21:24:11 +02:00
marcybell
351bf9d0b3
feat(golang): adding mod_version variable (#5177) 2023-06-01 21:18:38 +02:00
Mick Hohmann
2558c4588b
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>
2023-05-10 14:36:56 +02:00
Denis Cornehl
d07a8e3668
feat(gcloud): add detect_env_vars option (#5166)
* feat(gcloud): add `detect_env_vars` option

* regenerate config schema
2023-05-09 07:55:49 +02:00
kensasongko
297176b0b8
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
2023-05-09 07:53:45 +02:00
AnirbanHalder654322
b2ebd5b50c
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>
2023-04-13 21:05:12 +02:00
Colton Donnelly
ce01423152
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
2023-04-13 21:04:15 +02:00
marcybell
27ffa37cfd
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
2023-04-13 21:03:14 +02:00
Chad Denyar
edb96cad58
feat: add typechange to git_status module (#4829)
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
2023-04-13 21:02:08 +02:00
David Knaack
b475b5809f
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>
2023-04-10 13:07:30 +02:00
jliaoh
d29ce7c45d
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>
2023-04-02 16:39:45 +02:00
Jan Dittrich
b08020949a
docs(character): use updated vimcmd_symbol instead of older vicmd_symbol variant (#4960)
Fix typo in character example
2023-03-07 20:34:18 +01:00
Tom Fenech
c8bb1bae8d
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 `-`.
2023-02-20 13:22:15 +01:00
iuhoay
07c2298965
feat(java): Add .sdkmanrc for Java (#4888)
* Add `.sdkmanrc` for Java

* Update config-schema.json, Add `.sdkmanrc` file for Java

* Update doc
2023-02-11 14:06:21 +01:00
Zhizhen He
f6c9fd5348
docs: fix typos (#4889) 2023-02-07 12:52:41 +01:00
David Knaack
c019630653
build(deps): update rust crate os_info to 3.6.0 (#4878)
* build(deps): update rust crate os_info to 3.6.0

* add new os symbols

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-07 12:52:14 +01:00
Vegard Skui
41eb98b310
feat(fossil_branch): add fossil_branch module (#4806)
Co-authored-by: David Knaack <davidkna@users.noreply.github.com>
2023-01-31 09:06:46 +01:00
Lyle Mantooth
67b6376e2e
feat: add pijul_channel module (#4765)
* 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.
2022-12-31 15:55:23 +01:00
Nicolas Évrard
8d2256ab1d
feat(hg_branch): Add support for mercurial topics and find hg root dir (#4771)
* 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>
2022-12-31 15:53:55 +01:00
David Knaack
5d4cb6ff8f
feat(env_var): Add support for env_var.VAR in format (#4497)
Co-Authored-By: Segev Finer <24731903+segevfiner@users.noreply.github.com>

Co-authored-by: Segev Finer <24731903+segevfiner@users.noreply.github.com>
2022-12-28 21:00:49 +01:00
Julian Antonielli
19fdf9bba5
feat(nix): support new nix shell command (#4724)
* 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
2022-12-27 14:59:40 +01:00
fold-squirrel
e93dbf8630
feat(fennel): add fennel module (#4717) 2022-12-21 10:53:53 -06:00
Martin Weissbach
0abf4b937e
docs(config): clarify git-commit tag variable (#4729)
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
2022-12-17 20:51:38 -06:00
Marie
220844daa0
feat(gradle): add gradle module (#4423)
* docs: document gradle module

* implement gradle module

* gradle-module: add test for wrapper properties case

* docs: improve gradle module documentation

* fix: fix gradle module wrapper properties test

* drop gradle executable strategy

* apply suggested stuff

* Fix config schema
2022-12-17 13:32:40 +01:00
Dennis Waitong Lam
7341607c29
fix(buf): broken icon on windows 10 (#4689)
Closes https://github.com/starship/starship/issues/4608
2022-12-09 18:41:59 +09:00
renovate[bot]
9af9db8f2b
build(deps): update dependency dprint/dprint-plugin-markdown to v0.14.3 (#4683) 2022-12-05 16:14:30 +09:00
rkucsora
37b13ca260
docs: Fix "vimcmd_visual_symbol" description in doc (#4675)
Fix "vimcmd_visual_symbol" description in doc
2022-12-04 23:45:52 -06:00
AlexHaxe
2766c78749
feat: add Haxe support (#4395)
* 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>
2022-12-04 18:28:49 +01:00
cgzones
ea6249b524
feat(directory): add before_repo_root_style (#4595) 2022-12-01 23:09:11 +01:00
Ryan Sabatini
6e15c00238
feat(azure): add username to azure module config (#4323)
* 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
2022-11-27 15:02:23 +01:00
geisterfurz007
5cfa397ef9
docs: Fix mention of Node.js in Bun docs (#4651)
* Fix mention of Node.js in Bun docs

* Fix whitespace blunder

* Fix whitespace blunder in the other direction
2022-11-25 18:44:22 +01:00
exincore
3109943822
feat: Add operating system module (#4109)
* docs(os): Add os module documentation

* docs(os): Add os to Default Prompt Format

* chore(os): Update config file schema

* feat(os): Add os entries and declarations

* feat(os): Add os module and config

* fix(os): Obey config.disabled

* feat(os): make variables 'Unknown'-aware

refactor(os): calculate variables in dedicated functions

* test(os): Add os module tests

* feat(os): make 'name' variable less 'Unknown'-aware

* docs(os): Add Preset configurations

docs(os): Use emoji as default

* feat(os): Use emoji as default

test(os): Use emoji as default

* fix(os): Add spaces after emoji symbols

* chore(os): Update config schema

* feat(os): Remove `bitness` variable

docs(os): Remove `bitness` variable

test(os): Remove `bitness` test

* feat(os): Add Cargo.toml upgrade caution for os_info

* refactor(os): Clarify get_symbol function

* docs(os): Mention supported operating systems and feature requests

* docs(os): Mention os_info inacurracy

* test(os): Remove `bitness` leftovers

* refactor(os): use nu_ansi_term

* refactor(os): add cfg_attr(schemars(deny_unknown_fields))

* chore(os): update config schema

* docs(os): expose details block

* feat(os): add garuda linux

* chore(os): update config schema

* feat(os): add case insensitivity

* feat(os): add symbols `IndexMap` use `os_info::Type` instead of `String`

* test(os): add clippy warn on new os_info::Type case

* leave missing case to test github tests

* test(os): re-add missing test case

* style(os): fix formatting

* docs(os): update to match os_info::Type serialization

- docs(os): add missing garuda to config

- test(os): mention docs updates in warn_on_os_info_update
2022-11-06 22:37:58 +01:00
Jan Klass
0ba8533e2d
docs(config): Resolve string inconsistencies (#4521)
* 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
2022-11-06 22:31:12 +01:00