docs: Improvements in docs for custom modules (#1615)

* docs: Clarify that commands will be passed in on stdin

* docs: Clearer instruction how to include individual custom modules

* docs: Include link to #1252 in docs for custom modules

That issue is used to share custom modules.

* docs: Remove reference to prompt_order

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

Co-authored-by: Thomas O'Donnell <andytom@users.noreply.github.com>
This commit is contained in:
Jan Katins 2020-09-01 19:07:12 +02:00 committed by GitHub
parent 567ea8d2be
commit 17e8115f16
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 18 additions and 9 deletions

View File

@ -2276,9 +2276,16 @@ Multiple custom modules can be defined by using a `.`.
::: tip ::: tip
The order in which custom modules are shown can be individually set The order in which custom modules are shown can be individually set by including
by setting `custom.foo` in `prompt_order`. By default, the `custom` module `${custom.foo}` in the top level `format` (as it includes a dot, you need to use `${...}`).
will simply show all custom modules in the order they were defined. By default, the `custom` module will simply show all custom modules in the order they were defined.
:::
::: tip
[Issue #1252](https://github.com/starship/starship/discussions/1252) contains examples of custom modules.
If you have an interesting example not covered there, feel free to share it there!
::: :::
@ -2286,7 +2293,7 @@ will simply show all custom modules in the order they were defined.
| Option | Default | Description | | Option | Default | Description |
| ------------- | ----------------------------- | -------------------------------------------------------------------------------------------------------------------------- | | ------------- | ----------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `command` | | The command whose output should be printed. | | `command` | | The command whose output should be printed. The command will be passed on stdin to the shell. |
| `when` | | A shell command used as a condition to show the module. The module will be shown if the command returns a `0` status code. | | `when` | | A shell command used as a condition to show the module. The module will be shown if the command returns a `0` status code. |
| `shell` | | [See below](#custom-command-shell) | | `shell` | | [See below](#custom-command-shell) |
| `description` | `"<custom module>"` | The description of the module that is shown when running `starship explain`. | | `description` | `"<custom module>"` | The description of the module that is shown when running `starship explain`. |
@ -2317,6 +2324,8 @@ will simply show all custom modules in the order they were defined.
If unset, it will fallback to STARSHIP_SHELL and then to "sh" on Linux, and "cmd /C" on Windows. If unset, it will fallback to STARSHIP_SHELL and then to "sh" on Linux, and "cmd /C" on Windows.
The `command` will be passed in on stdin.
If `shell` is not given or only contains one element and Starship detects PowerShell will be used, If `shell` is not given or only contains one element and Starship detects PowerShell will be used,
the following arguments will automatically be added: `-NoProfile -Command -`. the following arguments will automatically be added: `-NoProfile -Command -`.
This behavior can be avoided by explicitly passing arguments to the shell, e.g. This behavior can be avoided by explicitly passing arguments to the shell, e.g.

View File

@ -10,11 +10,11 @@
- **Configuration**: [matchai's Dotfiles](https://github.com/matchai/dotfiles/blob/b6c6a701d0af8d145a8370288c00bb9f0648b5c2/.config/fish/config.fish) - **Configuration**: [matchai's Dotfiles](https://github.com/matchai/dotfiles/blob/b6c6a701d0af8d145a8370288c00bb9f0648b5c2/.config/fish/config.fish)
- **Prompt**: [Starship](https://starship.rs/) - **Prompt**: [Starship](https://starship.rs/)
## Do `prompt_order` and `<module>.disabled` do the same thing? ## Do top level `format` and `<module>.disabled` do the same thing?
Yes, they can both be used to disable modules in the prompt. If all you plan to do is disable modules, `<module>.disabled` is the preferred way to do so for these reasons: Yes, they can both be used to disable modules in the prompt. If all you plan to do is disable modules, `<module>.disabled` is the preferred way to do so for these reasons:
- Disabling modules is more explicit than omitting them from the prompt_order - Disabling modules is more explicit than omitting them from the top level `format`
- Newly created modules will be added to the prompt as Starship is updated - Newly created modules will be added to the prompt as Starship is updated
## The docs say Starship is cross-shell, but it doesn't support X shell. Why? ## The docs say Starship is cross-shell, but it doesn't support X shell. Why?

View File

@ -249,19 +249,19 @@ fn handle_module<'a>(
Some(false) => modules.push(modules::custom::module(&module[7..], &context)), Some(false) => modules.push(modules::custom::module(&module[7..], &context)),
None => match context.config.get_custom_modules() { None => match context.config.get_custom_modules() {
Some(modules) => log::debug!( Some(modules) => log::debug!(
"prompt_order contains custom module \"{}\", but no configuration was provided. Configuration for the following modules were provided: {:?}", "top level format contains custom module \"{}\", but no configuration was provided. Configuration for the following modules were provided: {:?}",
module, module,
DebugCustomModules(modules), DebugCustomModules(modules),
), ),
None => log::debug!( None => log::debug!(
"prompt_order contains custom module \"{}\", but no configuration was provided.", "top level format contains custom module \"{}\", but no configuration was provided.",
module, module,
), ),
}, },
} }
} else { } else {
log::debug!( log::debug!(
"Expected prompt_order to contain value from {:?}. Instead received {}", "Expected top level format to contain value from {:?}. Instead received {}",
ALL_MODULES, ALL_MODULES,
module, module,
); );