Commit Graph

451 Commits

Author SHA1 Message Date
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
MatejKastak b9596f324b
docs(config): Fix typo in kubernetes section (#4560) 2022-11-06 09:36:25 +01:00
Jan Klass fcd217c197
docs(config): Replace misleading $all reference (#4519)
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.
2022-10-31 09:41:28 -05:00
Thierry Delafontaine d4bcc519e6
feat(guix_shell): Initial implementation (#4397)
* 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)
2022-10-25 07:44:04 +02:00
Jan Klass 2db88b47b9
docs(config): Add missing default values (#4520)
* docs(config): Add missing empty table default values as empty inline tables

* docs(config): Add missing empty string default values

in shell and vcsh
2022-10-22 20:28:29 +02:00
Liang Yun Gong 5a2c85d078
feat(aws): add a fallback for `expiration` key (#4455)
* 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>
2022-10-15 18:16:07 +02:00
AppleTheGolden 865e68da3a
feat: Open Policy Agent module (#1740) (#4441)
* 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>
2022-10-15 18:15:33 +02:00
David Knaack 186d99e623
fix(status): replace multiply with cross mark emoji (#4461) 2022-10-15 14:16:39 +02:00
Jamie 355800f814
feat(module): Add a meson devenv indicator (#4389)
* 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
2022-10-11 18:02:46 +02:00
wilhelm 3d452367bd
fix(buf): fix spacing & harmonize docs with actual configuration (#4450)
* fix(buf): add whitespace after version string

* fix: update config schema

* fix: config version and bison emoji

* fix: update documentation format

* fix: dprint

* fix: config schema
2022-10-07 22:07:30 +02:00
Uwe Jugel 84bbe3dd03
docs(custom): use single equal sign for 'when' clause of 'custom.foo' example (#4454)
use single equal sign for 'when' clause of 'custom.foo' config example
2022-10-07 22:06:14 +02:00
Aaron Kollasch 6e35dfa85a
feat(status): Support formatting of pipestatus separator (#4264)
* 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
2022-10-07 11:44:14 +02:00
Masumi Kawasaki 03c4165927
docs: canonicalize the use of quotes for default values (#4428)
* 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>
2022-10-06 09:32:31 +02:00
Matthew Davidson 20b4bf156b
docs(java): Fix typo in file detection list (#4416)
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.
2022-09-29 14:53:25 +02:00
Anomalocaridid d93074d056
feat: add user-defined color palette (#4209)
* 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>
2022-09-27 23:08:52 +02:00
David Knaack b5d3d8fcf3
feat(schema): deny unknown keys (#4270) 2022-09-09 14:59:38 +02:00
David Knaack 5984f0829e
perf(git_commit): only use exact match for tag by default (#4281) 2022-08-19 08:27:41 +02:00
David Knaack 85692d1bf6
feat: add bun module (#4187) 2022-08-01 12:59:36 +02:00
David Cantrell dd73447329
feat: Add the ability to have some file extensions *prevent* a module from triggering (#4043)
* 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!
2022-07-31 16:29:48 +02:00
Keming b75677ab59
docs: update configuration format list (#4212)
update configuration format list
2022-07-29 08:08:10 +02:00
Artyom Belousov 61438484bd
feat(status): Add pipestatus_segment_format option to status module (#4103)
Add pipestatus_segment_format
2022-07-19 15:07:50 +02:00
Thomas O'Donnell 5c5969c50b
feat(k8s): Add folder detection to the k8s module. (#4157)
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.
2022-07-10 11:14:54 +02:00
David Knaack af15de93c4
perf(pulumi): allow disabling upwards discovery (#4159)
* perf(pulumi): disable upwards discovery by default

* change `search_upwards` default to `true`
2022-07-10 11:14:43 +02:00
Filip Sergot 1a4fac63f7
feat: add Raku module (#4048)
* feat: add Raku module

* Update docs/config/README.md

Co-authored-by: Thomas O'Donnell <andytom@users.noreply.github.com>

Co-authored-by: Thomas O'Donnell <andytom@users.noreply.github.com>
2022-06-26 12:00:55 +02:00
Thomas O'Donnell 67619386cd
fix(character): Standadise Vim config names (#4081)
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.
2022-06-18 23:23:59 +02:00
MatejKastak 8eb5983363
docs: Fix typo in custom command docs (#4080) 2022-06-18 16:30:02 +02:00
David Knaack a72b4638f3
docs(aws): improve legibility (#4050) 2022-06-12 13:27:19 +02:00
Mat Jones 146976351e
fix(fish): add proper vi mode detection for fish shell (#3839)
* 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
2022-06-04 12:41:24 +02:00
Tobi df5c2d8836
feat(kubernetes): add user alias (#4008)
* add kubernetes user alias (fixes #3870)

* update config schema

* sort config property alphabetically

* Update README.md

* add test-case for non-matching alias
2022-05-30 20:09:53 +02:00
Stefano Baghino 3fe6cc023c
feat: Add support for Daml (#4004) 2022-05-26 16:42:31 +02:00
cm-iwata 209181c369
docs: package module documentation consistency (#4007) 2022-05-23 07:00:04 -04:00
Arya Adarsha Gautam 9ebfce1e36
feat(go): check for go.work file to show Go module in prompt (#3968)
* 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>
2022-05-07 08:04:37 +02:00
Kevin Song 393d62c726
feat(rust): Display toolchain names (#3414)
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>
2022-05-04 15:40:44 -05:00
Thanapat Chotipun 2bf30dc89f
feat(hostname): add `ssh_symbol` for ssh connections (#3806) 2022-05-04 15:30:16 +02:00
Tom Fleet 1b938fd484
feat(package): Extract package version from PEP 621 compliant pyproject.toml (#3950)
* 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
2022-05-02 18:44:01 +02:00