feat(nix_shell): add symbol to nix-shell module (#1058)

* feat: add nix-shell icon

Fixes #1048

* style: make nix-shell bold blue by default

It better matches the whole theme around Nix and snowflakes.
This commit is contained in:
Bernardo Meurer 2020-04-07 09:35:18 -07:00 committed by GitHub
parent 8d90baf0eb
commit 7718450311
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 16 additions and 11 deletions

View File

@ -978,11 +978,12 @@ The module will be shown when inside a nix-shell environment.
### Options ### Options
| Variable | Default | Description | | Variable | Default | Description |
| ------------ | ------------ | ---------------------------------- | | ------------ | ------------- | ------------------------------------------------- |
| `use_name` | `false` | Display the name of the nix-shell. | | `use_name` | `false` | Display the name of the nix-shell. |
| `impure_msg` | `"impure"` | Customize the "impure" msg. | | `impure_msg` | `"impure"` | Customize the "impure" msg. |
| `pure_msg` | `"pure"` | Customize the "pure" msg. | | `pure_msg` | `"pure"` | Customize the "pure" msg. |
| `style` | `"bold red"` | The style for the module. | | `symbol` | `"❄️ "` | The symbol used before displaying the shell name. |
| `style` | `"bold blue"` | The style for the module. |
| `disabled` | `false` | Disables the `nix_shell` module. | | `disabled` | `false` | Disables the `nix_shell` module. |
### Example ### Example
@ -995,6 +996,7 @@ disabled = true
use_name = true use_name = true
impure_msg = "impure shell" impure_msg = "impure shell"
pure_msg = "pure shell" pure_msg = "pure shell"
symbol = "☃️ "
``` ```
## NodeJS ## NodeJS

View File

@ -9,6 +9,7 @@ pub struct NixShellConfig<'a> {
pub impure_msg: SegmentConfig<'a>, pub impure_msg: SegmentConfig<'a>,
pub pure_msg: SegmentConfig<'a>, pub pure_msg: SegmentConfig<'a>,
pub style: Style, pub style: Style,
pub symbol: SegmentConfig<'a>,
pub disabled: bool, pub disabled: bool,
} }
@ -18,7 +19,8 @@ impl<'a> RootModuleConfig<'a> for NixShellConfig<'a> {
use_name: false, use_name: false,
impure_msg: SegmentConfig::new("impure"), impure_msg: SegmentConfig::new("impure"),
pure_msg: SegmentConfig::new("pure"), pure_msg: SegmentConfig::new("pure"),
style: Color::Red.bold(), style: Color::Blue.bold(),
symbol: SegmentConfig::new("❄️ "),
disabled: false, disabled: false,
} }
} }

View File

@ -27,6 +27,7 @@ pub fn module<'a>(context: &'a Context) -> Option<Module<'a>> {
let config: NixShellConfig = NixShellConfig::try_load(module.config); let config: NixShellConfig = NixShellConfig::try_load(module.config);
module.set_style(config.style); module.set_style(config.style);
module.create_segment("symbol", &config.symbol);
let shell_type = env::var("IN_NIX_SHELL").ok()?; let shell_type = env::var("IN_NIX_SHELL").ok()?;
let shell_type_segment: SegmentConfig = match shell_type.as_ref() { let shell_type_segment: SegmentConfig = match shell_type.as_ref() {

View File

@ -28,7 +28,7 @@ fn pure_shell() -> io::Result<()> {
.output()?; .output()?;
let actual = String::from_utf8(output.stdout).unwrap(); let actual = String::from_utf8(output.stdout).unwrap();
let expected = format!("via {} ", Color::Red.bold().paint("pure")); let expected = format!("via {} ", Color::Blue.bold().paint("❄️ pure"));
assert_eq!(expected, actual); assert_eq!(expected, actual);
Ok(()) Ok(())
} }
@ -40,7 +40,7 @@ fn impure_shell() -> io::Result<()> {
.output()?; .output()?;
let actual = String::from_utf8(output.stdout).unwrap(); let actual = String::from_utf8(output.stdout).unwrap();
let expected = format!("via {} ", Color::Red.bold().paint("impure")); let expected = format!("via {} ", Color::Blue.bold().paint("❄️ impure"));
assert_eq!(expected, actual); assert_eq!(expected, actual);
Ok(()) Ok(())
} }
@ -52,7 +52,7 @@ fn lorri_shell() -> io::Result<()> {
.output()?; .output()?;
let actual = String::from_utf8(output.stdout).unwrap(); let actual = String::from_utf8(output.stdout).unwrap();
let expected = format!("via {} ", Color::Red.bold().paint("impure")); let expected = format!("via {} ", Color::Blue.bold().paint("❄️ impure"));
assert_eq!(expected, actual); assert_eq!(expected, actual);
Ok(()) Ok(())
} }