diff --git a/docs/config/README.md b/docs/config/README.md index f6dfc727861d..e60a9814800b 100644 --- a/docs/config/README.md +++ b/docs/config/README.md @@ -1,12 +1,5 @@ # Configuration -::: tip - -🔥 Configuration is currently being worked on. -Many new configuration options will be available in coming releases. - -::: - To get started configuring starship, create the following file: `~/.config/starship.toml`. ```sh @@ -14,10 +7,9 @@ mkdir -p ~/.config && touch ~/.config/starship.toml ``` All configuration for starship is done in this [TOML](https://github.com/toml-lang/toml) file: - ```toml # Don't print a new line at the start of the prompt -format = "$all" +add_newline = false # Replace the "❯" symbol in the prompt with "➜" [character] # The name of the module we are configuring is "character" @@ -147,15 +139,13 @@ This is the list of prompt-wide configuration options. | -------------- | ------------------------------ | ----------------------------------------------------- | | `format` | [link](#default-prompt-format) | Configure the format of the prompt. | | `scan_timeout` | `30` | Timeout for starship to scan files (in milliseconds). | +| `add_newline` | `true` | Add a new line before the start of the prompt. | ### Example ```toml # ~/.config/starship.toml -# Disable the newline at the start of the prompt -format = "$all" - # Use custom format format = """ [┌───────────────────>](bold green) @@ -164,6 +154,9 @@ format = """ # Wait 10 milliseconds for starship to check files under the current directory. scan_timeout = 10 + +# Disable the newline at the start of the prompt +add_newline = false ``` ### Default Prompt Format @@ -171,7 +164,7 @@ scan_timeout = 10 The default `format` is used to define the format of the prompt, if empty or no `format` is provided. The default is as shown: ```toml -format = "\n$all" +format = "$all" # Which is equivalent to format = """ diff --git a/src/configs/starship_root.rs b/src/configs/starship_root.rs index ad507c4d9afc..b3f7a5b27d74 100644 --- a/src/configs/starship_root.rs +++ b/src/configs/starship_root.rs @@ -6,6 +6,7 @@ use starship_module_config_derive::ModuleConfig; pub struct StarshipRootConfig<'a> { pub format: &'a str, pub scan_timeout: u64, + pub add_newline: bool, } // List of default prompt order @@ -70,8 +71,9 @@ pub const PROMPT_ORDER: &[&str] = &[ impl<'a> RootModuleConfig<'a> for StarshipRootConfig<'a> { fn new() -> Self { StarshipRootConfig { - format: "\n$all", + format: "$all", scan_timeout: 30, + add_newline: true, } } } diff --git a/src/print.rs b/src/print.rs index 48d6e7de123c..28f437e50b6a 100644 --- a/src/print.rs +++ b/src/print.rs @@ -72,6 +72,9 @@ pub fn get_prompt(context: Context) -> String { ); let module_strings = root_module.ansi_strings_for_shell(context.shell); + if config.add_newline { + writeln!(buf).unwrap(); + } write!(buf, "{}", ANSIStrings(&module_strings)).unwrap(); buf