mirror of
https://github.com/IlanCosman/tide.git
synced 2024-11-22 05:23:22 +03:00
More work
This commit is contained in:
parent
97b8c703eb
commit
4bb011357e
@ -3,91 +3,34 @@ end # In case this file gets loaded non-interactively, e.g by conda
|
||||
status is-interactive || exit
|
||||
|
||||
_tide_remove_unusable_items
|
||||
|
||||
# When first installing, some variables just don't exist for some reason
|
||||
test -n "$_tide_left_items$_tide_right_items" || exit
|
||||
|
||||
_tide_cache_variables
|
||||
source (functions --details _tide_pwd)
|
||||
|
||||
set -l prompt_var _tide_prompt_$fish_pid
|
||||
set -U $prompt_var # Set var here so if we erase $prompt_var, bg job won't set a uvar
|
||||
|
||||
set -l color_normal (set_color normal)
|
||||
set -l fish_path (status fish-path)
|
||||
|
||||
# _tide_repaint prevents us from creating a second background job
|
||||
function _tide_refresh_prompt --on-variable $prompt_var --on-variable COLUMNS
|
||||
set -g _tide_repaint
|
||||
commandline -f repaint
|
||||
end
|
||||
|
||||
if contains newline $_tide_left_items # two line prompt initialization
|
||||
set -l dirname (status dirname)
|
||||
set -l color_normal (set_color normal)
|
||||
set -l fish_path (status fish-path)
|
||||
|
||||
set -l leftPromptItemCode "$(cat $dirname/tide/items/_tide_item_{$_tide_left_items}.fish)"
|
||||
set -l rightPromptItemCode "$(cat $dirname/tide/items/_tide_item_{$_tide_right_items}.fish)"
|
||||
cat $dirname/tide/functions/_tide_2_line_prompt.fish |
|
||||
string replace "# @ left side goes here @" $leftPromptItemCode |
|
||||
string replace "# @ right side goes here @" $rightPromptItemCode >$dirname/tide/prompt.fish
|
||||
set -l dirname (status dirname)
|
||||
set -l leftPromptItemCode "$(cat $dirname/tide/items/_tide_item_{$_tide_left_items}.fish)"
|
||||
set -l rightPromptItemCode "$(cat $dirname/tide/items/_tide_item_{$_tide_right_items}.fish)"
|
||||
source $dirname/tide/functions/_tide_pwd.fish
|
||||
|
||||
test "$tide_prompt_add_newline_before" = true && set -l add_newline '\n'
|
||||
|
||||
set_color $tide_prompt_color_frame_and_connection -b normal | read -l prompt_and_frame_color
|
||||
|
||||
set -l column_offset 5
|
||||
test "$tide_left_prompt_frame_enabled" = true &&
|
||||
set -l top_left_frame "$prompt_and_frame_color╭─" &&
|
||||
set -l bot_left_frame "$prompt_and_frame_color╰─" &&
|
||||
set column_offset (math $column_offset-2)
|
||||
test "$tide_right_prompt_frame_enabled" = true &&
|
||||
set -l top_right_frame "$prompt_and_frame_color─╮" &&
|
||||
set -l bot_right_frame "$prompt_and_frame_color─╯" &&
|
||||
set column_offset (math $column_offset-2)
|
||||
|
||||
eval "
|
||||
function fish_prompt
|
||||
_tide_status=\$status _tide_pipestatus=\$pipestatus if not set -e _tide_repaint
|
||||
jobs -q && set -lx _tide_jobs
|
||||
$fish_path -c \"set _tide_pipestatus \$_tide_pipestatus
|
||||
CMD_DURATION=\$CMD_DURATION fish_bind_mode=\$fish_bind_mode set $prompt_var (source $dirname/tide/prompt.fish)\" &
|
||||
builtin disown
|
||||
|
||||
command kill \$_tide_last_pid 2>/dev/null
|
||||
set -g _tide_last_pid \$last_pid
|
||||
end
|
||||
|
||||
math \$COLUMNS-(string length -V \"\$$prompt_var[1][1]\$$prompt_var[1][3]\")+$column_offset | read -lx dist_btwn_sides
|
||||
|
||||
echo -ns $add_newline'$top_left_frame'(string replace @PWD@ (_tide_pwd) \"\$$prompt_var[1][1]\")'$prompt_and_frame_color'
|
||||
string repeat -Nm(math max 0, \$dist_btwn_sides-\$_tide_pwd_len) '$tide_prompt_icon_connection'
|
||||
echo -ns \"\$$prompt_var[1][3]$top_right_frame\"\n\"$bot_left_frame\$$prompt_var[1][2]$color_normal \"
|
||||
end
|
||||
|
||||
function fish_right_prompt
|
||||
string unescape \"\$$prompt_var[1][4]$bot_right_frame$color_normal\"
|
||||
end"
|
||||
else # one line prompt initialization
|
||||
test "$tide_prompt_add_newline_before" = true && set -l add_newline '\0'
|
||||
|
||||
math 5 -$tide_prompt_min_cols | read -l column_offset
|
||||
test $column_offset -ge 0 && set column_offset "+$column_offset"
|
||||
|
||||
eval "
|
||||
function fish_prompt
|
||||
_tide_status=\$status _tide_pipestatus=\$pipestatus if not set -e _tide_repaint
|
||||
jobs -q && set -lx _tide_jobs
|
||||
$fish_path -c \"set _tide_pipestatus \$_tide_pipestatus
|
||||
CMD_DURATION=\$CMD_DURATION fish_bind_mode=\$fish_bind_mode set $prompt_var (_tide_1_line_prompt)\" &
|
||||
builtin disown
|
||||
|
||||
command kill \$_tide_last_pid 2>/dev/null
|
||||
set -g _tide_last_pid \$last_pid
|
||||
end
|
||||
|
||||
math \$COLUMNS-(string length -V \"\$$prompt_var[1][1]\$$prompt_var[1][2]\")$column_offset | read -lx dist_btwn_sides
|
||||
string replace @PWD@ (_tide_pwd) $add_newline \$$prompt_var[1][1]'$color_normal '
|
||||
end
|
||||
|
||||
function fish_right_prompt
|
||||
string unescape \"\$$prompt_var[1][2]$color_normal\"
|
||||
end"
|
||||
# contains newline $_tide_left_items
|
||||
if contains newline $_tide_left_items
|
||||
source $dirname/tide/functions/2_line_prompt_init.fish
|
||||
else
|
||||
source $dirname/tide/functions/2_line_prompt_init.fish
|
||||
end
|
||||
|
||||
eval "function _tide_on_fish_exit --on-event fish_exit
|
||||
|
28
functions/tide/functions/1_line_prompt_init.fish
Normal file
28
functions/tide/functions/1_line_prompt_init.fish
Normal file
@ -0,0 +1,28 @@
|
||||
cat $dirname/tide/functions/_tide_1_line_prompt.fish |
|
||||
string replace "# @ left side goes here @" $leftPromptItemCode |
|
||||
string replace "# @ right side goes here @" $rightPromptItemCode >$dirname/tide/prompt.fish
|
||||
|
||||
test "$tide_prompt_add_newline_before" = true && set -l add_newline '\0'
|
||||
|
||||
math 5 -$tide_prompt_min_cols | read -l column_offset
|
||||
test $column_offset -ge 0 && set column_offset "+$column_offset"
|
||||
|
||||
eval "
|
||||
function fish_prompt
|
||||
_tide_status=\$status _tide_pipestatus=\$pipestatus if not set -e _tide_repaint
|
||||
jobs -q && set -lx _tide_jobs
|
||||
$fish_path -c \"set _tide_pipestatus \$_tide_pipestatus
|
||||
CMD_DURATION=\$CMD_DURATION fish_bind_mode=\$fish_bind_mode set $prompt_var (source $dirname/tide/prompt.fish)\" &
|
||||
builtin disown
|
||||
|
||||
command kill \$_tide_last_pid 2>/dev/null
|
||||
set -g _tide_last_pid \$last_pid
|
||||
end
|
||||
|
||||
math \$COLUMNS-(string length -V \"\$$prompt_var[1][1]\$$prompt_var[1][2]\")$column_offset | read -lx dist_btwn_sides
|
||||
string replace @PWD@ (_tide_pwd) $add_newline \$$prompt_var[1][1]'$color_normal '
|
||||
end
|
||||
|
||||
function fish_right_prompt
|
||||
string unescape \"\$$prompt_var[1][2]$color_normal\"
|
||||
end"
|
40
functions/tide/functions/2_line_prompt_init.fish
Normal file
40
functions/tide/functions/2_line_prompt_init.fish
Normal file
@ -0,0 +1,40 @@
|
||||
cat $dirname/tide/functions/_tide_2_line_prompt.fish |
|
||||
string replace "# @ left side goes here @" $leftPromptItemCode |
|
||||
string replace "# @ right side goes here @" $rightPromptItemCode >$dirname/tide/prompt.fish
|
||||
|
||||
test "$tide_prompt_add_newline_before" = true && set -l add_newline '\n'
|
||||
|
||||
set_color $tide_prompt_color_frame_and_connection -b normal | read -l prompt_and_frame_color
|
||||
|
||||
set -l column_offset 5
|
||||
test "$tide_left_prompt_frame_enabled" = true &&
|
||||
set -l top_left_frame "$prompt_and_frame_color╭─" &&
|
||||
set -l bot_left_frame "$prompt_and_frame_color╰─" &&
|
||||
set column_offset (math $column_offset-2)
|
||||
test "$tide_right_prompt_frame_enabled" = true &&
|
||||
set -l top_right_frame "$prompt_and_frame_color─╮" &&
|
||||
set -l bot_right_frame "$prompt_and_frame_color─╯" &&
|
||||
set column_offset (math $column_offset-2)
|
||||
|
||||
eval "
|
||||
function fish_prompt
|
||||
_tide_status=\$status _tide_pipestatus=\$pipestatus if not set -e _tide_repaint
|
||||
jobs -q && set -lx _tide_jobs
|
||||
$fish_path -c \"set _tide_pipestatus \$_tide_pipestatus
|
||||
CMD_DURATION=\$CMD_DURATION fish_bind_mode=\$fish_bind_mode set $prompt_var (source $dirname/tide/prompt.fish)\" &
|
||||
builtin disown
|
||||
|
||||
command kill \$_tide_last_pid 2>/dev/null
|
||||
set -g _tide_last_pid \$last_pid
|
||||
end
|
||||
|
||||
math \$COLUMNS-(string length -V \"\$$prompt_var[1][1]\$$prompt_var[1][3]\")+$column_offset | read -lx dist_btwn_sides
|
||||
|
||||
echo -ns $add_newline'$top_left_frame'(string replace @PWD@ (_tide_pwd) \"\$$prompt_var[1][1]\")'$prompt_and_frame_color'
|
||||
string repeat -Nm(math max 0, \$dist_btwn_sides-\$_tide_pwd_len) '$tide_prompt_icon_connection'
|
||||
echo -ns \"\$$prompt_var[1][3]$top_right_frame\"\n\"$bot_left_frame\$$prompt_var[1][2]$color_normal \"
|
||||
end
|
||||
|
||||
function fish_right_prompt
|
||||
string unescape \"\$$prompt_var[1][4]$bot_right_frame$color_normal\"
|
||||
end"
|
Loading…
Reference in New Issue
Block a user