tide/functions/_tide_sub_configure.fish

93 lines
2.4 KiB
Fish
Raw Normal View History

2021-05-19 01:00:49 +03:00
set -g _tide_color_dark_blue 0087AF
set -g _tide_color_dark_green 5FAF00
set -g _tide_color_gold D7AF00
set -g _tide_color_green 5FD700
set -g _tide_color_light_blue 00AFFF
# Create an empty fake function for each item
for func in _fake(functions --all | string match --entire _tide_item)
function $func
end
end
for file in (status dirname)/tide/configure/{choices, functions}/**.fish
source $file
2021-05-19 01:00:49 +03:00
end
function _tide_sub_configure
2020-12-28 08:12:30 +03:00
if test $COLUMNS -lt 55 -o $LINES -lt 21
2020-05-20 00:10:19 +03:00
printf '%s\n' 'Terminal size too small; must be at least 55 x 21'
return 1
end
2020-05-19 02:17:50 +03:00
set -g fake_columns $COLUMNS
test $fake_columns -gt 90 && set fake_columns 90
2020-05-19 02:17:50 +03:00
set -g fake_lines $LINES
2020-04-28 01:37:08 +03:00
2021-01-23 04:28:48 +03:00
set -g _tide_selected_option
2021-03-02 20:46:40 +03:00
_next_choice all/style
end
2020-05-19 02:17:50 +03:00
function _next_choice -a nextChoice
set -q _tide_selected_option || return 0
2020-06-18 20:36:59 +03:00
set -l cmd (string split '/' $nextChoice)[2]
$cmd
end
function _tide_title -a text
clear
2020-04-21 21:52:24 +03:00
set_color -o
2021-03-14 06:20:33 +03:00
string pad --width (math --scale=0 "$fake_columns/2" + (string length $text)/2) $text
2020-04-21 21:52:24 +03:00
set_color normal
end
function _tide_option -a symbol text
set -ga _tide_option_list $symbol
2020-07-15 05:10:59 +03:00
2020-04-21 21:52:24 +03:00
set_color -o
2020-05-20 00:10:19 +03:00
printf '%s\n' "($symbol) $text"
2020-04-21 21:52:24 +03:00
set_color normal
end
2020-12-28 08:12:30 +03:00
function _tide_menu
2021-05-12 23:13:51 +03:00
set -l list_with_slashes (string join '/' $_tide_option_list)
2020-12-28 08:12:30 +03:00
printf '%s\n' \
2021-07-18 00:34:36 +03:00
'(r) Restart from the beginning' \
'(q) Quit and do nothing'\n
2020-12-28 08:12:30 +03:00
while true
set_color -o
read --nchars 1 --prompt-str "Choice [$list_with_slashes/r/q] " input
2020-12-28 08:12:30 +03:00
set_color normal
switch $input
case r
set -e _tide_option_list
2021-03-02 20:46:40 +03:00
_next_choice all/style
2020-12-28 08:12:30 +03:00
break
case q
2021-01-23 04:28:48 +03:00
set -e _tide_selected_option # Skip through all the _next_choices
2020-12-28 08:46:22 +03:00
set -e _tide_option_list
2020-12-28 08:12:30 +03:00
clear
break
case $_tide_option_list
set -e _tide_option_list
set -g _tide_selected_option $input
break
end
end
end
2020-12-28 08:12:30 +03:00
function _tide_display_prompt -a var_name var_value
test -n "$var_name" && set -g $var_name $var_value
2021-05-23 06:46:33 +03:00
_fake_tide_prompt
2020-12-28 08:12:30 +03:00
printf '\n\n'
2020-11-20 03:23:54 +03:00
end
2021-01-24 20:42:46 +03:00
function _set_all_items_bg_color -a color
for var in (set --names | string match --regex "fake_.*_bg_color.*" | string match --invert --entire character)
2021-01-24 20:42:46 +03:00
set $var $color
end
end