57 lines
3.4 KiB
Fish
57 lines
3.4 KiB
Fish
# Completions for ff command
|
|
complete -c ff -f
|
|
set -l ff_subcommands reload edit pon poff pst make script help
|
|
complete -c ff -n "not __fish_seen_subcommand_from $ff_subcommands" -a "reload" -d "Reload fish configuration"
|
|
complete -c ff -n "not __fish_seen_subcommand_from $ff_subcommands" -a "edit" -d "Edit custom fish configuration"
|
|
complete -c ff -n "not __fish_seen_subcommand_from $ff_subcommands" -a "fish" -d "Change to fish config directory"
|
|
complete -c ff -n "not __fish_seen_subcommand_from $ff_subcommands" -a "dotfile" -d "Change to dotfile directory"
|
|
complete -c ff -n "not __fish_seen_subcommand_from $ff_subcommands" -a "pon" -d "Enable proxy (proxy on)"
|
|
complete -c ff -n "not __fish_seen_subcommand_from $ff_subcommands" -a "poff" -d "Disable proxy (proxy off)"
|
|
complete -c ff -n "not __fish_seen_subcommand_from $ff_subcommands" -a "pst" -d "Show proxy status"
|
|
# complete -c ff -n "not __fish_seen_subcommand_from $ff_subcommands" -a "make" -d "Run dotfile Makefile commands"
|
|
complete -c ff -n "not __fish_seen_subcommand_from $ff_subcommands" -a "script" -d "Run script from script directory"
|
|
complete -c ff -n "not __fish_seen_subcommand_from $ff_subcommands" -a "help" -d "Show this help message"
|
|
|
|
# # make 子命令的补全 - 直接使用脚本文件名
|
|
# complete -c ff -n "__fish_seen_subcommand_from make" -a "help" -d "Show all make targets"
|
|
# complete -c ff -n "__fish_seen_subcommand_from make" -a "list" -d "List all available scripts"
|
|
|
|
# Install scripts
|
|
# complete -c ff -n "__fish_seen_subcommand_from make" -a "brew-install" -d "Install Homebrew"
|
|
# complete -c ff -n "__fish_seen_subcommand_from make" -a "docker-install" -d "Install Docker"
|
|
# complete -c ff -n "__fish_seen_subcommand_from make" -a "nvim-install" -d "Install Neovim"
|
|
# complete -c ff -n "__fish_seen_subcommand_from make" -a "python-install" -d "Install Python"
|
|
# complete -c ff -n "__fish_seen_subcommand_from make" -a "gvm-install" -d "Install Go Version Manager"
|
|
# complete -c ff -n "__fish_seen_subcommand_from make" -a "firacode-install" -d "Install FiraCode font"
|
|
# complete -c ff -n "__fish_seen_subcommand_from make" -a "font-install" -d "Install fonts"
|
|
|
|
# # Init scripts
|
|
# complete -c ff -n "__fish_seen_subcommand_from make" -a "fish-init" -d "Initialize Fish shell"
|
|
# complete -c ff -n "__fish_seen_subcommand_from make" -a "git-init" -d "Initialize Git config"
|
|
# complete -c ff -n "__fish_seen_subcommand_from make" -a "nvim-init" -d "Initialize Neovim config"
|
|
# complete -c ff -n "__fish_seen_subcommand_from make" -a "tmux-init" -d "Initialize Tmux config"
|
|
# complete -c ff -n "__fish_seen_subcommand_from make" -a "cursor-init" -d "Initialize Cursor config"
|
|
# complete -c ff -n "__fish_seen_subcommand_from make" -a "init-default-user" -d "Initialize default user (sudo)"
|
|
|
|
# script 子命令的补全 - 动态列出 script 目录下的脚本
|
|
function __ff_list_scripts
|
|
set -l script_dir ~/.dotfile/script
|
|
if test -d $script_dir
|
|
# 列出 .sh 文件
|
|
for script in $script_dir/*.sh
|
|
if test -f $script
|
|
basename $script | string replace -r '\.sh$' ''
|
|
end
|
|
end
|
|
# 列出 .py 文件
|
|
for script in $script_dir/*.py
|
|
if test -f $script
|
|
basename $script | string replace -r '\.py$' ''
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
complete -c ff -n "__fish_seen_subcommand_from script" -a '(__ff_list_scripts)' -d "Script name"
|
|
|