deleted: .config/niri/config-01.kdl modified: README.md modified: apps-list.md deleted: background renamed: .config/btop/btop.conf -> config/btop/btop.conf renamed: .config/clipse/config.json -> config/clipse/config.json renamed: .config/clipse/custom_theme.json -> config/clipse/custom_theme.json renamed: .config/fastfetch/1.jsonc -> config/fastfetch/1.jsonc renamed: .config/fastfetch/19.jsonc -> config/fastfetch/19.jsonc renamed: .config/fastfetch/20.jsonc -> config/fastfetch/20.jsonc renamed: .config/fastfetch/config.jsonc -> config/fastfetch/config.jsonc renamed: .config/fish/completions/fisher.fish -> config/fish/completions/fisher.fish renamed: .config/fish/completions/fzf_configure_bindings.fish -> config/fish/completions/fzf_configure_bindings.fish renamed: .config/fish/conf.d/fish_frozen_key_bindings.fish -> config/fish/conf.d/fish_frozen_key_bindings.fish renamed: .config/fish/conf.d/fish_frozen_theme.fish -> config/fish/conf.d/fish_frozen_theme.fish renamed: .config/fish/conf.d/fzf.fish -> config/fish/conf.d/fzf.fish new file: config/fish/conf.d/nix.fish renamed: .config/fish/config.fish -> config/fish/config.fish renamed: .config/fish/fish_plugins -> config/fish/fish_plugins renamed: .config/fish/fish_variables -> config/fish/fish_variables renamed: .config/fish/functions/:q.fish -> config/fish/functions/:q.fish renamed: .config/fish/functions/_fzf_configure_bindings_help.fish -> config/fish/functions/_fzf_configure_bindings_help.fish renamed: .config/fish/functions/_fzf_extract_var_info.fish -> config/fish/functions/_fzf_extract_var_info.fish renamed: .config/fish/functions/_fzf_preview_changed_file.fish -> config/fish/functions/_fzf_preview_changed_file.fish renamed: .config/fish/functions/_fzf_preview_file.fish -> config/fish/functions/_fzf_preview_file.fish renamed: .config/fish/functions/_fzf_report_diff_type.fish -> config/fish/functions/_fzf_report_diff_type.fish renamed: .config/fish/functions/_fzf_report_file_type.fish -> config/fish/functions/_fzf_report_file_type.fish renamed: .config/fish/functions/_fzf_search_directory.fish -> config/fish/functions/_fzf_search_directory.fish renamed: .config/fish/functions/_fzf_search_git_log.fish -> config/fish/functions/_fzf_search_git_log.fish renamed: .config/fish/functions/_fzf_search_git_status.fish -> config/fish/functions/_fzf_search_git_status.fish renamed: .config/fish/functions/_fzf_search_history.fish -> config/fish/functions/_fzf_search_history.fish renamed: .config/fish/functions/_fzf_search_processes.fish -> config/fish/functions/_fzf_search_processes.fish renamed: .config/fish/functions/_fzf_search_variables.fish -> config/fish/functions/_fzf_search_variables.fish renamed: .config/fish/functions/_fzf_wrapper.fish -> config/fish/functions/_fzf_wrapper.fish renamed: .config/fish/functions/ff.fish -> config/fish/functions/ff.fish renamed: .config/fish/functions/fish_prompt.fish -> config/fish/functions/fish_prompt.fish renamed: .config/fish/functions/fish_prompt.fish.bak -> config/fish/functions/fish_prompt.fish.bak renamed: .config/fish/functions/fisher.fish -> config/fish/functions/fisher.fish renamed: .config/fish/functions/fzf_configure_bindings.fish -> config/fish/functions/fzf_configure_bindings.fish renamed: .config/fish/functions/ls.fish -> config/fish/functions/ls.fish renamed: .config/fish/functions/n.fish -> config/fish/functions/n.fish renamed: .config/fish/functions/nv.fish -> config/fish/functions/nv.fish renamed: .config/fish/functions/p.fish -> config/fish/functions/p.fish new file: config/fish/functions/sshp.fish renamed: .config/fish/functions/vpn.fish -> config/fish/functions/vpn.fish renamed: .config/fish/functions/webka.fish -> config/fish/functions/webka.fish renamed: .config/fish/functions/y.fish -> config/fish/functions/y.fish renamed: .config/fish/functions/yz.fish -> config/fish/functions/yz.fish renamed: ".config/fish/functions/\320\275\321\217.fish" -> "config/fish/functions/\320\275\321\217.fish" renamed: .config/fuzzel/fuzzel.ini -> config/fuzzel/fuzzel.ini renamed: .config/hypr/hyprland.conf -> config/hypr/hyprland.conf renamed: .config/hypr/hyprlock.conf -> config/hypr/hyprlock.conf new file: config/hyprwave/config.conf new file: config/hyprwave/style.css new file: config/kitty/current-theme.conf renamed: .config/kitty/kitty.conf.bak -> config/kitty/kitty.conf renamed: .config/kitty/kitty.conf -> config/kitty/kitty.conf.bak new file: config/mimeapps.list renamed: .config/niri/config.kdl -> config/niri/config.kdl renamed: .config/nvim/.gitignore -> config/nvim/.gitignore renamed: .config/nvim/.neoconf.json -> config/nvim/.neoconf.json renamed: .config/nvim/LICENSE -> config/nvim/LICENSE renamed: .config/nvim/README.md -> config/nvim/README.md renamed: .config/nvim/init.lua -> config/nvim/init.lua renamed: .config/nvim/lazy-lock.json -> config/nvim/lazy-lock.json renamed: .config/nvim/lazyvim.json -> config/nvim/lazyvim.json renamed: .config/nvim/lua/config/autocmds.lua -> config/nvim/lua/config/autocmds.lua renamed: .config/nvim/lua/config/keymaps.lua -> config/nvim/lua/config/keymaps.lua renamed: .config/nvim/lua/config/lazy.lua -> config/nvim/lua/config/lazy.lua renamed: .config/nvim/lua/config/options.lua -> config/nvim/lua/config/options.lua renamed: .config/nvim/lua/plugins/example.lua -> config/nvim/lua/plugins/example.lua renamed: .config/nvim/lua/plugins/luasnip.lua -> config/nvim/lua/plugins/luasnip.lua renamed: .config/nvim/lua/plugins/markview.lua -> config/nvim/lua/plugins/markview.lua renamed: .config/nvim/lua/plugins/marp-nvim.lua -> config/nvim/lua/plugins/marp-nvim.lua renamed: .config/nvim/lua/plugins/nvim-snippy.lua -> config/nvim/lua/plugins/nvim-snippy.lua renamed: .config/nvim/lua/plugins/render-markdown.lua -> config/nvim/lua/plugins/render-markdown.lua renamed: .config/nvim/lua/plugins/xkbswitch.lua -> config/nvim/lua/plugins/xkbswitch.lua renamed: .config/nvim/stylua.toml -> config/nvim/stylua.toml new file: config/termusic/tui.toml renamed: .config/waybar/config.jsonc -> config/waybar/config.jsonc renamed: .config/waybar/config01.jsonc -> config/waybar/config01.jsonc renamed: .config/waybar/style.css -> config/waybar/style.css renamed: .config/waybar/style01.css -> config/waybar/style01.css renamed: .config/yazi/yazi.toml -> config/yazi/yazi.toml deleted: mimeapps.list deleted: resolved.conf deleted: zen-mods-export.json
49 lines
2.4 KiB
Fish
49 lines
2.4 KiB
Fish
# helper for _fzf_search_git_status
|
|
# arg should be a line from git status --short, e.g.
|
|
# MM functions/_fzf_preview_changed_file.fish
|
|
# D README.md
|
|
# R LICENSE -> "New License"
|
|
function _fzf_preview_changed_file --argument-names path_status --description "Show the git diff of the given file."
|
|
# remove quotes because they'll be interpreted literally by git diff
|
|
# no need to requote when referencing $path because fish does not perform word splitting
|
|
# https://fishshell.com/docs/current/fish_for_bash_users.html
|
|
set -f path (string unescape (string sub --start 4 $path_status))
|
|
# first letter of short format shows index, second letter shows working tree
|
|
# https://git-scm.com/docs/git-status/2.35.0#_short_format
|
|
set -f index_status (string sub --length 1 $path_status)
|
|
set -f working_tree_status (string sub --start 2 --length 1 $path_status)
|
|
|
|
set -f diff_opts --color=always
|
|
|
|
if test $index_status = '?'
|
|
_fzf_report_diff_type Untracked
|
|
_fzf_preview_file $path
|
|
else if contains {$index_status}$working_tree_status DD AU UD UA DU AA UU
|
|
# Unmerged statuses taken directly from git status help's short format table
|
|
# Unmerged statuses are mutually exclusive with other statuses, so if we see
|
|
# these, then safe to assume the path is unmerged
|
|
_fzf_report_diff_type Unmerged
|
|
git diff $diff_opts -- $path
|
|
else
|
|
if test $index_status != ' '
|
|
_fzf_report_diff_type Staged
|
|
|
|
# renames are only detected in the index, never working tree, so only need to test for it here
|
|
# https://stackoverflow.com/questions/73954214
|
|
if test $index_status = R
|
|
# diff the post-rename path with the original path, otherwise the diff will show the entire file as being added
|
|
set -f orig_and_new_path (string split --max 1 -- ' -> ' $path)
|
|
git diff --staged $diff_opts -- $orig_and_new_path[1] $orig_and_new_path[2]
|
|
# path currently has the form of "original -> current", so we need to correct it before it's used below
|
|
set path $orig_and_new_path[2]
|
|
else
|
|
git diff --staged $diff_opts -- $path
|
|
end
|
|
end
|
|
|
|
if test $working_tree_status != ' '
|
|
_fzf_report_diff_type Unstaged
|
|
git diff $diff_opts -- $path
|
|
end
|
|
end
|
|
end
|