256 lines
5.7 KiB
Markdown
256 lines
5.7 KiB
Markdown
|
# Migrating to v0.45.0
|
|||
|
|
|||
|
Starship v0.45.0 is a release containing breaking changes, in preparation for the big v1.0.0. We have made some major changes around how configuration is done on the prompt, to allow for a greater degree of customization.
|
|||
|
|
|||
|
This guide is intended to walk you through the breaking changes.
|
|||
|
|
|||
|
## `prompt_order` has been replaced by a root-level `format`
|
|||
|
|
|||
|
Previously to v0.45.0, `prompt_order` would accept an array of module names
|
|||
|
in the order which they should be rendered by Starship.
|
|||
|
|
|||
|
Starship v0.45.0 will instead be accepting a `format` value, allowing for customization of the prompt outside of the modules themselves.
|
|||
|
|
|||
|
**Example pre-v0.45.0 configuration**
|
|||
|
|
|||
|
```toml
|
|||
|
prompt_order = [
|
|||
|
"username",
|
|||
|
"hostname",
|
|||
|
"directory",
|
|||
|
"git_branch",
|
|||
|
"git_commit",
|
|||
|
"git_state",
|
|||
|
"git_status",
|
|||
|
"cmd_duration",
|
|||
|
"custom",
|
|||
|
"line_break",
|
|||
|
"jobs",
|
|||
|
"battery",
|
|||
|
"time",
|
|||
|
"character",
|
|||
|
]
|
|||
|
```
|
|||
|
|
|||
|
**Example v0.45.0 configuration**
|
|||
|
|
|||
|
```toml
|
|||
|
format = """\
|
|||
|
$username\
|
|||
|
$hostname\
|
|||
|
$directory\
|
|||
|
$git_branch\
|
|||
|
$git_commit\
|
|||
|
$git_state\
|
|||
|
$git_status\
|
|||
|
$cmd_duration\
|
|||
|
$custom\
|
|||
|
$line_break\
|
|||
|
$jobs\
|
|||
|
$battery\
|
|||
|
$time\
|
|||
|
$character\
|
|||
|
"""
|
|||
|
```
|
|||
|
|
|||
|
## Module `prefix` and `suffix` will be replaced by `format`
|
|||
|
|
|||
|
Previously to v0.45.0, some modules would accept `prefix` and/or `suffix`
|
|||
|
in order to stylize the way that modules are rendered.
|
|||
|
|
|||
|
Starship v0.45.0 will instead be accepting a `format` value, allowing for further
|
|||
|
customization of how modules are rendered. Instead of defining a prefix and suffix
|
|||
|
for the context-based variables, the variables can now be substituted from within
|
|||
|
a format string, which represents the module's output.
|
|||
|
|
|||
|
**Example pre-v0.45.0 configuration**
|
|||
|
|
|||
|
```toml
|
|||
|
[cmd_duration]
|
|||
|
prefix = "took "
|
|||
|
```
|
|||
|
|
|||
|
**Example v0.45.0 configuration**
|
|||
|
|
|||
|
```toml
|
|||
|
[cmd_duration]
|
|||
|
# $duration – The command duration (e.g. "15s")
|
|||
|
# $style – The default style of the module (e.g. "bold yellow")
|
|||
|
format = "took [$duration]($style)"
|
|||
|
```
|
|||
|
|
|||
|
### Affected Modules
|
|||
|
|
|||
|
#### Character
|
|||
|
|
|||
|
| Deprecated Property | Replacement |
|
|||
|
| ----------------------- | ---------------- |
|
|||
|
| `symbol` | `success_symbol` |
|
|||
|
| `use_symbol_for_status` | `error_symbol` |
|
|||
|
| `style_success` | `success_symbol` |
|
|||
|
| `style_failure` | `error_symbol` |
|
|||
|
|
|||
|
**Changes to the Default Configuration**
|
|||
|
|
|||
|
```diff
|
|||
|
[character]
|
|||
|
-- symbol = "❯"
|
|||
|
-- error_symbol = "✖"
|
|||
|
-- use_symbol_for_status = true
|
|||
|
-- vicmd_symbol = "❮"
|
|||
|
++ success_symbol = "[❯](bold green) "
|
|||
|
++ error_symbol = "[❯](bold red) "
|
|||
|
++ vicmd_symbol = "[❮](bold green)"
|
|||
|
```
|
|||
|
|
|||
|
Previously, the `use_symbol_for_status` property was used to configure the prompt to show the `error_symbol` when the last command resulted in a non-zero status code.
|
|||
|
|
|||
|
With the release of v0.45.0, we now always use `error_symbol` after non-zero status codes, unifying `use_symbol_for_status` and `error_symbol` properties.
|
|||
|
|
|||
|
To configure the prompt to use the older `use_symbol_for_status = true` configuration, add the following to your config file:
|
|||
|
|
|||
|
```toml
|
|||
|
[character]
|
|||
|
error_symbol = "[✖](bold red) "
|
|||
|
```
|
|||
|
|
|||
|
#### Command Duration
|
|||
|
|
|||
|
| Deprecated Property | Replacement |
|
|||
|
| ------------------- | ----------- |
|
|||
|
| `prefix` | `format` |
|
|||
|
|
|||
|
**Changes to the Default Configuration**
|
|||
|
|
|||
|
```diff
|
|||
|
[cmd_duration]
|
|||
|
-- prefix = "took "
|
|||
|
++ format = "took [$duration]($style)"
|
|||
|
```
|
|||
|
|
|||
|
#### Directory
|
|||
|
|
|||
|
| Deprecated Property | Replacement |
|
|||
|
| ------------------- | ----------- |
|
|||
|
| `prefix` | `format` |
|
|||
|
|
|||
|
**Changes to the Default Configuration**
|
|||
|
|
|||
|
```diff
|
|||
|
[cmd_duration]
|
|||
|
-- prefix = "in "
|
|||
|
++ format = "[$path]($style)[$lock_symbol]($lock_style)"
|
|||
|
```
|
|||
|
|
|||
|
#### Environment Variable
|
|||
|
|
|||
|
| Deprecated Property | Replacement |
|
|||
|
| ------------------- | ----------- |
|
|||
|
| `prefix` | `format` |
|
|||
|
| `suffix` | `format` |
|
|||
|
|
|||
|
**Changes to the Default Configuration**
|
|||
|
|
|||
|
```diff
|
|||
|
[cmd_duration]
|
|||
|
-- prefix = ""
|
|||
|
-- suffix = ""
|
|||
|
++ format = "with [$env_value]($style) "
|
|||
|
```
|
|||
|
|
|||
|
#### Git Commit
|
|||
|
|
|||
|
| Deprecated Property | Replacement |
|
|||
|
| ------------------- | ----------- |
|
|||
|
| `prefix` | `format` |
|
|||
|
| `suffix` | `format` |
|
|||
|
|
|||
|
**Changes to the Default Configuration**
|
|||
|
|
|||
|
```diff
|
|||
|
[cmd_duration]
|
|||
|
-- prefix = "("
|
|||
|
-- suffix = ")"
|
|||
|
++ format = "[\\($hash\\)]($style) "
|
|||
|
```
|
|||
|
|
|||
|
#### Git Status
|
|||
|
|
|||
|
| Deprecated Property | Replacement |
|
|||
|
| ------------------- | ----------- |
|
|||
|
| `prefix` | `format` |
|
|||
|
| `suffix` | `format` |
|
|||
|
|
|||
|
**Changes to the Default Configuration**
|
|||
|
|
|||
|
```diff
|
|||
|
[cmd_duration]
|
|||
|
-- prefix = "["
|
|||
|
-- suffix = "]"
|
|||
|
++ format = "([$all_status$ahead_behind] )"
|
|||
|
```
|
|||
|
|
|||
|
#### Hostname
|
|||
|
|
|||
|
| Deprecated Property | Replacement |
|
|||
|
| ------------------- | ----------- |
|
|||
|
| `prefix` | `format` |
|
|||
|
| `suffix` | `format` |
|
|||
|
|
|||
|
**Changes to the Default Configuration**
|
|||
|
|
|||
|
```diff
|
|||
|
[cmd_duration]
|
|||
|
-- prefix = ""
|
|||
|
-- suffix = ""
|
|||
|
++ format = "[$hostname]($style) in "
|
|||
|
```
|
|||
|
|
|||
|
#### Singularity
|
|||
|
|
|||
|
| Deprecated Property | Replacement |
|
|||
|
| ------------------- | ----------- |
|
|||
|
| `label` | `format` |
|
|||
|
| `prefix` | `format` |
|
|||
|
| `suffix` | `format` |
|
|||
|
|
|||
|
**Changes to the Default Configuration**
|
|||
|
|
|||
|
```diff
|
|||
|
[cmd_duration]
|
|||
|
-- prefix = ""
|
|||
|
-- suffix = ""
|
|||
|
++ format = "[$symbol\\[$env\\]]($style) "
|
|||
|
```
|
|||
|
|
|||
|
#### Time
|
|||
|
|
|||
|
| Deprecated Property | Replacement |
|
|||
|
| ------------------- | ------------- |
|
|||
|
| `format` | `time_format` |
|
|||
|
|
|||
|
**Changes to the Default Configuration**
|
|||
|
|
|||
|
```diff
|
|||
|
[time]
|
|||
|
-- format = "🕙[ %T ]"
|
|||
|
++ time_format = "%T"
|
|||
|
++ format = "at 🕙[$time]($style)
|
|||
|
```
|
|||
|
|
|||
|
#### Custom Commands
|
|||
|
|
|||
|
| Deprecated Property | Replacement |
|
|||
|
| ------------------- | ----------- |
|
|||
|
| `prefix` | `format` |
|
|||
|
| `suffix` | `format` |
|
|||
|
|
|||
|
**Changes to the Default Configuration**
|
|||
|
|
|||
|
```diff
|
|||
|
[cmd_duration]
|
|||
|
-- prefix = ""
|
|||
|
-- suffix = ""
|
|||
|
++ format = "[$symbol$output]($style) "
|
|||
|
```
|