From a6264be803c42b1d47dd2626a2d10c8e06e67bef Mon Sep 17 00:00:00 2001 From: schrodincat Date: Fri, 14 Dec 2018 19:03:27 +0300 Subject: [PATCH 01/17] Change prompt symbol default color to magenta --- conf.d/pure.fish | 2 +- functions/_pure_prompt_symbol.fish | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/conf.d/pure.fish b/conf.d/pure.fish index c4eae3cb..a2d7edac 100644 --- a/conf.d/pure.fish +++ b/conf.d/pure.fish @@ -17,7 +17,7 @@ _pure_set_default pure_symbol_horizontal_bar "—" # Colors _pure_set_default pure_color_red (set_color red) -_pure_set_default pure_color_green (set_color green) +_pure_set_default pure_color_magenta (set_color magenta) _pure_set_default pure_color_blue (set_color blue) _pure_set_default pure_color_magenta (set_color magenta) _pure_set_default pure_color_yellow (set_color yellow) diff --git a/functions/_pure_prompt_symbol.fish b/functions/_pure_prompt_symbol.fish index 2dab3789..e1c37cc6 100644 --- a/functions/_pure_prompt_symbol.fish +++ b/functions/_pure_prompt_symbol.fish @@ -5,11 +5,11 @@ function _pure_prompt_symbol \ set --local pure_symbol $pure_symbol_prompt set --local command_succeed 0 - set --local color_symbol $pure_color_green # pure symbol is green by default + set --local color_symbol $pure_color_magenta # pure symbol is magenta by default if test $exit_code -ne 0 set color_symbol $pure_color_red # pure symbol is red when previous command failed - if test $pure_separate_prompt_on_error = true + if test $pure_separate_prompt_on_error = true set color_symbol "$pure_color_red$pure_symbol_prompt$pure_color_magenta" end end From 97ce599d2cbcae3ab8bd558262302ad3e0dbdf7d Mon Sep 17 00:00:00 2001 From: Boye Borg Date: Fri, 20 Apr 2018 12:08:56 +0200 Subject: [PATCH 02/17] update screenshot to show the new prompt color --- screenshot.png | Bin 38501 -> 104540 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/screenshot.png b/screenshot.png index a852c76c2e3f0c49d2c5bad9f809a19460cf05b5..744bc07507b90762cc1199295052d3fb744e2ade 100644 GIT binary patch literal 104540 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 CqS596 literal 38501 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 Date: Fri, 14 Dec 2018 19:05:39 +0300 Subject: [PATCH 03/17] Give every prompt attribute a configurable color variable --- conf.d/pure.fish | 16 +++++++++++++--- functions/_pure_prompt_at.fish | 2 +- functions/_pure_prompt_command_duration.fish | 2 +- functions/_pure_prompt_current_folder.fish | 2 +- functions/_pure_prompt_git_arrows.fish | 2 +- functions/_pure_prompt_git_branch.fish | 2 +- functions/_pure_prompt_git_dirty.fish | 3 ++- functions/_pure_prompt_host.fish | 4 ++-- functions/_pure_prompt_user.fish | 5 ++--- functions/_pure_prompt_virtualenv.fish | 2 +- 10 files changed, 25 insertions(+), 15 deletions(-) diff --git a/conf.d/pure.fish b/conf.d/pure.fish index a2d7edac..65fa350c 100644 --- a/conf.d/pure.fish +++ b/conf.d/pure.fish @@ -23,11 +23,21 @@ _pure_set_default pure_color_magenta (set_color magenta) _pure_set_default pure_color_yellow (set_color yellow) _pure_set_default pure_color_cyan (set_color cyan) _pure_set_default pure_color_gray (set_color 93A1A1) +_pure_set_default pure_color_white (set_color white) _pure_set_default pure_color_normal (set_color normal) -_pure_set_default pure_username_color $pure_color_gray -_pure_set_default pure_host_color $pure_color_gray -_pure_set_default pure_root_color $pure_color_normal +_pure_set_default pure_color_success $pure_color_magenta +_pure_set_default pure_color_error $pure_color_red +_pure_set_default pure_color_folder $pure_color_blue +_pure_set_default pure_color_duration $pure_color_yellow +_pure_set_default pure_color_git_dirty $pure_color_gray +_pure_set_default pure_color_git_branch $pure_color_gray +_pure_set_default pure_color_git_arrow $pure_color_cyan +_pure_set_default pure_color_virtualenv $pure_color_gray +_pure_set_default pure_color_ssh_username $pure_color_gray +_pure_set_default pure_color_ssh_host $pure_color_gray +_pure_set_default pure_color_ssh_root $pure_color_white +_pure_set_default pure_color_ssh_host_user_seperator $pure_color_gray # Print current working directory at the beginning of prompt # true (default): current directory, git, user@hostname (ssh-only), command duration diff --git a/functions/_pure_prompt_at.fish b/functions/_pure_prompt_at.fish index f41dc84c..3c28823b 100644 --- a/functions/_pure_prompt_at.fish +++ b/functions/_pure_prompt_at.fish @@ -1,6 +1,6 @@ function _pure_prompt_at set --local at_symbol "@" - set --local at_symbol_color "$pure_color_gray" + set --local at_symbol_color "$pure_color_ssh_host_user_seperator" echo "$at_symbol_color$at_symbol" end diff --git a/functions/_pure_prompt_command_duration.fish b/functions/_pure_prompt_command_duration.fish index 098956e9..4d83b964 100644 --- a/functions/_pure_prompt_command_duration.fish +++ b/functions/_pure_prompt_command_duration.fish @@ -5,7 +5,7 @@ function _pure_prompt_command_duration if test -n "$CMD_DURATION" set command_duration (_pure_format_time $CMD_DURATION $pure_command_max_exec_time) end - set --local command_duration_color "$pure_color_yellow" + set --local command_duration_color "$pure_color_duration" echo "$command_duration_color$command_duration" end diff --git a/functions/_pure_prompt_current_folder.fish b/functions/_pure_prompt_current_folder.fish index 47ae0a5c..94b2c111 100644 --- a/functions/_pure_prompt_current_folder.fish +++ b/functions/_pure_prompt_current_folder.fish @@ -5,7 +5,7 @@ function _pure_prompt_current_folder --argument-names current_prompt_width if test -z "$current_prompt_width"; return $fail; end set --local current_folder (_pure_parse_directory (math $COLUMNS - $current_prompt_width - 1)) - set --local current_folder_color "$pure_color_blue" + set --local current_folder_color "$pure_color_folder" echo "$current_folder_color$current_folder" end diff --git a/functions/_pure_prompt_git_arrows.fish b/functions/_pure_prompt_git_arrows.fish index 9fde60d8..fb8239d4 100644 --- a/functions/_pure_prompt_git_arrows.fish +++ b/functions/_pure_prompt_git_arrows.fish @@ -17,7 +17,7 @@ function _pure_prompt_git_arrows set git_arrows "$git_arrows$pure_symbol_git_down_arrow" end - set git_arrows_color "$pure_color_cyan" + set git_arrows_color "$pure_color_git_arrow" end echo "$git_arrows_color$git_arrows" diff --git a/functions/_pure_prompt_git_branch.fish b/functions/_pure_prompt_git_branch.fish index cf697ef4..3d39d65e 100644 --- a/functions/_pure_prompt_git_branch.fish +++ b/functions/_pure_prompt_git_branch.fish @@ -1,6 +1,6 @@ function _pure_prompt_git_branch set --local git_branch (_pure_parse_git_branch) # current git branch - set --local git_branch_color "$pure_color_gray" + set --local git_branch_color "$pure_color_git_branch" echo "$git_branch_color$git_branch" end diff --git a/functions/_pure_prompt_git_dirty.fish b/functions/_pure_prompt_git_dirty.fish index e69e7ed4..66ff6590 100644 --- a/functions/_pure_prompt_git_dirty.fish +++ b/functions/_pure_prompt_git_dirty.fish @@ -1,10 +1,11 @@ function _pure_prompt_git_dirty set --local git_dirty_symbol + set --local git_dirty_color "$pure_color_git_dirty" set --local is_git_dirty (command git status --porcelain --ignore-submodules 2>/dev/null) if test -n "$is_git_dirty" # untracked or un-commited files set git_dirty_symbol "$pure_symbol_git_dirty" end - echo "$git_dirty_symbol" + echo "$git_dirty_color$git_dirty_symbol" end diff --git a/functions/_pure_prompt_host.fish b/functions/_pure_prompt_host.fish index 0b5c61c7..4c278dab 100644 --- a/functions/_pure_prompt_host.fish +++ b/functions/_pure_prompt_host.fish @@ -1,7 +1,7 @@ function _pure_prompt_host set --query --global hostname or set --local hostname (hostname --short) # current host name - set --local hostname_color "$pure_host_color" + set --local hostname_color "$pure_color_ssh_host" echo "$hostname_color$hostname" -end \ No newline at end of file +end diff --git a/functions/_pure_prompt_user.fish b/functions/_pure_prompt_user.fish index 1a329b00..0048fe5f 100644 --- a/functions/_pure_prompt_user.fish +++ b/functions/_pure_prompt_user.fish @@ -1,9 +1,8 @@ function _pure_prompt_user set --local username (whoami) - set --local username_color "$pure_username_color" # default color - + set --local username_color "$pure_color_ssh_username" # default color if [ "$username" = "root" ] - set username_color "$pure_root_color" # different color for root + set username_color "$pure_color_ssh_root" # different color for root end echo "$username_color$username" diff --git a/functions/_pure_prompt_virtualenv.fish b/functions/_pure_prompt_virtualenv.fish index df8a40cf..4ff97283 100644 --- a/functions/_pure_prompt_virtualenv.fish +++ b/functions/_pure_prompt_virtualenv.fish @@ -1,7 +1,7 @@ function _pure_prompt_virtualenv --description "Display virtualenv directory" if test -n "$VIRTUAL_ENV" set --local virtualenv (basename "$VIRTUAL_ENV") - set --local virtualenv_color "$pure_color_gray" + set --local virtualenv_color "$pure_color_virtualenv" echo "$virtualenv_color$virtualenv" end From 8a5dc28ad24ee82127b0429e062598c8f46d3e43 Mon Sep 17 00:00:00 2001 From: Boye Borg Date: Fri, 20 Apr 2018 13:06:30 +0200 Subject: [PATCH 04/17] update readme to show the new color variables --- README.md | 54 ++++++++++++++++++++++++++++++++---------------------- 1 file changed, 32 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index b912a1de..5b18d7cb 100644 --- a/README.md +++ b/README.md @@ -66,42 +66,52 @@ You can tweak pretty much everything in `pure` by overriding variables in your ` ```fish # Symbols -_pure_set_default pure_symbol_prompt "❯" +set pure_symbol_prompt "❯" # Git -_pure_set_default pure_symbol_git_down_arrow "⇣" -_pure_set_default pure_symbol_git_up_arrow "⇡" -_pure_set_default pure_symbol_git_dirty "*" +set pure_symbol_git_down_arrow "⇣" +set pure_symbol_git_up_arrow "⇡" +set pure_symbol_git_dirty "*" # Title -_pure_set_default pure_symbol_horizontal_bar "—" - -# Colors -_pure_set_default pure_color_red (set_color red) -_pure_set_default pure_color_green (set_color green) -_pure_set_default pure_color_blue (set_color blue) -_pure_set_default pure_color_magenta (set_color magenta) -_pure_set_default pure_color_yellow (set_color yellow) -_pure_set_default pure_color_cyan (set_color cyan) -_pure_set_default pure_color_gray (set_color 93A1A1) -_pure_set_default pure_color_normal (set_color normal) - -_pure_set_default pure_username_color $pure_color_gray -_pure_set_default pure_host_color $pure_color_gray -_pure_set_default pure_root_color $pure_color_normal +set pure_symbol_horizontal_bar "—" + +# Base colors +set pure_color_red (set_color red) +set pure_color_magenta (set_color magenta) +set pure_color_blue (set_color blue) +set pure_color_yellow (set_color yellow) +set pure_color_cyan (set_color cyan) +set pure_color_gray (set_color 93A1A1) +set pure_color_white (set_color white) +set pure_color_normal (set_color normal) + +# Colors used on symbols, attributes and events +set pure_color_success $pure_color_magenta +set pure_color_error $pure_color_red +set pure_color_folder $pure_color_blue +set pure_color_duration $pure_color_yellow +set pure_color_git_dirty $pure_color_gray +set pure_color_git_branch $pure_color_gray +set pure_color_git_arrow $pure_color_cyan +set pure_color_virtualenv $pure_color_gray +set pure_color_ssh_username $pure_color_gray +set pure_color_ssh_host $pure_color_gray +set pure_color_ssh_root $pure_color_white +set pure_color_ssh_host_user_seperator $pure_color_gray # Print current working directory at the beginning of prompt # true (default): current directory, git, user@hostname (ssh-only), command duration # false: user@hostname (ssh-only), current directory, git, command duration -_pure_set_default pure_prompt_begin_with_current_directory true +set pure_prompt_begin_with_current_directory true # Show exit code of last command as a separate prompt character (cf. https://github.com/sindresorhus/pure/wiki#show-exit-code-of-last-command-as-a-separate-prompt-character) # false - single prompt character, default # true - separate prompt character -_pure_set_default pure_separate_prompt_on_error false +set pure_separate_prompt_on_error false # Max execution time of a process before its run time is shown when it exits -_pure_set_default pure_command_max_exec_time 5 +set pure_command_max_exec_time 5 ``` ## Tests From 04e031a2cfd0e68d8e8d154034c63531b771c74d Mon Sep 17 00:00:00 2001 From: schrodincat Date: Fri, 14 Dec 2018 19:06:46 +0300 Subject: [PATCH 05/17] Arrange colors in alphabetical order --- README.md | 8 ++++---- conf.d/pure.fish | 9 ++++----- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 5b18d7cb..54a22d78 100644 --- a/README.md +++ b/README.md @@ -77,14 +77,14 @@ set pure_symbol_git_dirty "*" set pure_symbol_horizontal_bar "—" # Base colors -set pure_color_red (set_color red) -set pure_color_magenta (set_color magenta) set pure_color_blue (set_color blue) -set pure_color_yellow (set_color yellow) set pure_color_cyan (set_color cyan) set pure_color_gray (set_color 93A1A1) -set pure_color_white (set_color white) +set pure_color_magenta (set_color magenta) set pure_color_normal (set_color normal) +set pure_color_red (set_color red) +set pure_color_white (set_color white) +set pure_color_yellow (set_color yellow) # Colors used on symbols, attributes and events set pure_color_success $pure_color_magenta diff --git a/conf.d/pure.fish b/conf.d/pure.fish index 65fa350c..2f940ada 100644 --- a/conf.d/pure.fish +++ b/conf.d/pure.fish @@ -16,15 +16,14 @@ _pure_set_default pure_symbol_git_dirty "*" _pure_set_default pure_symbol_horizontal_bar "—" # Colors -_pure_set_default pure_color_red (set_color red) -_pure_set_default pure_color_magenta (set_color magenta) _pure_set_default pure_color_blue (set_color blue) -_pure_set_default pure_color_magenta (set_color magenta) -_pure_set_default pure_color_yellow (set_color yellow) _pure_set_default pure_color_cyan (set_color cyan) _pure_set_default pure_color_gray (set_color 93A1A1) -_pure_set_default pure_color_white (set_color white) +_pure_set_default pure_color_magenta (set_color magenta) _pure_set_default pure_color_normal (set_color normal) +_pure_set_default pure_color_red (set_color red) +_pure_set_default pure_color_white (set_color white) +_pure_set_default pure_color_yellow (set_color yellow) _pure_set_default pure_color_success $pure_color_magenta _pure_set_default pure_color_error $pure_color_red From 66864be0496237ce3743db0c5f03f82b108200bb Mon Sep 17 00:00:00 2001 From: schrodincat Date: Fri, 14 Dec 2018 19:38:44 +0300 Subject: [PATCH 06/17] Rename functions and variables for consistency --- README.md | 19 +++++++-------- conf.d/pure.fish | 24 +++++++++---------- functions/_pure_prompt_at.fish | 6 ----- functions/_pure_prompt_command_duration.fish | 2 +- functions/_pure_prompt_current_folder.fish | 2 +- functions/_pure_prompt_first_line.fish | 6 ++--- functions/_pure_prompt_git_arrows.fish | 6 ++--- functions/_pure_prompt_git_dirty.fish | 3 ++- functions/_pure_prompt_ssh.fish | 5 ++++ ...t_host.fish => _pure_prompt_ssh_host.fish} | 2 +- functions/_pure_prompt_ssh_separator.fish | 6 +++++ functions/_pure_prompt_ssh_user.fish | 9 +++++++ functions/_pure_prompt_symbol.fish | 6 ++--- 13 files changed, 55 insertions(+), 41 deletions(-) delete mode 100644 functions/_pure_prompt_at.fish create mode 100644 functions/_pure_prompt_ssh.fish rename functions/{_pure_prompt_host.fish => _pure_prompt_ssh_host.fish} (86%) create mode 100644 functions/_pure_prompt_ssh_separator.fish create mode 100644 functions/_pure_prompt_ssh_user.fish diff --git a/README.md b/README.md index 54a22d78..f7c1534f 100644 --- a/README.md +++ b/README.md @@ -87,18 +87,17 @@ set pure_color_white (set_color white) set pure_color_yellow (set_color yellow) # Colors used on symbols, attributes and events -set pure_color_success $pure_color_magenta -set pure_color_error $pure_color_red -set pure_color_folder $pure_color_blue -set pure_color_duration $pure_color_yellow -set pure_color_git_dirty $pure_color_gray set pure_color_git_branch $pure_color_gray -set pure_color_git_arrow $pure_color_cyan -set pure_color_virtualenv $pure_color_gray -set pure_color_ssh_username $pure_color_gray +set pure_color_git_dirty $pure_color_gray +set pure_color_git_arrows $pure_color_cyan +set pure_color_command_duration (set_color --background blue) +set pure_color_ssh_user_normal $pure_color_gray +set pure_color_ssh_user_root $pure_color_white +set pure_color_ssh_separator $pure_color_gray set pure_color_ssh_host $pure_color_gray -set pure_color_ssh_root $pure_color_white -set pure_color_ssh_host_user_seperator $pure_color_gray +set pure_color_virtualenv $pure_color_gray +set pure_color_success (set_color green) +set pure_color_error (set_color magenta) # Print current working directory at the beginning of prompt # true (default): current directory, git, user@hostname (ssh-only), command duration diff --git a/conf.d/pure.fish b/conf.d/pure.fish index 2f940ada..bfb92c1a 100644 --- a/conf.d/pure.fish +++ b/conf.d/pure.fish @@ -8,8 +8,8 @@ set -gx VIRTUAL_ENV_DISABLE_PROMPT 1 _pure_set_default pure_symbol_prompt "❯" # Git -_pure_set_default pure_symbol_git_down_arrow "⇣" -_pure_set_default pure_symbol_git_up_arrow "⇡" +_pure_set_default pure_symbol_git_arrow_down "⇣" +_pure_set_default pure_symbol_git_arrow_up "⇡" _pure_set_default pure_symbol_git_dirty "*" # Title @@ -25,18 +25,18 @@ _pure_set_default pure_color_red (set_color red) _pure_set_default pure_color_white (set_color white) _pure_set_default pure_color_yellow (set_color yellow) -_pure_set_default pure_color_success $pure_color_magenta -_pure_set_default pure_color_error $pure_color_red -_pure_set_default pure_color_folder $pure_color_blue -_pure_set_default pure_color_duration $pure_color_yellow -_pure_set_default pure_color_git_dirty $pure_color_gray +_pure_set_default pure_color_current_folder $pure_color_blue _pure_set_default pure_color_git_branch $pure_color_gray -_pure_set_default pure_color_git_arrow $pure_color_cyan -_pure_set_default pure_color_virtualenv $pure_color_gray -_pure_set_default pure_color_ssh_username $pure_color_gray +_pure_set_default pure_color_git_dirty $pure_color_gray +_pure_set_default pure_color_git_arrows $pure_color_cyan +_pure_set_default pure_color_command_duration $pure_color_yellow +_pure_set_default pure_color_ssh_user_normal $pure_color_gray +_pure_set_default pure_color_ssh_user_root $pure_color_white +_pure_set_default pure_color_ssh_separator $pure_color_gray _pure_set_default pure_color_ssh_host $pure_color_gray -_pure_set_default pure_color_ssh_root $pure_color_white -_pure_set_default pure_color_ssh_host_user_seperator $pure_color_gray +_pure_set_default pure_color_virtualenv $pure_color_gray +_pure_set_default pure_color_symbol_success $pure_color_magenta +_pure_set_default pure_color_symbol_error $pure_color_red # Print current working directory at the beginning of prompt # true (default): current directory, git, user@hostname (ssh-only), command duration diff --git a/functions/_pure_prompt_at.fish b/functions/_pure_prompt_at.fish deleted file mode 100644 index 3c28823b..00000000 --- a/functions/_pure_prompt_at.fish +++ /dev/null @@ -1,6 +0,0 @@ -function _pure_prompt_at - set --local at_symbol "@" - set --local at_symbol_color "$pure_color_ssh_host_user_seperator" - - echo "$at_symbol_color$at_symbol" -end diff --git a/functions/_pure_prompt_command_duration.fish b/functions/_pure_prompt_command_duration.fish index 4d83b964..611583c2 100644 --- a/functions/_pure_prompt_command_duration.fish +++ b/functions/_pure_prompt_command_duration.fish @@ -5,7 +5,7 @@ function _pure_prompt_command_duration if test -n "$CMD_DURATION" set command_duration (_pure_format_time $CMD_DURATION $pure_command_max_exec_time) end - set --local command_duration_color "$pure_color_duration" + set --local command_duration_color "$pure_color_command_duration" echo "$command_duration_color$command_duration" end diff --git a/functions/_pure_prompt_current_folder.fish b/functions/_pure_prompt_current_folder.fish index 94b2c111..2fdc4191 100644 --- a/functions/_pure_prompt_current_folder.fish +++ b/functions/_pure_prompt_current_folder.fish @@ -5,7 +5,7 @@ function _pure_prompt_current_folder --argument-names current_prompt_width if test -z "$current_prompt_width"; return $fail; end set --local current_folder (_pure_parse_directory (math $COLUMNS - $current_prompt_width - 1)) - set --local current_folder_color "$pure_color_folder" + set --local current_folder_color "$pure_color_current_folder" echo "$current_folder_color$current_folder" end diff --git a/functions/_pure_prompt_first_line.fish b/functions/_pure_prompt_first_line.fish index 6d4a0878..0d6f6c5a 100644 --- a/functions/_pure_prompt_first_line.fish +++ b/functions/_pure_prompt_first_line.fish @@ -6,7 +6,7 @@ function _pure_prompt_first_line \ end set --local prompt (_pure_print_prompt \ - (_pure_prompt_user_and_host) \ + (_pure_prompt_ssh) \ (_pure_prompt_git) \ (_pure_prompt_command_duration) ) @@ -18,11 +18,11 @@ function _pure_prompt_first_line \ set prompt_components \ (_pure_prompt_current_folder $prompt_width) \ (_pure_prompt_git) \ - (_pure_prompt_user_and_host) \ + (_pure_prompt_ssh) \ (_pure_prompt_command_duration) else set prompt_components \ - (_pure_prompt_user_and_host) \ + (_pure_prompt_ssh) \ (_pure_prompt_current_folder $prompt_width) \ (_pure_prompt_git) \ (_pure_prompt_command_duration) diff --git a/functions/_pure_prompt_git_arrows.fish b/functions/_pure_prompt_git_arrows.fish index fb8239d4..a3a5e7bc 100644 --- a/functions/_pure_prompt_git_arrows.fish +++ b/functions/_pure_prompt_git_arrows.fish @@ -10,14 +10,14 @@ function _pure_prompt_git_arrows set --local commit_to_pull $git_status[2] if test $commit_to_push -gt 0 # upstream is behind local repo - set git_arrows "$pure_symbol_git_up_arrow" + set git_arrows "$pure_symbol_git_arrow_up" end if test $commit_to_pull -gt 0 # upstream is ahead of local repo - set git_arrows "$git_arrows$pure_symbol_git_down_arrow" + set git_arrows "$git_arrows$pure_symbol_git_arrow_down" end - set git_arrows_color "$pure_color_git_arrow" + set git_arrows_color "$pure_color_git_arrows" end echo "$git_arrows_color$git_arrows" diff --git a/functions/_pure_prompt_git_dirty.fish b/functions/_pure_prompt_git_dirty.fish index 66ff6590..247d7453 100644 --- a/functions/_pure_prompt_git_dirty.fish +++ b/functions/_pure_prompt_git_dirty.fish @@ -1,10 +1,11 @@ function _pure_prompt_git_dirty set --local git_dirty_symbol - set --local git_dirty_color "$pure_color_git_dirty" + set --local git_dirty_color set --local is_git_dirty (command git status --porcelain --ignore-submodules 2>/dev/null) if test -n "$is_git_dirty" # untracked or un-commited files set git_dirty_symbol "$pure_symbol_git_dirty" + set git_dirty_color "$pure_color_git_dirty" end echo "$git_dirty_color$git_dirty_symbol" diff --git a/functions/_pure_prompt_ssh.fish b/functions/_pure_prompt_ssh.fish new file mode 100644 index 00000000..d6d36251 --- /dev/null +++ b/functions/_pure_prompt_ssh.fish @@ -0,0 +1,5 @@ +function _pure_prompt_ssh + if [ "$SSH_CONNECTION" != "" ] + echo (_pure_prompt_ssh_user)(_pure_prompt_ssh_separator)(_pure_prompt_ssh_host) + end +end diff --git a/functions/_pure_prompt_host.fish b/functions/_pure_prompt_ssh_host.fish similarity index 86% rename from functions/_pure_prompt_host.fish rename to functions/_pure_prompt_ssh_host.fish index 4c278dab..b5d022b2 100644 --- a/functions/_pure_prompt_host.fish +++ b/functions/_pure_prompt_ssh_host.fish @@ -1,4 +1,4 @@ -function _pure_prompt_host +function _pure_prompt_ssh_host set --query --global hostname or set --local hostname (hostname --short) # current host name set --local hostname_color "$pure_color_ssh_host" diff --git a/functions/_pure_prompt_ssh_separator.fish b/functions/_pure_prompt_ssh_separator.fish new file mode 100644 index 00000000..d5c452d7 --- /dev/null +++ b/functions/_pure_prompt_ssh_separator.fish @@ -0,0 +1,6 @@ +function _pure_prompt_ssh_separator + set --local separator_symbol "@" + set --local separator_symbol_color "$pure_color_ssh_separator" + + echo "$separator_symbol_color$separator_symbol" +end diff --git a/functions/_pure_prompt_ssh_user.fish b/functions/_pure_prompt_ssh_user.fish new file mode 100644 index 00000000..ea02c73e --- /dev/null +++ b/functions/_pure_prompt_ssh_user.fish @@ -0,0 +1,9 @@ +function _pure_prompt_ssh_user + set --local username (whoami) # current user name + set --local username_color "$pure_color_ssh_user_normal" # default color + if [ "$username" = "root" ] + set username_color "$pure_color_ssh_user_root" # different color for root + end + + echo "$username_color$username" +end diff --git a/functions/_pure_prompt_symbol.fish b/functions/_pure_prompt_symbol.fish index e1c37cc6..f25c4129 100644 --- a/functions/_pure_prompt_symbol.fish +++ b/functions/_pure_prompt_symbol.fish @@ -5,12 +5,12 @@ function _pure_prompt_symbol \ set --local pure_symbol $pure_symbol_prompt set --local command_succeed 0 - set --local color_symbol $pure_color_magenta # pure symbol is magenta by default + set --local color_symbol $pure_color_symbol_success # default pure symbol color if test $exit_code -ne 0 - set color_symbol $pure_color_red # pure symbol is red when previous command failed + set color_symbol $pure_color_symbol_error # different pure symbol color when previous command failed if test $pure_separate_prompt_on_error = true - set color_symbol "$pure_color_red$pure_symbol_prompt$pure_color_magenta" + set color_symbol "$pure_color_symbol_error$pure_symbol_prompt$pure_color_symbol_success" end end From 0aa1ae64535df46a24794a89e3d028a8262a51fd Mon Sep 17 00:00:00 2001 From: schrodincat Date: Fri, 14 Dec 2018 20:02:56 +0300 Subject: [PATCH 07/17] Use terminal color for gray by default MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit There is a possiblity that text can get indistinguishable of background when it uses hardcoded color value. Use brblack variable for gray color instead in order to delegate this problem to terminal color scheme or theme plugins and insure that it won’t collide with background. --- conf.d/pure.fish | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf.d/pure.fish b/conf.d/pure.fish index bfb92c1a..f5651c2d 100644 --- a/conf.d/pure.fish +++ b/conf.d/pure.fish @@ -18,7 +18,7 @@ _pure_set_default pure_symbol_horizontal_bar "—" # Colors _pure_set_default pure_color_blue (set_color blue) _pure_set_default pure_color_cyan (set_color cyan) -_pure_set_default pure_color_gray (set_color 93A1A1) +_pure_set_default pure_color_gray (set_color brblack) _pure_set_default pure_color_magenta (set_color magenta) _pure_set_default pure_color_normal (set_color normal) _pure_set_default pure_color_red (set_color red) From f1961d6b57853d0170eab4b28d7a5ca385429931 Mon Sep 17 00:00:00 2001 From: schrodincat Date: Sat, 15 Dec 2018 17:48:37 +0300 Subject: [PATCH 08/17] Use idiomatic fish form of test command --- functions/_pure_prompt_ssh.fish | 2 +- functions/_pure_prompt_ssh_user.fish | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/functions/_pure_prompt_ssh.fish b/functions/_pure_prompt_ssh.fish index d6d36251..3ff11ea2 100644 --- a/functions/_pure_prompt_ssh.fish +++ b/functions/_pure_prompt_ssh.fish @@ -1,5 +1,5 @@ function _pure_prompt_ssh - if [ "$SSH_CONNECTION" != "" ] + if test "$SSH_CONNECTION" != "" echo (_pure_prompt_ssh_user)(_pure_prompt_ssh_separator)(_pure_prompt_ssh_host) end end diff --git a/functions/_pure_prompt_ssh_user.fish b/functions/_pure_prompt_ssh_user.fish index ea02c73e..2577db8f 100644 --- a/functions/_pure_prompt_ssh_user.fish +++ b/functions/_pure_prompt_ssh_user.fish @@ -1,7 +1,7 @@ function _pure_prompt_ssh_user set --local username (whoami) # current user name set --local username_color "$pure_color_ssh_user_normal" # default color - if [ "$username" = "root" ] + if test "$username" = "root" set username_color "$pure_color_ssh_user_root" # different color for root end From 44d4f71ade3ef232d2dd3a2f78b042ae4fb9fa3b Mon Sep 17 00:00:00 2001 From: schrodincat Date: Tue, 1 Jan 2019 19:10:46 +0300 Subject: [PATCH 09/17] =?UTF-8?q?Use=20long=20form=20of=20=E2=80=9Clocal?= =?UTF-8?q?=E2=80=9D=20option=20with=20set?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fish_title.fish | 8 ++++---- tests/installer.test.fish | 6 +++--- tools/installer.fish | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/fish_title.fish b/fish_title.fish index 8bab0701..d3a7d1d0 100644 --- a/fish_title.fish +++ b/fish_title.fish @@ -1,9 +1,9 @@ # Set title to current folder and shell name function fish_title - set -l basename (string replace -r '^.*/' '' -- $PWD) - set -l current_folder (_pure_parse_directory) - set -l command $argv[1] - set -l prompt "$basename: $command $pure_symbol_horizontal_bar $_" + set --local basename (string replace -r '^.*/' '' -- $PWD) + set --local current_folder (_pure_parse_directory) + set --local command $argv[1] + set --local prompt "$basename: $command $pure_symbol_horizontal_bar $_" if test -z "$command" set prompt "$current_folder $pure_symbol_horizontal_bar $_" diff --git a/tests/installer.test.fish b/tests/installer.test.fish index f2411067..51488b80 100644 --- a/tests/installer.test.fish +++ b/tests/installer.test.fish @@ -34,9 +34,9 @@ end test "backup existing theme prompt" ( - set -l fake_prompt $FISH_CONFIG_DIR/functions/fish_prompt.fish + set --local fake_prompt $FISH_CONFIG_DIR/functions/fish_prompt.fish touch "$fake_prompt" - set -l backup_prompt $fake_prompt.ignore + set --local backup_prompt $fake_prompt.ignore rm --force "$backup_prompt" pure::backup_existing_theme >/dev/null @@ -54,7 +54,7 @@ end test "activate prompt" ( - set -l active_prompt $FISH_CONFIG_DIR/functions/fish_prompt.fish + set --local active_prompt $FISH_CONFIG_DIR/functions/fish_prompt.fish rm --force "$active_prompt" mkdir -p $PURE_INSTALL_DIR; \ and touch $PURE_INSTALL_DIR/fish_prompt.fish # stub diff --git a/tools/installer.fish b/tools/installer.fish index 8d7a1680..b105f8d6 100644 --- a/tools/installer.fish +++ b/tools/installer.fish @@ -39,8 +39,8 @@ end function pure::backup_existing_theme printf "\tBackuping existing theme" - set -l old_prompt $FISH_CONFIG_DIR/functions/fish_prompt.fish - set -l backup_prompt $old_prompt.ignore + set --local old_prompt $FISH_CONFIG_DIR/functions/fish_prompt.fish + set --local backup_prompt $old_prompt.ignore if test -f "$old_prompt" mv "$old_prompt" "$backup_prompt" printf "\t\tPrevious config saved to: %s%s%s." "$color_white" "$backup_prompt" "$color_normal" From 6109a6e6b5911b56f0cf2ae66a7533448cb5d93a Mon Sep 17 00:00:00 2001 From: schrodincat Date: Thu, 3 Jan 2019 03:33:18 +0300 Subject: [PATCH 10/17] Fix readme git arrows symbol names and comments --- README.md | 4 ++-- conf.d/pure.fish | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index f7c1534f..cbde5ff9 100644 --- a/README.md +++ b/README.md @@ -69,8 +69,8 @@ You can tweak pretty much everything in `pure` by overriding variables in your ` set pure_symbol_prompt "❯" # Git -set pure_symbol_git_down_arrow "⇣" -set pure_symbol_git_up_arrow "⇡" +set pure_symbol_git_arrow_down "⇣" +set pure_symbol_git_arrow_up "⇡" set pure_symbol_git_dirty "*" # Title diff --git a/conf.d/pure.fish b/conf.d/pure.fish index f5651c2d..a614697a 100644 --- a/conf.d/pure.fish +++ b/conf.d/pure.fish @@ -15,7 +15,7 @@ _pure_set_default pure_symbol_git_dirty "*" # Title _pure_set_default pure_symbol_horizontal_bar "—" -# Colors +# Base colors _pure_set_default pure_color_blue (set_color blue) _pure_set_default pure_color_cyan (set_color cyan) _pure_set_default pure_color_gray (set_color brblack) @@ -25,6 +25,7 @@ _pure_set_default pure_color_red (set_color red) _pure_set_default pure_color_white (set_color white) _pure_set_default pure_color_yellow (set_color yellow) +# Colors used on symbols, attributes and events _pure_set_default pure_color_current_folder $pure_color_blue _pure_set_default pure_color_git_branch $pure_color_gray _pure_set_default pure_color_git_dirty $pure_color_gray From 9752f603f0049a066b93972fe1862f51a4760679 Mon Sep 17 00:00:00 2001 From: schrodincat Date: Thu, 3 Jan 2019 04:05:02 +0300 Subject: [PATCH 11/17] Remove unnecessary files --- functions/_pure_prompt_user.fish | 9 --------- functions/_pure_prompt_user_and_host.fish | 5 ----- tests/_pure_prompt_at.test.fish | 17 ----------------- 3 files changed, 31 deletions(-) delete mode 100644 functions/_pure_prompt_user.fish delete mode 100644 functions/_pure_prompt_user_and_host.fish delete mode 100644 tests/_pure_prompt_at.test.fish diff --git a/functions/_pure_prompt_user.fish b/functions/_pure_prompt_user.fish deleted file mode 100644 index 0048fe5f..00000000 --- a/functions/_pure_prompt_user.fish +++ /dev/null @@ -1,9 +0,0 @@ -function _pure_prompt_user - set --local username (whoami) - set --local username_color "$pure_color_ssh_username" # default color - if [ "$username" = "root" ] - set username_color "$pure_color_ssh_root" # different color for root - end - - echo "$username_color$username" -end diff --git a/functions/_pure_prompt_user_and_host.fish b/functions/_pure_prompt_user_and_host.fish deleted file mode 100644 index df809cca..00000000 --- a/functions/_pure_prompt_user_and_host.fish +++ /dev/null @@ -1,5 +0,0 @@ -function _pure_prompt_user_and_host - if test -n "$SSH_CONNECTION" # we are on a host through SSH - echo (_pure_prompt_user)(_pure_prompt_at)(_pure_prompt_host) - end -end diff --git a/tests/_pure_prompt_at.test.fish b/tests/_pure_prompt_at.test.fish deleted file mode 100644 index e18a416a..00000000 --- a/tests/_pure_prompt_at.test.fish +++ /dev/null @@ -1,17 +0,0 @@ -source $DIRNAME/../functions/_pure_prompt_at.fish - -test "display at symbol" - ( - set pure_color_gray "" - - _pure_prompt_at - ) = '@' -end - -test "display colored at symbol" - ( - set pure_color_gray (set_color grey) - - _pure_prompt_at - ) = (set_color grey)'@' -end \ No newline at end of file From 7b3700c903dc008f9f8f9416878289ec44814467 Mon Sep 17 00:00:00 2001 From: schrodincat Date: Thu, 3 Jan 2019 04:06:29 +0300 Subject: [PATCH 12/17] Fix tests after renaming and adding more options --- tests/_pure_prompt.test.fish | 6 ++-- tests/_pure_prompt_command_duration.test.fish | 4 +-- tests/_pure_prompt_current_folder.test.fish | 2 +- tests/_pure_prompt_first_line.test.fish | 14 +++++---- tests/_pure_prompt_git.test.fish | 20 ++++++++---- tests/_pure_prompt_git_arrows.test.fish | 16 +++++----- tests/_pure_prompt_git_branch.test.fish | 8 ++--- tests/_pure_prompt_git_dirty.test.fish | 12 ++++--- tests/_pure_prompt_ssh.test.fish | 31 +++++++++++++++++++ ...t.fish => _pure_prompt_ssh_host.test.fish} | 10 +++--- tests/_pure_prompt_ssh_separator.test.fish | 17 ++++++++++ tests/_pure_prompt_ssh_user.test.fish | 23 ++++++++++++++ tests/_pure_prompt_symbol.test.fish | 10 +++--- tests/_pure_prompt_user.test.fish | 23 -------------- tests/_pure_prompt_user_and_host.test.fish | 28 ----------------- tests/_pure_prompt_virtualenv.test.fish | 2 +- 16 files changed, 129 insertions(+), 97 deletions(-) create mode 100644 tests/_pure_prompt_ssh.test.fish rename tests/{_pure_prompt_host.test.fish => _pure_prompt_ssh_host.test.fish} (65%) create mode 100644 tests/_pure_prompt_ssh_separator.test.fish create mode 100644 tests/_pure_prompt_ssh_user.test.fish delete mode 100644 tests/_pure_prompt_user.test.fish delete mode 100644 tests/_pure_prompt_user_and_host.test.fish diff --git a/tests/_pure_prompt.test.fish b/tests/_pure_prompt.test.fish index a02413fd..19bc793f 100644 --- a/tests/_pure_prompt.test.fish +++ b/tests/_pure_prompt.test.fish @@ -9,17 +9,17 @@ set --local succeed 0 test "print prompt after succeeding command" ( - set pure_color_green (set_color green) + set pure_color_symbol_success (set_color magenta) set pure_symbol_prompt '>' # using default ❯ break following tests set --local last_command $succeed _pure_prompt $last_command - ) = (set_color green)'>' + ) = (set_color magenta)'>' end test "print prompt after failing command" ( - set pure_color_red (set_color red) + set pure_color_symbol_error (set_color red) set pure_symbol_prompt '>' # using default ❯ break following tests set --local last_command $failed diff --git a/tests/_pure_prompt_command_duration.test.fish b/tests/_pure_prompt_command_duration.test.fish index d03ad1d3..a1a7ccd6 100644 --- a/tests/_pure_prompt_command_duration.test.fish +++ b/tests/_pure_prompt_command_duration.test.fish @@ -6,7 +6,7 @@ set --local empty '' test "hide command duration when it's zero" ( set CMD_DURATION $empty - set pure_color_yellow $empty + set pure_color_command_duration $empty _pure_prompt_command_duration ) = $empty @@ -16,7 +16,7 @@ test "displays command duration when non-zero" ( set CMD_DURATION 6000 # in milliseconds set pure_command_max_exec_time 5 # in seconds - set pure_color_yellow $empty + set pure_color_command_duration $empty _pure_prompt_command_duration ) = '6s' diff --git a/tests/_pure_prompt_current_folder.test.fish b/tests/_pure_prompt_current_folder.test.fish index ab1e6fc2..bde8ac0c 100644 --- a/tests/_pure_prompt_current_folder.test.fish +++ b/tests/_pure_prompt_current_folder.test.fish @@ -11,7 +11,7 @@ end test "returns _pure_prompt_current_folder" ( - set pure_color_blue $empty + set pure_color_current_folder $empty set COLUMNS 20 set current_prompt_width 10 diff --git a/tests/_pure_prompt_first_line.test.fish b/tests/_pure_prompt_first_line.test.fish index 8efb03e5..4a83f8d5 100644 --- a/tests/_pure_prompt_first_line.test.fish +++ b/tests/_pure_prompt_first_line.test.fish @@ -3,9 +3,11 @@ source $DIRNAME/../functions/_pure_prompt_first_line.fish set --local empty '' function setup - set pure_color_blue $empty - set pure_color_gray $empty - set pure_color_yellow $empty + set pure_color_current_folder $pure_color_blue + set pure_color_git_branch $pure_color_gray + set pure_color_git_dirty $pure_color_gray + set pure_color_git_arrows $pure_color_cyan + set pure_color_command_duration $pure_color_yellow mkdir --parents /tmp/test cd /tmp/test @@ -13,7 +15,7 @@ function setup set SSH_CONNECTION 127.0.0.1 56422 127.0.0.1 22 function _pure_print_prompt; string join ' ' $argv; end - function _pure_prompt_user_and_host; echo 'user@hostname'; end + function _pure_prompt_ssh; echo 'user@hostname'; end function _pure_prompt_git; echo 'master'; end function _pure_prompt_command_duration; echo '1s'; end function _pure_string_width; echo 15; end @@ -22,7 +24,7 @@ end function teardown functions --erase _pure_print_prompt - functions --erase _pure_prompt_user_and_host + functions --erase _pure_prompt_ssh functions --erase _pure_prompt_git functions --erase _pure_prompt_command_duration functions --erase _pure_string_width @@ -41,7 +43,7 @@ test "fails when git is missing" _pure_prompt_first_line set --local exit_code $status - + functions --erase type # remove mock functions --copy builtin_type type # restore built-in behavior for following test cases echo $exit_code diff --git a/tests/_pure_prompt_git.test.fish b/tests/_pure_prompt_git.test.fish index 21b26b8d..c2eb0f0a 100644 --- a/tests/_pure_prompt_git.test.fish +++ b/tests/_pure_prompt_git.test.fish @@ -25,8 +25,11 @@ test "activates on git repository" git init --quiet function _pure_prompt_git_dirty; echo $empty; end function _pure_prompt_git_arrows; echo $empty; end - set pure_color_gray $empty - + + set pure_color_git_branch $empty + set pure_color_git_dirty $empty + set pure_color_git_arrows $empty + _pure_prompt_git ) = 'master' end @@ -38,8 +41,11 @@ test "activates on dirty repository" git init --quiet function _pure_prompt_git_dirty; echo '*'; end function _pure_prompt_git_arrows; echo $empty; end - set pure_color_gray $empty - + + set pure_color_git_branch $empty + set pure_color_git_dirty $empty + set pure_color_git_arrows $empty + _pure_prompt_git ) = 'master*' end @@ -52,8 +58,10 @@ test "activates on repository with upstream changes" function _pure_prompt_git_dirty; echo $empty; end function _pure_prompt_git_arrows; echo 'v'; end - set pure_color_gray $empty - + set pure_color_git_branch $empty + set pure_color_git_dirty $empty + set pure_color_git_arrows $empty + _pure_prompt_git ) = 'master v' end diff --git a/tests/_pure_prompt_git_arrows.test.fish b/tests/_pure_prompt_git_arrows.test.fish index 8951cb5a..e7475902 100644 --- a/tests/_pure_prompt_git_arrows.test.fish +++ b/tests/_pure_prompt_git_arrows.test.fish @@ -13,7 +13,7 @@ function setup git init --quiet git config --local user.email "you@example.com" git config --local user.name "Your Name" - git remote add origin ../pure.git/ + git remote add origin ../pure.git/ touch file.txt git add file.txt git commit --quiet --message='init' @@ -22,7 +22,7 @@ end function teardown rm --recursive --force \ $fake_git_repo \ - $fake_git_bare + $fake_git_bare end test "print nothing when no upstream repo" @@ -40,8 +40,8 @@ test "show arrow UP when branch is AHEAD of upstream (need git push)" git add missing-on-upstream.txt git commit --quiet --message='missing on upstream' - set pure_symbol_git_up_arrow '^' - set pure_color_cyan (set_color cyan) + set pure_symbol_git_arrow_up '^' + set pure_color_git_arrows (set_color cyan) _pure_prompt_git_arrows @@ -54,12 +54,12 @@ test "show arrow DOWN when branch is BEHIND upstream (need git pull)" git add another-file.txt git commit --quiet --message='another' git push --set-upstream --quiet origin master > /dev/null - + git reset --hard --quiet HEAD~1 - set pure_symbol_git_down_arrow 'v' - set pure_color_cyan (set_color cyan) + set pure_symbol_git_arrow_down 'v' + set pure_color_git_arrows (set_color cyan) _pure_prompt_git_arrows ) = (set_color cyan)'v' -end \ No newline at end of file +end diff --git a/tests/_pure_prompt_git_branch.test.fish b/tests/_pure_prompt_git_branch.test.fish index 5a4702aa..f6bd8c2a 100644 --- a/tests/_pure_prompt_git_branch.test.fish +++ b/tests/_pure_prompt_git_branch.test.fish @@ -15,12 +15,12 @@ end test "show branch name in gray" ( - set pure_color_gray (set_color 93A1A1) - + set pure_color_git_branch (set_color brblack) + _pure_prompt_git_branch - ) = (set_color 93A1A1)'master' + ) = (set_color brblack)'master' end function teardown rm --recursive --force /tmp/pure -end \ No newline at end of file +end diff --git a/tests/_pure_prompt_git_dirty.test.fish b/tests/_pure_prompt_git_dirty.test.fish index 5f233ebd..6707a8ff 100644 --- a/tests/_pure_prompt_git_dirty.test.fish +++ b/tests/_pure_prompt_git_dirty.test.fish @@ -17,9 +17,10 @@ test "untracked files make git repo as dirty" ( touch file.txt set pure_symbol_git_dirty '*' - + set pure_color_git_dirty (set_color brblack) + _pure_prompt_git_dirty - ) = '*' + ) = (set_color brblack)'*' end test "staged files mark git repo as dirty" @@ -27,10 +28,11 @@ test "staged files mark git repo as dirty" touch file.txt git add file.txt set pure_symbol_git_dirty '*' - + set pure_color_git_dirty (set_color brblack) + _pure_prompt_git_dirty - ) = '*' + ) = (set_color brblack)'*' end function teardown rm --recursive --force /tmp/pure -end \ No newline at end of file +end diff --git a/tests/_pure_prompt_ssh.test.fish b/tests/_pure_prompt_ssh.test.fish new file mode 100644 index 00000000..45c696a6 --- /dev/null +++ b/tests/_pure_prompt_ssh.test.fish @@ -0,0 +1,31 @@ +source $DIRNAME/../functions/_pure_prompt_ssh.fish +source $DIRNAME/../functions/_pure_prompt_ssh_user.fish +source $DIRNAME/../functions/_pure_prompt_ssh_separator.fish +source $DIRNAME/../functions/_pure_prompt_ssh_host.fish + +set --local empty '' + +test "hide 'user@hostname' when working locally" + ( + set --erase SSH_CONNECTION + + _pure_prompt_ssh + + ) $status -eq 0 +end + +test "displays 'user@hostname' when on SSH connection" + ( + set pure_color_ssh_user_normal $empty + set pure_color_ssh_separator $empty + set pure_color_ssh_host $empty + set SSH_CONNECTION 127.0.0.1 56422 127.0.0.1 22 + function whoami # mock + echo 'user' + end + set hostname 'hostname' + + _pure_prompt_ssh + + ) = 'user@hostname' +end diff --git a/tests/_pure_prompt_host.test.fish b/tests/_pure_prompt_ssh_host.test.fish similarity index 65% rename from tests/_pure_prompt_host.test.fish rename to tests/_pure_prompt_ssh_host.test.fish index e92333c3..e1fd4859 100644 --- a/tests/_pure_prompt_host.test.fish +++ b/tests/_pure_prompt_ssh_host.test.fish @@ -1,11 +1,11 @@ -source $DIRNAME/../functions/_pure_prompt_host.fish +source $DIRNAME/../functions/_pure_prompt_ssh_host.fish test "colorize hostname (using reserved variable)" ( - set pure_host_color (set_color grey) + set pure_color_ssh_host (set_color grey) set hostname 'hostname-variable' - _pure_prompt_host + _pure_prompt_ssh_host ) = (set_color grey)'hostname-variable' end @@ -17,9 +17,9 @@ test "colorize hostname (using hostname executable)" echo 'hostname-executable' end - set pure_host_color (set_color grey) + set pure_color_ssh_host (set_color grey) - _pure_prompt_host + _pure_prompt_ssh_host functions --erase hostname ) = (set_color grey)'hostname-executable' diff --git a/tests/_pure_prompt_ssh_separator.test.fish b/tests/_pure_prompt_ssh_separator.test.fish new file mode 100644 index 00000000..40821a03 --- /dev/null +++ b/tests/_pure_prompt_ssh_separator.test.fish @@ -0,0 +1,17 @@ +source $DIRNAME/../functions/_pure_prompt_ssh_separator.fish + +test "display at symbol" + ( + set pure_color_ssh_separator "" + + _pure_prompt_ssh_separator + ) = '@' +end + +test "display colored at symbol" + ( + set pure_color_ssh_separator (set_color grey) + + _pure_prompt_ssh_separator + ) = (set_color grey)'@' +end diff --git a/tests/_pure_prompt_ssh_user.test.fish b/tests/_pure_prompt_ssh_user.test.fish new file mode 100644 index 00000000..3ac0f457 --- /dev/null +++ b/tests/_pure_prompt_ssh_user.test.fish @@ -0,0 +1,23 @@ +source $DIRNAME/../functions/_pure_prompt_ssh_user.fish + +test "colorize standard user" + ( + set pure_color_ssh_user_normal (set_color green) + + _pure_prompt_ssh_user + + ) = (set_color green)(whoami) +end + +test "colorize root user" + ( + function whoami # mock + echo 'root' + end + + set pure_color_ssh_user_root (set_color red) + + _pure_prompt_ssh_user + + ) = (set_color red)'root' +end diff --git a/tests/_pure_prompt_symbol.test.fish b/tests/_pure_prompt_symbol.test.fish index 1ded43f7..63fea299 100644 --- a/tests/_pure_prompt_symbol.test.fish +++ b/tests/_pure_prompt_symbol.test.fish @@ -7,7 +7,7 @@ set --local success 0 test "throws error message when argument is missing" ( set pure_symbol_prompt '>' # using default ❯ break following tests - set pure_color_green (set_color green) + set pure_color_symbol_success (set_color green) set output (_pure_prompt_symbol 2>&1) echo $output[1] @@ -18,7 +18,7 @@ test "colorizes prompt in green when last command succeed" ( set --local last_command $success set pure_symbol_prompt '>' # using default ❯ break following tests - set pure_color_green (set_color green) + set pure_color_symbol_success (set_color green) _pure_prompt_symbol $last_command ) = (set_color green)'>' @@ -28,7 +28,7 @@ test "colorizes prompt in red when last command failed" ( set --local last_command $fail set pure_symbol_prompt '>' # using default ❯ break following tests - set pure_color_red (set_color red) + set pure_color_symbol_error (set_color red) _pure_prompt_symbol $last_command ) = (set_color red)'>' @@ -38,8 +38,8 @@ test "add a magenta prompt when pure_separate_prompt_on_error is enable and last ( set --local last_command $fail set pure_symbol_prompt '>' # using default ❯ break following tests - set pure_color_red (set_color red) - set pure_color_magenta (set_color magenta) + set pure_color_symbol_error (set_color red) + set pure_color_symbol_success (set_color magenta) set pure_separate_prompt_on_error true diff --git a/tests/_pure_prompt_user.test.fish b/tests/_pure_prompt_user.test.fish deleted file mode 100644 index 7f55a444..00000000 --- a/tests/_pure_prompt_user.test.fish +++ /dev/null @@ -1,23 +0,0 @@ -source $DIRNAME/../functions/_pure_prompt_user.fish - -test "colorize standard user" - ( - set pure_username_color (set_color green) - - _pure_prompt_user - - ) = (set_color green)(whoami) -end - -test "colorize root user" - ( - function whoami # mock - echo 'root' - end - - set pure_root_color (set_color red) - - _pure_prompt_user - - ) = (set_color red)'root' -end diff --git a/tests/_pure_prompt_user_and_host.test.fish b/tests/_pure_prompt_user_and_host.test.fish deleted file mode 100644 index 721adddb..00000000 --- a/tests/_pure_prompt_user_and_host.test.fish +++ /dev/null @@ -1,28 +0,0 @@ -source $DIRNAME/../functions/_pure_prompt_user_and_host.fish - -set --local empty '' - -test "hide 'user@hostname' when working locally" - ( - set --erase SSH_CONNECTION - - _pure_prompt_user_and_host - - ) $status -eq 0 -end - -test "displays 'user@hostname' when on SSH connection" - ( - set pure_username_color $empty - set pure_color_gray $empty - set pure_host_color $empty - set SSH_CONNECTION 127.0.0.1 56422 127.0.0.1 22 - function whoami # mock - echo 'user' - end - set hostname 'hostname' - - _pure_prompt_user_and_host - - ) = 'user@hostname' -end diff --git a/tests/_pure_prompt_virtualenv.test.fish b/tests/_pure_prompt_virtualenv.test.fish index 4814f67f..0f7b39bb 100644 --- a/tests/_pure_prompt_virtualenv.test.fish +++ b/tests/_pure_prompt_virtualenv.test.fish @@ -12,7 +12,7 @@ end test "displays virtualenv directory prompt" ( set VIRTUAL_ENV /home/test/fake/project/ - set pure_color_gray (set_color grey) + set pure_color_virtualenv (set_color grey) _pure_prompt_virtualenv From 624a99a2bf050a5af13b4cb24f5b3f4ff8dcd66f Mon Sep 17 00:00:00 2001 From: Edouard Lopez Date: Tue, 8 Jan 2019 11:40:14 +0100 Subject: [PATCH 13/17] sort variables by name --- README.md | 12 ++++++------ conf.d/pure.fish | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index cbde5ff9..b116541d 100644 --- a/README.md +++ b/README.md @@ -87,17 +87,17 @@ set pure_color_white (set_color white) set pure_color_yellow (set_color yellow) # Colors used on symbols, attributes and events +set pure_color_command_duration (set_color --background blue) +set pure_color_error (set_color magenta) +set pure_color_git_arrows $pure_color_cyan set pure_color_git_branch $pure_color_gray set pure_color_git_dirty $pure_color_gray -set pure_color_git_arrows $pure_color_cyan -set pure_color_command_duration (set_color --background blue) +set pure_color_ssh_host $pure_color_gray +set pure_color_ssh_separator $pure_color_gray set pure_color_ssh_user_normal $pure_color_gray set pure_color_ssh_user_root $pure_color_white -set pure_color_ssh_separator $pure_color_gray -set pure_color_ssh_host $pure_color_gray -set pure_color_virtualenv $pure_color_gray set pure_color_success (set_color green) -set pure_color_error (set_color magenta) +set pure_color_virtualenv $pure_color_gray # Print current working directory at the beginning of prompt # true (default): current directory, git, user@hostname (ssh-only), command duration diff --git a/conf.d/pure.fish b/conf.d/pure.fish index a614697a..c12cb566 100644 --- a/conf.d/pure.fish +++ b/conf.d/pure.fish @@ -26,18 +26,18 @@ _pure_set_default pure_color_white (set_color white) _pure_set_default pure_color_yellow (set_color yellow) # Colors used on symbols, attributes and events +_pure_set_default pure_color_command_duration $pure_color_yellow _pure_set_default pure_color_current_folder $pure_color_blue +_pure_set_default pure_color_git_arrows $pure_color_cyan _pure_set_default pure_color_git_branch $pure_color_gray _pure_set_default pure_color_git_dirty $pure_color_gray -_pure_set_default pure_color_git_arrows $pure_color_cyan -_pure_set_default pure_color_command_duration $pure_color_yellow +_pure_set_default pure_color_ssh_host $pure_color_gray +_pure_set_default pure_color_ssh_separator $pure_color_gray _pure_set_default pure_color_ssh_user_normal $pure_color_gray _pure_set_default pure_color_ssh_user_root $pure_color_white -_pure_set_default pure_color_ssh_separator $pure_color_gray -_pure_set_default pure_color_ssh_host $pure_color_gray -_pure_set_default pure_color_virtualenv $pure_color_gray -_pure_set_default pure_color_symbol_success $pure_color_magenta _pure_set_default pure_color_symbol_error $pure_color_red +_pure_set_default pure_color_symbol_success $pure_color_magenta +_pure_set_default pure_color_virtualenv $pure_color_gray # Print current working directory at the beginning of prompt # true (default): current directory, git, user@hostname (ssh-only), command duration From f3c145c862de20cb763f3da50f65d21d8d9fc529 Mon Sep 17 00:00:00 2001 From: Edouard Lopez Date: Tue, 8 Jan 2019 12:17:38 +0100 Subject: [PATCH 14/17] test fish_title.fish --- tests/fish_title.test.fish | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 tests/fish_title.test.fish diff --git a/tests/fish_title.test.fish b/tests/fish_title.test.fish new file mode 100644 index 00000000..982e7aeb --- /dev/null +++ b/tests/fish_title.test.fish @@ -0,0 +1,30 @@ +source $DIRNAME/../fish_title.fish + +function setup + mkdir --parents /tmp/current/directory/ + cd /tmp/current/directory/ + + function _pure_parse_directory; echo /tmp/current/directory; end +end + +test "fish_title: contains current directory and previous command" + ( + fish_title 'last-command' + ) = "directory: last-command — " +end + +test "fish_title: contains current directory with *empty* a previous command" + ( + fish_title '' + ) = "/tmp/current/directory — " +end + +test "fish_title: contains current path without a previous command" + ( + fish_title + ) = "/tmp/current/directory — " +end + +function teardown + functions --erase _pure_parse_directory + end From b31124fe1654f622639e75a49a25ace313485477 Mon Sep 17 00:00:00 2001 From: Edouard Lopez Date: Tue, 8 Jan 2019 13:41:10 +0100 Subject: [PATCH 15/17] add test to support fish 2.x and 3.x (see `status current command`) https://github.com/fish-shell/fish-shell/issues/5494 --- tests/fish_title.test.fish | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/fish_title.test.fish b/tests/fish_title.test.fish index 982e7aeb..b91e2570 100644 --- a/tests/fish_title.test.fish +++ b/tests/fish_title.test.fish @@ -25,6 +25,20 @@ test "fish_title: contains current path without a previous command" ) = "/tmp/current/directory — " end +test "fish_title: support fish 2.x" # how to test $_ ? + ( + fish_title + ) = "/tmp/current/directory — " +end + +test "fish_title: support fish 3.x" + ( + function status; echo 'fishtape'; end # mock: status current-command + + fish_title + ) = "/tmp/current/directory — fishtape" +end + function teardown functions --erase _pure_parse_directory end From 7a7e62cb581c74857018db04f3749cea0fa46da1 Mon Sep 17 00:00:00 2001 From: Edouard Lopez Date: Tue, 8 Jan 2019 13:41:23 +0100 Subject: [PATCH 16/17] refactor fish_title.fish --- fish_title.fish | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/fish_title.fish b/fish_title.fish index d3a7d1d0..b6313189 100644 --- a/fish_title.fish +++ b/fish_title.fish @@ -1,12 +1,15 @@ -# Set title to current folder and shell name -function fish_title +function fish_title \ + --description "Set title to current folder and shell name" \ + --argument-names last_command + set --local basename (string replace -r '^.*/' '' -- $PWD) set --local current_folder (_pure_parse_directory) - set --local command $argv[1] - set --local prompt "$basename: $command $pure_symbol_horizontal_bar $_" + set --local current_command (status current-command 2>/dev/null; or echo $_) + + set --local prompt "$basename: $last_command $pure_symbol_horizontal_bar $current_command" - if test -z "$command" - set prompt "$current_folder $pure_symbol_horizontal_bar $_" + if test -z "$last_command" + set prompt "$current_folder $pure_symbol_horizontal_bar $current_command" end echo $prompt From 87f2af89ed5fc56bab135e8d17c5ee8414aa6af6 Mon Sep 17 00:00:00 2001 From: Edouard Lopez Date: Tue, 8 Jan 2019 14:15:41 +0100 Subject: [PATCH 17/17] fix CI by declaring $pure_symbol_horizontal_bar --- tests/fish_title.test.fish | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tests/fish_title.test.fish b/tests/fish_title.test.fish index b91e2570..0a77e760 100644 --- a/tests/fish_title.test.fish +++ b/tests/fish_title.test.fish @@ -9,6 +9,8 @@ end test "fish_title: contains current directory and previous command" ( + set pure_symbol_horizontal_bar '—' + fish_title 'last-command' ) = "directory: last-command — " end @@ -21,20 +23,25 @@ end test "fish_title: contains current path without a previous command" ( + set pure_symbol_horizontal_bar '—' + fish_title ) = "/tmp/current/directory — " end test "fish_title: support fish 2.x" # how to test $_ ? ( + set pure_symbol_horizontal_bar '—' + fish_title ) = "/tmp/current/directory — " end test "fish_title: support fish 3.x" ( - function status; echo 'fishtape'; end # mock: status current-command - + function status; echo 'fishtape'; end # mock: status current-command + set pure_symbol_horizontal_bar '—' + fish_title ) = "/tmp/current/directory — fishtape" end