Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revise the vi mode indicator to ❮ for non-insert modes #140

Merged
merged 11 commits into from
Feb 19, 2019
8 changes: 7 additions & 1 deletion conf.d/pure.fish
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ _pure_set_default pure_color_dark (set_color black)

# Prompt
_pure_set_default pure_symbol_prompt "❯"
_pure_set_default pure_symbol_reverse "❮"
edouard-lopez marked this conversation as resolved.
Show resolved Hide resolved
_pure_set_default pure_color_prompt_on_error $pure_color_danger
_pure_set_default pure_color_prompt_on_success $pure_color_success

Expand Down Expand Up @@ -57,8 +58,13 @@ _pure_set_default pure_color_command_duration $pure_color_warning
_pure_set_default pure_right_prompt ""
_pure_set_default pure_color_right_prompt $pure_color_normal

# vi mode indicator
# true (default): indicate a non-insert mode by reversing the prompt symbol (❮)
# false: indicate vi mode with [I], [N], [V]
_pure_set_default pure_reverse_prompt_symbol_in_vimode true

# Title
_pure_set_default pure_symbol_title_bar_separator "—"

# Whether or not is a fresh session
set --global _pure_fresh_session true
set --global _pure_fresh_session true
14 changes: 14 additions & 0 deletions functions/_pure_get_prompt_symbol.fish
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
function _pure_get_prompt_symbol \
--description 'Print prompt symbol' \
--argument-names exit_code

set --local prompt_symbol $pure_symbol_prompt # default pure symbol (`❯`)
set --local is_vi_mode (string match fish_{vi,hybrid}_key_bindings $fish_key_bindings)
if test is_vi_mode \
-a "$pure_reverse_prompt_symbol_in_vimode" = true \
-a "$fish_bind_mode" != "insert"
set prompt_symbol $pure_symbol_reverse # default reverse symbol `❮`
end

echo "$prompt_symbol"
end
9 changes: 4 additions & 5 deletions functions/_pure_prompt_symbol.fish
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,16 @@ function _pure_prompt_symbol \
--description 'Print prompt symbol' \
--argument-names exit_code

set --local pure_symbol $pure_symbol_prompt
set --local prompt_symbol (_pure_get_prompt_symbol)
set --local command_succeed 0

set --local color_symbol $pure_color_prompt_on_success # default pure symbol color
if test $exit_code -ne 0
if test $exit_code -ne $command_succeed
set color_symbol $pure_color_prompt_on_error # different pure symbol color when previous command failed

if test "$pure_separate_prompt_on_error" = true
set color_symbol "$pure_color_prompt_on_error$pure_symbol_prompt$pure_color_prompt_on_success"
set color_symbol "$pure_color_prompt_on_error$prompt_symbol$pure_color_prompt_on_success"
end
end

echo "$color_symbol$pure_symbol"
echo "$color_symbol$prompt_symbol"
end
4 changes: 3 additions & 1 deletion functions/_pure_prompt_vimode.fish
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
function _pure_prompt_vimode
echo (fish_default_mode_prompt)
if test ! $pure_reverse_prompt_symbol_in_vimode
echo (fish_default_mode_prompt)
end
end
12 changes: 12 additions & 0 deletions tests/_pure.test.fish
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,18 @@ set --local empty ''
echo $pure_symbol_prompt
) = "❯"

@test "configure: pure_symbol_reverse" (
set --erase pure_symbol_reverse
source $current_dirname/../conf.d/pure.fish
echo $pure_symbol_reverse
) = "❮"

@test "configure: pure_reverse_prompt_symbol_in_vimode" (
set --erase pure_reverse_prompt_symbol_in_vimode
source $current_dirname/../conf.d/pure.fish
echo $pure_reverse_prompt_symbol_in_vimode
) = true

@test "configure: pure_symbol_git_unpulled_commits" (
set --erase pure_symbol_git_unpulled_commits
source $current_dirname/../conf.d/pure.fish
Expand Down
14 changes: 14 additions & 0 deletions tests/_pure_get_prompt_symbol.test.fish
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
source $current_dirname/../functions/_pure_get_prompt_symbol.fish

@test "_pure_get_prompt_symbol: get default symbol ❯" (
set pure_symbol_prompt '❯'

_pure_get_prompt_symbol
) = '❯'

@test "_pure_get_prompt_symbol: get vi-mode symbol ❮" (
set pure_reverse_prompt_symbol_in_vimode true
set pure_symbol_reverse '❮'

_pure_get_prompt_symbol
) = '❮'
1 change: 1 addition & 0 deletions tests/_pure_prompt.test.fish
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ source $current_dirname/../functions/_pure_prompt.fish
source $current_dirname/../functions/_pure_prompt_virtualenv.fish
source $current_dirname/../functions/_pure_prompt_vimode.fish
source $current_dirname/../functions/_pure_prompt_symbol.fish
source $current_dirname/../functions/_pure_get_prompt_symbol.fish
source $current_dirname/../functions/_pure_print_prompt.fish
source $current_dirname/../functions/_pure_string_width.fish

Expand Down
1 change: 1 addition & 0 deletions tests/_pure_prompt_symbol.test.fish
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
source $current_dirname/../functions/_pure_get_prompt_symbol.fish
source $current_dirname/../functions/_pure_prompt_symbol.fish

set --local empty ''
Expand Down