forked from starship/starship
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: update the nushell init file and make it valid module and overl…
…ay (starship#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 1175801 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
- Loading branch information
Showing
5 changed files
with
49 additions
and
35 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,27 +1,39 @@ | ||
let-env STARSHIP_SHELL = "nu" | ||
let-env STARSHIP_SESSION_KEY = (random chars -l 16) | ||
let-env PROMPT_MULTILINE_INDICATOR = (^::STARSHIP:: prompt --continuation) | ||
# this file is both a valid | ||
# - overlay which can be loaded with `overlay use starship.nu` | ||
# - module which can be used with `use starship.nu` | ||
# - script which can be used with `source starship.nu` | ||
export-env { load-env { | ||
STARSHIP_SHELL: "nu" | ||
STARSHIP_SESSION_KEY: (random chars -l 16) | ||
PROMPT_MULTILINE_INDICATOR: ( | ||
^::STARSHIP:: prompt --continuation | ||
) | ||
|
||
# Does not play well with default character module. | ||
# TODO: Also Use starship vi mode indicators? | ||
let-env PROMPT_INDICATOR = "" | ||
# Does not play well with default character module. | ||
# TODO: Also Use starship vi mode indicators? | ||
PROMPT_INDICATOR: "" | ||
|
||
let-env PROMPT_COMMAND = { || | ||
# jobs are not supported | ||
let width = (term size).columns | ||
^::STARSHIP:: prompt $"--cmd-duration=($env.CMD_DURATION_MS)" $"--status=($env.LAST_EXIT_CODE)" $"--terminal-width=($width)" | ||
} | ||
PROMPT_COMMAND: {|| | ||
# jobs are not supported | ||
( | ||
^::STARSHIP:: prompt | ||
--cmd-duration $env.CMD_DURATION_MS | ||
$"--status=($env.LAST_EXIT_CODE)" | ||
--terminal-width (term size).columns | ||
) | ||
} | ||
|
||
# Whether we have config items | ||
let has_config_items = (not ($env | get -i config | is-empty)) | ||
config: ($env.config? | default {} | merge { | ||
render_right_prompt_on_last_line: true | ||
}) | ||
|
||
let-env config = if $has_config_items { | ||
$env.config | upsert render_right_prompt_on_last_line true | ||
} else { | ||
{render_right_prompt_on_last_line: true} | ||
} | ||
|
||
let-env PROMPT_COMMAND_RIGHT = { || | ||
let width = (term size).columns | ||
^::STARSHIP:: prompt --right $"--cmd-duration=($env.CMD_DURATION_MS)" $"--status=($env.LAST_EXIT_CODE)" $"--terminal-width=($width)" | ||
} | ||
PROMPT_COMMAND_RIGHT: {|| | ||
( | ||
^::STARSHIP:: prompt | ||
--right | ||
--cmd-duration $env.CMD_DURATION_MS | ||
$"--status=($env.LAST_EXIT_CODE)" | ||
--terminal-width (term size).columns | ||
) | ||
} | ||
}} |