Update tide to v6
This commit is contained in:
@@ -15,7 +15,16 @@ for file in (status dirname)/tide/configure/{choices, functions}/**.fish
|
||||
end
|
||||
|
||||
function _tide_sub_configure
|
||||
if test $COLUMNS -lt 55 -o $LINES -lt 21
|
||||
set -l choices (path basename (status dirname)/tide/configure/choices/**.fish | path change-extension '')
|
||||
argparse auto $choices= -- $argv
|
||||
|
||||
for var in (set -l --names | string match -e _flag)
|
||||
set -x $var $$var
|
||||
end
|
||||
|
||||
if set -q _flag_auto
|
||||
set -fx _flag_finish 'Overwrite your current tide config'
|
||||
else if test $COLUMNS -lt 55 -o $LINES -lt 21
|
||||
echo 'Terminal size too small; must be at least 55 x 21'
|
||||
return 1
|
||||
end
|
||||
@@ -37,51 +46,86 @@ function _next_choice -a nextChoice
|
||||
end
|
||||
|
||||
function _tide_title -a text
|
||||
set -q _flag_auto && return
|
||||
|
||||
command -q clear && clear
|
||||
set_color -o
|
||||
string pad --width (math --scale=0 "$fake_columns/2" + (string length $text)/2) $text
|
||||
set_color normal
|
||||
|
||||
set -g _tide_configure_first_option_after_title
|
||||
end
|
||||
|
||||
function _tide_option -a symbol text
|
||||
set -ga _tide_option_list $symbol
|
||||
set -ga _tide_symbol_list $symbol
|
||||
set -ga _tide_option_list $text
|
||||
|
||||
set_color -o
|
||||
echo "($symbol) $text"
|
||||
set_color normal
|
||||
if not set -q _flag_auto
|
||||
set -g _tide_configure_first_prompt_after_option
|
||||
|
||||
set_color -o
|
||||
set -e _tide_configure_first_option_after_title || echo
|
||||
echo "($symbol) $text"
|
||||
set_color normal
|
||||
end
|
||||
end
|
||||
|
||||
function _tide_menu
|
||||
set -l list_with_slashes (string join '/' $_tide_option_list)
|
||||
function _tide_menu -a func
|
||||
if set -q _flag_auto
|
||||
set -l flag_var_name _flag_$func
|
||||
set -g _tide_selected_option $$flag_var_name
|
||||
|
||||
echo '(r) Restart from the beginning'
|
||||
if test -z "$_tide_selected_option"
|
||||
echo "Missing input for choice '$func'"
|
||||
_tide_exit_configure
|
||||
else if not contains $_tide_selected_option $_tide_option_list
|
||||
echo "Invalid input '$_tide_selected_option' for choice '$func'"
|
||||
_tide_exit_configure
|
||||
else
|
||||
set -e _tide_symbol_list
|
||||
set -e _tide_option_list
|
||||
end
|
||||
return
|
||||
end
|
||||
|
||||
argparse no-restart -- $argv # Add no-restart option for first menu
|
||||
|
||||
echo
|
||||
if not set -q _flag_no_restart
|
||||
set -f r r
|
||||
echo '(r) Restart from the beginning'
|
||||
end
|
||||
echo '(q) Quit and do nothing'\n
|
||||
|
||||
while true
|
||||
set_color -o
|
||||
read --nchars 1 --prompt-str "Choice [$list_with_slashes/r/q] " input
|
||||
set_color normal
|
||||
|
||||
while read --nchars 1 --prompt-str \
|
||||
"$(set_color -o)Choice [$(string join '/' $_tide_symbol_list $r q)] $(set_color normal)" input
|
||||
switch $input
|
||||
case r
|
||||
set -q _flag_no_restart && continue
|
||||
set -e _tide_symbol_list
|
||||
set -e _tide_option_list
|
||||
_next_choice all/style
|
||||
break
|
||||
case q
|
||||
set -e _tide_selected_option # Skip through all the _next_choices
|
||||
_tide_exit_configure
|
||||
set -e _tide_symbol_list
|
||||
set -e _tide_option_list
|
||||
command -q clear && clear
|
||||
break
|
||||
case $_tide_option_list
|
||||
case $_tide_symbol_list
|
||||
set -g _tide_selected_option $_tide_option_list[(contains -i $input $_tide_symbol_list)]
|
||||
test "$func" != finish &&
|
||||
set -a _tide_configure_current_options --$func=(string escape $_tide_selected_option)
|
||||
set -e _tide_symbol_list
|
||||
set -e _tide_option_list
|
||||
set -g _tide_selected_option $input
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function _tide_display_prompt -a var_name var_value
|
||||
test -n "$var_name" && set -g $var_name $var_value
|
||||
function _tide_display_prompt
|
||||
set -q _flag_auto && return
|
||||
|
||||
_fake_tide_cache_variables
|
||||
set -l prompt (_fake_tide_prompt)
|
||||
|
||||
@@ -89,7 +133,24 @@ function _tide_display_prompt -a var_name var_value
|
||||
set -l right_prompt_string (string pad --width (math $fake_columns-$bottom_left_prompt_string_length) $prompt[1])
|
||||
set -l prompt[-1] "$prompt[-1]$right_prompt_string"
|
||||
|
||||
string unescape $prompt[2..]
|
||||
if set -q _configure_transient
|
||||
if contains newline $fake_tide_left_prompt_items
|
||||
string unescape $prompt[3..]
|
||||
else
|
||||
_fake_tide_item_character
|
||||
echo
|
||||
end
|
||||
else
|
||||
if not set -q _tide_configure_first_prompt_after_option
|
||||
test "$fake_tide_prompt_add_newline_before" = true && echo
|
||||
end
|
||||
string unescape $prompt[2..]
|
||||
end
|
||||
|
||||
set -e _tide_configure_first_prompt_after_option
|
||||
set_color normal
|
||||
echo
|
||||
end
|
||||
|
||||
function _tide_exit_configure
|
||||
set -e _tide_selected_option # Skip through all switch and _next_choice
|
||||
end
|
||||
|
Reference in New Issue
Block a user