mirror of
https://github.com/traxys/Nixfiles.git
synced 2026-02-14 03:10:19 +01:00
global: Switch from zsh to fish
This commit is contained in:
parent
68b04ca784
commit
dc185e73a7
10 changed files with 96 additions and 921 deletions
70
flake.lock
generated
70
flake.lock
generated
|
|
@ -111,22 +111,6 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"fast-syntax-highlighting": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1688591419,
|
||||
"narHash": "sha256-RVX9ZSzjBW3LpFs2W86lKI6vtcvDWP6EPxzeTcRZua4=",
|
||||
"owner": "zdharma-continuum",
|
||||
"repo": "fast-syntax-highlighting",
|
||||
"rev": "cf318e06a9b7c9f2219d78f41b46fa6e06011fd9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "zdharma-continuum",
|
||||
"repo": "fast-syntax-highlighting",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"fioul": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_2",
|
||||
|
|
@ -754,22 +738,6 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"jq-zsh-plugin": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1724402792,
|
||||
"narHash": "sha256-XYDIDThQbnr9O9cOIFPz9qqSFjxovcCqb4j6LFVlL5w=",
|
||||
"owner": "reegnz",
|
||||
"repo": "jq-zsh-plugin",
|
||||
"rev": "ded47a1e51303fb2cb331288e134e18f637274a6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "reegnz",
|
||||
"repo": "jq-zsh-plugin",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"kabalist": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
|
|
@ -1474,14 +1442,12 @@
|
|||
"inputs": {
|
||||
"attic": "attic",
|
||||
"comma": "comma",
|
||||
"fast-syntax-highlighting": "fast-syntax-highlighting",
|
||||
"fioul": "fioul",
|
||||
"flake-parts": "flake-parts",
|
||||
"flake-root": "flake-root",
|
||||
"glaurung": "glaurung",
|
||||
"gsm": "gsm",
|
||||
"home-manager": "home-manager",
|
||||
"jq-zsh-plugin": "jq-zsh-plugin",
|
||||
"kabalist": "kabalist",
|
||||
"meson-syntax": "meson-syntax",
|
||||
"mujmap": "mujmap",
|
||||
|
|
@ -1501,9 +1467,7 @@
|
|||
"simulationcraft": "simulationcraft",
|
||||
"treefmt-nix": "treefmt-nix_3",
|
||||
"vim-headerguard": "vim-headerguard",
|
||||
"wiki.vim": "wiki.vim",
|
||||
"zsh-history-substring-search": "zsh-history-substring-search",
|
||||
"zsh-nix-shell": "zsh-nix-shell"
|
||||
"wiki.vim": "wiki.vim"
|
||||
}
|
||||
},
|
||||
"rust-overlay": {
|
||||
|
|
@ -2045,38 +2009,6 @@
|
|||
"repo": "wiki.vim",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"zsh-history-substring-search": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1717563893,
|
||||
"narHash": "sha256-1+w0AeVJtu1EK5iNVwk3loenFuIyVlQmlw8TWliHZGI=",
|
||||
"owner": "zsh-users",
|
||||
"repo": "zsh-history-substring-search",
|
||||
"rev": "87ce96b1862928d84b1afe7c173316614b30e301",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "zsh-users",
|
||||
"repo": "zsh-history-substring-search",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"zsh-nix-shell": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1704028593,
|
||||
"narHash": "sha256-Rtg8kWVLhXRuD2/Ctbtgz9MQCtKZOLpAIdommZhXKdE=",
|
||||
"owner": "chisui",
|
||||
"repo": "zsh-nix-shell",
|
||||
"rev": "82ca15e638cc208e6d8368e34a1625ed75e08f90",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "chisui",
|
||||
"repo": "zsh-nix-shell",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
|
|
|
|||
16
flake.nix
16
flake.nix
|
|
@ -73,22 +73,6 @@
|
|||
inputs.naersk.follows = "naersk";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
zsh-nix-shell = {
|
||||
url = "github:chisui/zsh-nix-shell";
|
||||
flake = false;
|
||||
};
|
||||
fast-syntax-highlighting = {
|
||||
url = "github:zdharma-continuum/fast-syntax-highlighting";
|
||||
flake = false;
|
||||
};
|
||||
zsh-history-substring-search = {
|
||||
url = "github:zsh-users/zsh-history-substring-search";
|
||||
flake = false;
|
||||
};
|
||||
jq-zsh-plugin = {
|
||||
url = "github:reegnz/jq-zsh-plugin";
|
||||
flake = false;
|
||||
};
|
||||
mujmap = {
|
||||
url = "github:elizagamedev/mujmap";
|
||||
#inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
|
|
|||
|
|
@ -326,7 +326,7 @@ in
|
|||
};
|
||||
};
|
||||
|
||||
programs.zsh.shellAliases = {
|
||||
programs.fish.shellAliases = {
|
||||
"khal-today" = "khal list today today -f '{start-time}-{end-time}: {title}'";
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@
|
|||
};
|
||||
};
|
||||
|
||||
programs.zsh.shellAliases = {
|
||||
programs.fish.shellAliases = {
|
||||
gemail = ''git send-email --sendmail-cmd="nwadminSendmail" --to="dl-bxi-sw-ll-patches@***REMOVED***"'';
|
||||
};
|
||||
};
|
||||
|
|
|
|||
150
minimal/hm.nix
150
minimal/hm.nix
|
|
@ -42,6 +42,7 @@
|
|||
RUSTUP_HOME = "${XDG_DATA_HOME}/rustup";
|
||||
WINEPREFIX = "${XDG_DATA_HOME}/wine";
|
||||
DELTA_PAGER = "less -+X";
|
||||
EDITOR = "nvim";
|
||||
};
|
||||
|
||||
home.packages =
|
||||
|
|
@ -54,7 +55,6 @@
|
|||
gnumake
|
||||
jq
|
||||
man-pages
|
||||
nix-zsh-completions
|
||||
oscclip
|
||||
pandoc
|
||||
raclette
|
||||
|
|
@ -94,7 +94,6 @@
|
|||
programs.direnv = {
|
||||
enable = true;
|
||||
nix-direnv.enable = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
|
||||
programs.home-manager.enable = true;
|
||||
|
|
@ -165,7 +164,8 @@
|
|||
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
enableTransience = true;
|
||||
enableFishIntegration = true;
|
||||
settings =
|
||||
let
|
||||
background = "#3e3e3e";
|
||||
|
|
@ -281,56 +281,101 @@
|
|||
};
|
||||
};
|
||||
|
||||
programs.zsh = {
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
|
||||
shellInit = ''
|
||||
fish_add_path /nix/var/nix/profiles/default/bin
|
||||
|
||||
if [ -f "$HOME/.zvars" ]
|
||||
source "$HOME/.zvars"
|
||||
end
|
||||
|
||||
function up-or-search-prefix -d "Search (by prefix) back or move cursor up 1 line"
|
||||
# If we are already in search mode, continue
|
||||
if commandline --search-mode
|
||||
commandline -f history-search-backward
|
||||
return
|
||||
end
|
||||
|
||||
# If we are navigating the pager, then up always navigates
|
||||
if commandline --paging-mode
|
||||
commandline -f up-line
|
||||
return
|
||||
end
|
||||
|
||||
# We are not already in search mode.
|
||||
# If we are on the top line, start search mode,
|
||||
# otherwise move up
|
||||
set -l lineno (commandline -L)
|
||||
|
||||
switch $lineno
|
||||
case 1
|
||||
commandline -f history-prefix-search-backward
|
||||
|
||||
case '*'
|
||||
commandline -f up-line
|
||||
end
|
||||
end
|
||||
|
||||
function down-or-search-prefix -d "search (by prefix) forward or move down 1 line"
|
||||
# If we are already in search mode, continue
|
||||
if commandline --search-mode
|
||||
commandline -f history-search-forward
|
||||
return
|
||||
end
|
||||
|
||||
# If we are navigating the pager, then up always navigates
|
||||
if commandline --paging-mode
|
||||
commandline -f down-line
|
||||
return
|
||||
end
|
||||
|
||||
|
||||
# We are not already in search mode.
|
||||
# If we are on the bottom line, start search mode,
|
||||
# otherwise move down
|
||||
set -l lineno (commandline -L)
|
||||
set -l line_count (count (commandline))
|
||||
|
||||
switch $lineno
|
||||
case $line_count
|
||||
commandline -f history-prefix-search-forward
|
||||
|
||||
case '*'
|
||||
commandline -f down-line
|
||||
end
|
||||
end
|
||||
|
||||
bind --preset \e\A up-or-search-prefix
|
||||
bind --preset \e\B down-or-search-prefix
|
||||
'';
|
||||
|
||||
shellInitLast = ''
|
||||
${pkgs.fortune}/bin/fortune \
|
||||
| ${pkgs.cowsay}/bin/cowsay \
|
||||
| ${pkgs.dotacat}/bin/dotacat
|
||||
'';
|
||||
|
||||
shellAliases = {
|
||||
cat = "${pkgs.bat}/bin/bat -p";
|
||||
ls = "${pkgs.eza}/bin/eza --icons";
|
||||
man = "${lib.getExe pkgs.bat-extras.batman}";
|
||||
gss = "git status -s";
|
||||
glo = "git log --oneline";
|
||||
gp = "git push";
|
||||
gl = "git pull";
|
||||
};
|
||||
};
|
||||
|
||||
programs.zsh = {
|
||||
enable = false;
|
||||
|
||||
enableCompletion = true;
|
||||
|
||||
plugins = [
|
||||
{
|
||||
name = "fast-syntax-highlighting";
|
||||
file = "fast-syntax-highlighting.plugin.zsh";
|
||||
src = inputs.fast-syntax-highlighting;
|
||||
}
|
||||
{
|
||||
name = "zsh-nix-shell";
|
||||
file = "nix-shell.plugin.zsh";
|
||||
src = inputs.zsh-nix-shell;
|
||||
}
|
||||
{
|
||||
name = "jq-zsh-plugin";
|
||||
file = "jq.plugin.zsh";
|
||||
src = inputs.jq-zsh-plugin;
|
||||
}
|
||||
{
|
||||
name = "history-substring-search";
|
||||
file = "zsh-history-substring-search.zsh";
|
||||
src = inputs.zsh-history-substring-search;
|
||||
}
|
||||
];
|
||||
|
||||
envExtra = "export EDITOR=nvim";
|
||||
|
||||
initExtra = ''
|
||||
bindkey -e
|
||||
|
||||
export PATH="$PATH:$HOME/bin";
|
||||
if [ -f "$HOME/.zvars" ]; then
|
||||
source "$HOME/.zvars"
|
||||
fi
|
||||
|
||||
if [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then
|
||||
SESSION_TYPE=remote/ssh
|
||||
else
|
||||
case $(ps -o comm= -p "$PPID") in
|
||||
sshd|*/sshd) SESSION_TYPE=remote/ssh;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [[ $SESSION_TYPE = remote/ssh ]]; then
|
||||
title_prefix="$(whoami)@$(hostname) - "
|
||||
fi
|
||||
|
||||
DISABLE_AUTO_TITLE="true"
|
||||
|
||||
preexec() {
|
||||
|
|
@ -354,20 +399,7 @@
|
|||
HISTORY_SUBSTRING_SEARCH_PREFIXED=1
|
||||
bindkey "^[[A" history-substring-search-up
|
||||
bindkey "^[[B" history-substring-search-down
|
||||
|
||||
${pkgs.fortune}/bin/fortune \
|
||||
| ${pkgs.cowsay}/bin/cowsay \
|
||||
| ${pkgs.dotacat}/bin/dotacat
|
||||
'';
|
||||
shellAliases = {
|
||||
cat = "${pkgs.bat}/bin/bat -p";
|
||||
ls = "${pkgs.eza}/bin/eza --icons";
|
||||
man = "${lib.getExe pkgs.bat-extras.batman}";
|
||||
gss = "git status -s";
|
||||
glo = "git log --oneline";
|
||||
gp = "git push";
|
||||
gl = "git pull";
|
||||
};
|
||||
};
|
||||
|
||||
home.file = {
|
||||
|
|
|
|||
|
|
@ -15,11 +15,11 @@
|
|||
users.users."${config.extraInfo.username}" = {
|
||||
isNormalUser = true;
|
||||
home = "/home/${config.extraInfo.username}";
|
||||
shell = pkgs.zsh;
|
||||
shell = pkgs.fish;
|
||||
extraGroups = [ "wheel" ];
|
||||
};
|
||||
|
||||
programs.zsh.enable = true;
|
||||
programs.fish.enable = true;
|
||||
|
||||
i18n.defaultLocale = "en_GB.UTF-8";
|
||||
console = {
|
||||
|
|
@ -27,7 +27,6 @@
|
|||
keyMap = "dvorak-programmer";
|
||||
};
|
||||
|
||||
environment.pathsToLink = [ "/share/zsh" ];
|
||||
fonts.enableDefaultPackages = true;
|
||||
fonts = {
|
||||
packages = with pkgs; [
|
||||
|
|
|
|||
|
|
@ -34,7 +34,6 @@
|
|||
"nvim-treesitter"
|
||||
"openscad.nvim"
|
||||
"yanky.nvim"
|
||||
"zsh"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
|
@ -290,10 +289,6 @@
|
|||
{ name = "omni"; }
|
||||
];
|
||||
};
|
||||
|
||||
filetype.sh = {
|
||||
sources = [ { name = "zsh"; } ];
|
||||
};
|
||||
};
|
||||
|
||||
plugins.telescope = {
|
||||
|
|
|
|||
|
|
@ -25,9 +25,6 @@ in
|
|||
services.syncthing.enable = true;
|
||||
|
||||
programs.ssh.enable = true;
|
||||
programs.zsh.initExtraBeforeCompInit = ''
|
||||
fpath+="$HOME/.zfunc"
|
||||
'';
|
||||
|
||||
services.nextcloud-client = {
|
||||
enable = true;
|
||||
|
|
@ -103,9 +100,5 @@ in
|
|||
source = ./scripts;
|
||||
recursive = true;
|
||||
};
|
||||
".zfunc" = {
|
||||
source = ./zfunc;
|
||||
recursive = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,205 +0,0 @@
|
|||
#compdef jira
|
||||
|
||||
# zsh completion for jira -*- shell-script -*-
|
||||
|
||||
__jira_debug()
|
||||
{
|
||||
local file="$BASH_COMP_DEBUG_FILE"
|
||||
if [[ -n ${file} ]]; then
|
||||
echo "$*" >> "${file}"
|
||||
fi
|
||||
}
|
||||
|
||||
_jira()
|
||||
{
|
||||
local shellCompDirectiveError=1
|
||||
local shellCompDirectiveNoSpace=2
|
||||
local shellCompDirectiveNoFileComp=4
|
||||
local shellCompDirectiveFilterFileExt=8
|
||||
local shellCompDirectiveFilterDirs=16
|
||||
|
||||
local lastParam lastChar flagPrefix requestComp out directive comp lastComp noSpace
|
||||
local -a completions
|
||||
|
||||
__jira_debug "\n========= starting completion logic =========="
|
||||
__jira_debug "CURRENT: ${CURRENT}, words[*]: ${words[*]}"
|
||||
|
||||
# The user could have moved the cursor backwards on the command-line.
|
||||
# We need to trigger completion from the $CURRENT location, so we need
|
||||
# to truncate the command-line ($words) up to the $CURRENT location.
|
||||
# (We cannot use $CURSOR as its value does not work when a command is an alias.)
|
||||
words=("${=words[1,CURRENT]}")
|
||||
__jira_debug "Truncated words[*]: ${words[*]},"
|
||||
|
||||
lastParam=${words[-1]}
|
||||
lastChar=${lastParam[-1]}
|
||||
__jira_debug "lastParam: ${lastParam}, lastChar: ${lastChar}"
|
||||
|
||||
# For zsh, when completing a flag with an = (e.g., jira -n=<TAB>)
|
||||
# completions must be prefixed with the flag
|
||||
setopt local_options BASH_REMATCH
|
||||
if [[ "${lastParam}" =~ '-.*=' ]]; then
|
||||
# We are dealing with a flag with an =
|
||||
flagPrefix="-P ${BASH_REMATCH}"
|
||||
fi
|
||||
|
||||
# Prepare the command to obtain completions
|
||||
requestComp="${words[1]} __complete ${words[2,-1]}"
|
||||
if [ "${lastChar}" = "" ]; then
|
||||
# If the last parameter is complete (there is a space following it)
|
||||
# We add an extra empty parameter so we can indicate this to the go completion code.
|
||||
__jira_debug "Adding extra empty parameter"
|
||||
requestComp="${requestComp} \"\""
|
||||
fi
|
||||
|
||||
__jira_debug "About to call: eval ${requestComp}"
|
||||
|
||||
# Use eval to handle any environment variables and such
|
||||
out=$(eval ${requestComp} 2>/dev/null)
|
||||
__jira_debug "completion output: ${out}"
|
||||
|
||||
# Extract the directive integer following a : from the last line
|
||||
local lastLine
|
||||
while IFS='\n' read -r line; do
|
||||
lastLine=${line}
|
||||
done < <(printf "%s\n" "${out[@]}")
|
||||
__jira_debug "last line: ${lastLine}"
|
||||
|
||||
if [ "${lastLine[1]}" = : ]; then
|
||||
directive=${lastLine[2,-1]}
|
||||
# Remove the directive including the : and the newline
|
||||
local suffix
|
||||
(( suffix=${#lastLine}+2))
|
||||
out=${out[1,-$suffix]}
|
||||
else
|
||||
# There is no directive specified. Leave $out as is.
|
||||
__jira_debug "No directive found. Setting do default"
|
||||
directive=0
|
||||
fi
|
||||
|
||||
__jira_debug "directive: ${directive}"
|
||||
__jira_debug "completions: ${out}"
|
||||
__jira_debug "flagPrefix: ${flagPrefix}"
|
||||
|
||||
if [ $((directive & shellCompDirectiveError)) -ne 0 ]; then
|
||||
__jira_debug "Completion received error. Ignoring completions."
|
||||
return
|
||||
fi
|
||||
|
||||
local activeHelpMarker="_activeHelp_ "
|
||||
local endIndex=${#activeHelpMarker}
|
||||
local startIndex=$((${#activeHelpMarker}+1))
|
||||
local hasActiveHelp=0
|
||||
while IFS='\n' read -r comp; do
|
||||
# Check if this is an activeHelp statement (i.e., prefixed with $activeHelpMarker)
|
||||
if [ "${comp[1,$endIndex]}" = "$activeHelpMarker" ];then
|
||||
__jira_debug "ActiveHelp found: $comp"
|
||||
comp="${comp[$startIndex,-1]}"
|
||||
if [ -n "$comp" ]; then
|
||||
compadd -x "${comp}"
|
||||
__jira_debug "ActiveHelp will need delimiter"
|
||||
hasActiveHelp=1
|
||||
fi
|
||||
|
||||
continue
|
||||
fi
|
||||
|
||||
if [ -n "$comp" ]; then
|
||||
# If requested, completions are returned with a description.
|
||||
# The description is preceded by a TAB character.
|
||||
# For zsh's _describe, we need to use a : instead of a TAB.
|
||||
# We first need to escape any : as part of the completion itself.
|
||||
comp=${comp//:/\\:}
|
||||
|
||||
local tab="$(printf '\t')"
|
||||
comp=${comp//$tab/:}
|
||||
|
||||
__jira_debug "Adding completion: ${comp}"
|
||||
completions+=${comp}
|
||||
lastComp=$comp
|
||||
fi
|
||||
done < <(printf "%s\n" "${out[@]}")
|
||||
|
||||
# Add a delimiter after the activeHelp statements, but only if:
|
||||
# - there are completions following the activeHelp statements, or
|
||||
# - file completion will be performed (so there will be choices after the activeHelp)
|
||||
if [ $hasActiveHelp -eq 1 ]; then
|
||||
if [ ${#completions} -ne 0 ] || [ $((directive & shellCompDirectiveNoFileComp)) -eq 0 ]; then
|
||||
__jira_debug "Adding activeHelp delimiter"
|
||||
compadd -x "--"
|
||||
hasActiveHelp=0
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ $((directive & shellCompDirectiveNoSpace)) -ne 0 ]; then
|
||||
__jira_debug "Activating nospace."
|
||||
noSpace="-S ''"
|
||||
fi
|
||||
|
||||
if [ $((directive & shellCompDirectiveFilterFileExt)) -ne 0 ]; then
|
||||
# File extension filtering
|
||||
local filteringCmd
|
||||
filteringCmd='_files'
|
||||
for filter in ${completions[@]}; do
|
||||
if [ ${filter[1]} != '*' ]; then
|
||||
# zsh requires a glob pattern to do file filtering
|
||||
filter="\*.$filter"
|
||||
fi
|
||||
filteringCmd+=" -g $filter"
|
||||
done
|
||||
filteringCmd+=" ${flagPrefix}"
|
||||
|
||||
__jira_debug "File filtering command: $filteringCmd"
|
||||
_arguments '*:filename:'"$filteringCmd"
|
||||
elif [ $((directive & shellCompDirectiveFilterDirs)) -ne 0 ]; then
|
||||
# File completion for directories only
|
||||
local subdir
|
||||
subdir="${completions[1]}"
|
||||
if [ -n "$subdir" ]; then
|
||||
__jira_debug "Listing directories in $subdir"
|
||||
pushd "${subdir}" >/dev/null 2>&1
|
||||
else
|
||||
__jira_debug "Listing directories in ."
|
||||
fi
|
||||
|
||||
local result
|
||||
_arguments '*:dirname:_files -/'" ${flagPrefix}"
|
||||
result=$?
|
||||
if [ -n "$subdir" ]; then
|
||||
popd >/dev/null 2>&1
|
||||
fi
|
||||
return $result
|
||||
else
|
||||
__jira_debug "Calling _describe"
|
||||
if eval _describe "completions" completions $flagPrefix $noSpace; then
|
||||
__jira_debug "_describe found some completions"
|
||||
|
||||
# Return the success of having called _describe
|
||||
return 0
|
||||
else
|
||||
__jira_debug "_describe did not find completions."
|
||||
__jira_debug "Checking if we should do file completion."
|
||||
if [ $((directive & shellCompDirectiveNoFileComp)) -ne 0 ]; then
|
||||
__jira_debug "deactivating file completion"
|
||||
|
||||
# We must return an error code here to let zsh know that there were no
|
||||
# completions found by _describe; this is what will trigger other
|
||||
# matching algorithms to attempt to find completions.
|
||||
# For example zsh can match letters in the middle of words.
|
||||
return 1
|
||||
else
|
||||
# Perform file completion
|
||||
__jira_debug "Activating file completion"
|
||||
|
||||
# We must return the result of this command, so it must be the
|
||||
# last command, or else we must store its result to return it.
|
||||
_arguments '*:filename:_files'" ${flagPrefix}"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# don't run the completion function when being source-ed or eval-ed
|
||||
if [ "$funcstack[1]" = "_jira" ]; then
|
||||
_jira
|
||||
fi
|
||||
|
|
@ -1,555 +0,0 @@
|
|||
#compdef kabalist_cli
|
||||
|
||||
autoload -U is-at-least
|
||||
|
||||
_kabalist_cli() {
|
||||
typeset -A opt_args
|
||||
typeset -a _arguments_options
|
||||
local ret=1
|
||||
|
||||
if is-at-least 5.2; then
|
||||
_arguments_options=(-s -S -C)
|
||||
else
|
||||
_arguments_options=(-s -C)
|
||||
fi
|
||||
|
||||
local context curcontext="$curcontext" state line
|
||||
_arguments "${_arguments_options[@]}" \
|
||||
'-u+[]:URL: ' \
|
||||
'--url=[]:URL: ' \
|
||||
'-h[Print help information]' \
|
||||
'--help[Print help information]' \
|
||||
":: :_kabalist_cli_commands" \
|
||||
"*::: :->kabalist_cli" \
|
||||
&& ret=0
|
||||
case $state in
|
||||
(kabalist_cli)
|
||||
words=($line[1] "${words[@]}")
|
||||
(( CURRENT += 1 ))
|
||||
curcontext="${curcontext%:*:*}:kabalist_cli-command-$line[1]:"
|
||||
case $line[1] in
|
||||
(account)
|
||||
_arguments "${_arguments_options[@]}" \
|
||||
'-h[Print help information]' \
|
||||
'--help[Print help information]' \
|
||||
":: :_kabalist_cli__account_commands" \
|
||||
"*::: :->account" \
|
||||
&& ret=0
|
||||
|
||||
case $state in
|
||||
(account)
|
||||
words=($line[1] "${words[@]}")
|
||||
(( CURRENT += 1 ))
|
||||
curcontext="${curcontext%:*:*}:kabalist_cli-account-command-$line[1]:"
|
||||
case $line[1] in
|
||||
(login)
|
||||
_arguments "${_arguments_options[@]}" \
|
||||
'-h[Print help information]' \
|
||||
'--help[Print help information]' \
|
||||
':name:' \
|
||||
'::password:' \
|
||||
&& ret=0
|
||||
;;
|
||||
(recover)
|
||||
_arguments "${_arguments_options[@]}" \
|
||||
'-h[Print help information]' \
|
||||
'--help[Print help information]' \
|
||||
':id:' \
|
||||
'::password:' \
|
||||
&& ret=0
|
||||
;;
|
||||
(register)
|
||||
_arguments "${_arguments_options[@]}" \
|
||||
'-h[Print help information]' \
|
||||
'--help[Print help information]' \
|
||||
':id:' \
|
||||
':username:' \
|
||||
'::password:' \
|
||||
&& ret=0
|
||||
;;
|
||||
(help)
|
||||
_arguments "${_arguments_options[@]}" \
|
||||
'*::subcommand -- The subcommand whose help message to display:' \
|
||||
&& ret=0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
(list)
|
||||
_arguments "${_arguments_options[@]}" \
|
||||
'-t+[]:TOKEN: ' \
|
||||
'--token=[]:TOKEN: ' \
|
||||
'-h[Print help information]' \
|
||||
'--help[Print help information]' \
|
||||
':list:' \
|
||||
":: :_kabalist_cli__list_commands" \
|
||||
"*::: :->list" \
|
||||
&& ret=0
|
||||
|
||||
case $state in
|
||||
(list)
|
||||
words=($line[2] "${words[@]}")
|
||||
(( CURRENT += 1 ))
|
||||
curcontext="${curcontext%:*:*}:kabalist_cli-list-command-$line[2]:"
|
||||
case $line[2] in
|
||||
(delete)
|
||||
_arguments "${_arguments_options[@]}" \
|
||||
'-h[Print help information]' \
|
||||
'--help[Print help information]' \
|
||||
&& ret=0
|
||||
;;
|
||||
(add)
|
||||
_arguments "${_arguments_options[@]}" \
|
||||
'-h[Print help information]' \
|
||||
'--help[Print help information]' \
|
||||
':name:' \
|
||||
'::amount:' \
|
||||
&& ret=0
|
||||
;;
|
||||
(item)
|
||||
_arguments "${_arguments_options[@]}" \
|
||||
'-h[Print help information]' \
|
||||
'--help[Print help information]' \
|
||||
':item:' \
|
||||
":: :_kabalist_cli__list__item_commands" \
|
||||
"*::: :->item" \
|
||||
&& ret=0
|
||||
|
||||
case $state in
|
||||
(item)
|
||||
words=($line[2] "${words[@]}")
|
||||
(( CURRENT += 1 ))
|
||||
curcontext="${curcontext%:*:*}:kabalist_cli-list-item-command-$line[2]:"
|
||||
case $line[2] in
|
||||
(tick)
|
||||
_arguments "${_arguments_options[@]}" \
|
||||
'-h[Print help information]' \
|
||||
'--help[Print help information]' \
|
||||
&& ret=0
|
||||
;;
|
||||
(update)
|
||||
_arguments "${_arguments_options[@]}" \
|
||||
'-h[Print help information]' \
|
||||
'--help[Print help information]' \
|
||||
'::name:' \
|
||||
'::amount:' \
|
||||
&& ret=0
|
||||
;;
|
||||
(help)
|
||||
_arguments "${_arguments_options[@]}" \
|
||||
'*::subcommand -- The subcommand whose help message to display:' \
|
||||
&& ret=0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
(share)
|
||||
_arguments "${_arguments_options[@]}" \
|
||||
'-h[Print help information]' \
|
||||
'--help[Print help information]' \
|
||||
":: :_kabalist_cli__list__share_commands" \
|
||||
"*::: :->share" \
|
||||
&& ret=0
|
||||
|
||||
case $state in
|
||||
(share)
|
||||
words=($line[1] "${words[@]}")
|
||||
(( CURRENT += 1 ))
|
||||
curcontext="${curcontext%:*:*}:kabalist_cli-list-share-command-$line[1]:"
|
||||
case $line[1] in
|
||||
(add)
|
||||
_arguments "${_arguments_options[@]}" \
|
||||
'-r[]' \
|
||||
'--readonly[]' \
|
||||
'-h[Print help information]' \
|
||||
'--help[Print help information]' \
|
||||
':name:' \
|
||||
&& ret=0
|
||||
;;
|
||||
(delete)
|
||||
_arguments "${_arguments_options[@]}" \
|
||||
'--all[]' \
|
||||
'-h[Print help information]' \
|
||||
'--help[Print help information]' \
|
||||
'*::names:' \
|
||||
&& ret=0
|
||||
;;
|
||||
(help)
|
||||
_arguments "${_arguments_options[@]}" \
|
||||
'*::subcommand -- The subcommand whose help message to display:' \
|
||||
&& ret=0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
(public)
|
||||
_arguments "${_arguments_options[@]}" \
|
||||
'-h[Print help information]' \
|
||||
'--help[Print help information]' \
|
||||
":: :_kabalist_cli__list__public_commands" \
|
||||
"*::: :->public" \
|
||||
&& ret=0
|
||||
|
||||
case $state in
|
||||
(public)
|
||||
words=($line[1] "${words[@]}")
|
||||
(( CURRENT += 1 ))
|
||||
curcontext="${curcontext%:*:*}:kabalist_cli-list-public-command-$line[1]:"
|
||||
case $line[1] in
|
||||
(set)
|
||||
_arguments "${_arguments_options[@]}" \
|
||||
'-h[Print help information]' \
|
||||
'--help[Print help information]' \
|
||||
&& ret=0
|
||||
;;
|
||||
(remove)
|
||||
_arguments "${_arguments_options[@]}" \
|
||||
'-h[Print help information]' \
|
||||
'--help[Print help information]' \
|
||||
&& ret=0
|
||||
;;
|
||||
(help)
|
||||
_arguments "${_arguments_options[@]}" \
|
||||
'*::subcommand -- The subcommand whose help message to display:' \
|
||||
&& ret=0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
(history)
|
||||
_arguments "${_arguments_options[@]}" \
|
||||
'-h[Print help information]' \
|
||||
'--help[Print help information]' \
|
||||
'::search:' \
|
||||
&& ret=0
|
||||
;;
|
||||
(pantry)
|
||||
_arguments "${_arguments_options[@]}" \
|
||||
'-h[Print help information]' \
|
||||
'--help[Print help information]' \
|
||||
":: :_kabalist_cli__list__pantry_commands" \
|
||||
"*::: :->pantry" \
|
||||
&& ret=0
|
||||
|
||||
case $state in
|
||||
(pantry)
|
||||
words=($line[1] "${words[@]}")
|
||||
(( CURRENT += 1 ))
|
||||
curcontext="${curcontext%:*:*}:kabalist_cli-list-pantry-command-$line[1]:"
|
||||
case $line[1] in
|
||||
(add)
|
||||
_arguments "${_arguments_options[@]}" \
|
||||
'-h[Print help information]' \
|
||||
'--help[Print help information]' \
|
||||
':name:' \
|
||||
':target:' \
|
||||
&& ret=0
|
||||
;;
|
||||
(edit)
|
||||
_arguments "${_arguments_options[@]}" \
|
||||
'-t+[]:TARGET: ' \
|
||||
'--target=[]:TARGET: ' \
|
||||
'-a+[]:AMOUNT: ' \
|
||||
'--amount=[]:AMOUNT: ' \
|
||||
'-h[Print help information]' \
|
||||
'--help[Print help information]' \
|
||||
':item:' \
|
||||
&& ret=0
|
||||
;;
|
||||
(delete)
|
||||
_arguments "${_arguments_options[@]}" \
|
||||
'-h[Print help information]' \
|
||||
'--help[Print help information]' \
|
||||
':item:' \
|
||||
&& ret=0
|
||||
;;
|
||||
(refill)
|
||||
_arguments "${_arguments_options[@]}" \
|
||||
'-h[Print help information]' \
|
||||
'--help[Print help information]' \
|
||||
&& ret=0
|
||||
;;
|
||||
(help)
|
||||
_arguments "${_arguments_options[@]}" \
|
||||
'*::subcommand -- The subcommand whose help message to display:' \
|
||||
&& ret=0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
(help)
|
||||
_arguments "${_arguments_options[@]}" \
|
||||
'*::subcommand -- The subcommand whose help message to display:' \
|
||||
&& ret=0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
(lists)
|
||||
_arguments "${_arguments_options[@]}" \
|
||||
'-t+[]:TOKEN: ' \
|
||||
'--token=[]:TOKEN: ' \
|
||||
'-h[Print help information]' \
|
||||
'--help[Print help information]' \
|
||||
":: :_kabalist_cli__lists_commands" \
|
||||
"*::: :->lists" \
|
||||
&& ret=0
|
||||
|
||||
case $state in
|
||||
(lists)
|
||||
words=($line[1] "${words[@]}")
|
||||
(( CURRENT += 1 ))
|
||||
curcontext="${curcontext%:*:*}:kabalist_cli-lists-command-$line[1]:"
|
||||
case $line[1] in
|
||||
(create)
|
||||
_arguments "${_arguments_options[@]}" \
|
||||
'-h[Print help information]' \
|
||||
'--help[Print help information]' \
|
||||
':list:' \
|
||||
&& ret=0
|
||||
;;
|
||||
(help)
|
||||
_arguments "${_arguments_options[@]}" \
|
||||
'*::subcommand -- The subcommand whose help message to display:' \
|
||||
&& ret=0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
(completions)
|
||||
_arguments "${_arguments_options[@]}" \
|
||||
'-h[Print help information]' \
|
||||
'--help[Print help information]' \
|
||||
':shell:' \
|
||||
&& ret=0
|
||||
;;
|
||||
(help)
|
||||
_arguments "${_arguments_options[@]}" \
|
||||
'*::subcommand -- The subcommand whose help message to display:' \
|
||||
&& ret=0
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
(( $+functions[_kabalist_cli_commands] )) ||
|
||||
_kabalist_cli_commands() {
|
||||
local commands; commands=(
|
||||
'account:' \
|
||||
'list:' \
|
||||
'lists:' \
|
||||
'completions:' \
|
||||
'help:Print this message or the help of the given subcommand(s)' \
|
||||
)
|
||||
_describe -t commands 'kabalist_cli commands' commands "$@"
|
||||
}
|
||||
(( $+functions[_kabalist_cli__account_commands] )) ||
|
||||
_kabalist_cli__account_commands() {
|
||||
local commands; commands=(
|
||||
'login:' \
|
||||
'recover:' \
|
||||
'register:' \
|
||||
'help:Print this message or the help of the given subcommand(s)' \
|
||||
)
|
||||
_describe -t commands 'kabalist_cli account commands' commands "$@"
|
||||
}
|
||||
(( $+functions[_kabalist_cli__list__add_commands] )) ||
|
||||
_kabalist_cli__list__add_commands() {
|
||||
local commands; commands=()
|
||||
_describe -t commands 'kabalist_cli list add commands' commands "$@"
|
||||
}
|
||||
(( $+functions[_kabalist_cli__list__pantry__add_commands] )) ||
|
||||
_kabalist_cli__list__pantry__add_commands() {
|
||||
local commands; commands=()
|
||||
_describe -t commands 'kabalist_cli list pantry add commands' commands "$@"
|
||||
}
|
||||
(( $+functions[_kabalist_cli__list__share__add_commands] )) ||
|
||||
_kabalist_cli__list__share__add_commands() {
|
||||
local commands; commands=()
|
||||
_describe -t commands 'kabalist_cli list share add commands' commands "$@"
|
||||
}
|
||||
(( $+functions[_kabalist_cli__completions_commands] )) ||
|
||||
_kabalist_cli__completions_commands() {
|
||||
local commands; commands=()
|
||||
_describe -t commands 'kabalist_cli completions commands' commands "$@"
|
||||
}
|
||||
(( $+functions[_kabalist_cli__lists__create_commands] )) ||
|
||||
_kabalist_cli__lists__create_commands() {
|
||||
local commands; commands=()
|
||||
_describe -t commands 'kabalist_cli lists create commands' commands "$@"
|
||||
}
|
||||
(( $+functions[_kabalist_cli__list__delete_commands] )) ||
|
||||
_kabalist_cli__list__delete_commands() {
|
||||
local commands; commands=()
|
||||
_describe -t commands 'kabalist_cli list delete commands' commands "$@"
|
||||
}
|
||||
(( $+functions[_kabalist_cli__list__pantry__delete_commands] )) ||
|
||||
_kabalist_cli__list__pantry__delete_commands() {
|
||||
local commands; commands=()
|
||||
_describe -t commands 'kabalist_cli list pantry delete commands' commands "$@"
|
||||
}
|
||||
(( $+functions[_kabalist_cli__list__share__delete_commands] )) ||
|
||||
_kabalist_cli__list__share__delete_commands() {
|
||||
local commands; commands=()
|
||||
_describe -t commands 'kabalist_cli list share delete commands' commands "$@"
|
||||
}
|
||||
(( $+functions[_kabalist_cli__list__pantry__edit_commands] )) ||
|
||||
_kabalist_cli__list__pantry__edit_commands() {
|
||||
local commands; commands=()
|
||||
_describe -t commands 'kabalist_cli list pantry edit commands' commands "$@"
|
||||
}
|
||||
(( $+functions[_kabalist_cli__account__help_commands] )) ||
|
||||
_kabalist_cli__account__help_commands() {
|
||||
local commands; commands=()
|
||||
_describe -t commands 'kabalist_cli account help commands' commands "$@"
|
||||
}
|
||||
(( $+functions[_kabalist_cli__help_commands] )) ||
|
||||
_kabalist_cli__help_commands() {
|
||||
local commands; commands=()
|
||||
_describe -t commands 'kabalist_cli help commands' commands "$@"
|
||||
}
|
||||
(( $+functions[_kabalist_cli__list__help_commands] )) ||
|
||||
_kabalist_cli__list__help_commands() {
|
||||
local commands; commands=()
|
||||
_describe -t commands 'kabalist_cli list help commands' commands "$@"
|
||||
}
|
||||
(( $+functions[_kabalist_cli__list__item__help_commands] )) ||
|
||||
_kabalist_cli__list__item__help_commands() {
|
||||
local commands; commands=()
|
||||
_describe -t commands 'kabalist_cli list item help commands' commands "$@"
|
||||
}
|
||||
(( $+functions[_kabalist_cli__list__pantry__help_commands] )) ||
|
||||
_kabalist_cli__list__pantry__help_commands() {
|
||||
local commands; commands=()
|
||||
_describe -t commands 'kabalist_cli list pantry help commands' commands "$@"
|
||||
}
|
||||
(( $+functions[_kabalist_cli__list__public__help_commands] )) ||
|
||||
_kabalist_cli__list__public__help_commands() {
|
||||
local commands; commands=()
|
||||
_describe -t commands 'kabalist_cli list public help commands' commands "$@"
|
||||
}
|
||||
(( $+functions[_kabalist_cli__list__share__help_commands] )) ||
|
||||
_kabalist_cli__list__share__help_commands() {
|
||||
local commands; commands=()
|
||||
_describe -t commands 'kabalist_cli list share help commands' commands "$@"
|
||||
}
|
||||
(( $+functions[_kabalist_cli__lists__help_commands] )) ||
|
||||
_kabalist_cli__lists__help_commands() {
|
||||
local commands; commands=()
|
||||
_describe -t commands 'kabalist_cli lists help commands' commands "$@"
|
||||
}
|
||||
(( $+functions[_kabalist_cli__list__history_commands] )) ||
|
||||
_kabalist_cli__list__history_commands() {
|
||||
local commands; commands=()
|
||||
_describe -t commands 'kabalist_cli list history commands' commands "$@"
|
||||
}
|
||||
(( $+functions[_kabalist_cli__list__item_commands] )) ||
|
||||
_kabalist_cli__list__item_commands() {
|
||||
local commands; commands=(
|
||||
'tick:' \
|
||||
'update:' \
|
||||
'help:Print this message or the help of the given subcommand(s)' \
|
||||
)
|
||||
_describe -t commands 'kabalist_cli list item commands' commands "$@"
|
||||
}
|
||||
(( $+functions[_kabalist_cli__list_commands] )) ||
|
||||
_kabalist_cli__list_commands() {
|
||||
local commands; commands=(
|
||||
'delete:' \
|
||||
'add:' \
|
||||
'item:' \
|
||||
'share:' \
|
||||
'public:' \
|
||||
'history:' \
|
||||
'pantry:' \
|
||||
'help:Print this message or the help of the given subcommand(s)' \
|
||||
)
|
||||
_describe -t commands 'kabalist_cli list commands' commands "$@"
|
||||
}
|
||||
(( $+functions[_kabalist_cli__lists_commands] )) ||
|
||||
_kabalist_cli__lists_commands() {
|
||||
local commands; commands=(
|
||||
'create:' \
|
||||
'help:Print this message or the help of the given subcommand(s)' \
|
||||
)
|
||||
_describe -t commands 'kabalist_cli lists commands' commands "$@"
|
||||
}
|
||||
(( $+functions[_kabalist_cli__account__login_commands] )) ||
|
||||
_kabalist_cli__account__login_commands() {
|
||||
local commands; commands=()
|
||||
_describe -t commands 'kabalist_cli account login commands' commands "$@"
|
||||
}
|
||||
(( $+functions[_kabalist_cli__list__pantry_commands] )) ||
|
||||
_kabalist_cli__list__pantry_commands() {
|
||||
local commands; commands=(
|
||||
'add:' \
|
||||
'edit:' \
|
||||
'delete:' \
|
||||
'refill:' \
|
||||
'help:Print this message or the help of the given subcommand(s)' \
|
||||
)
|
||||
_describe -t commands 'kabalist_cli list pantry commands' commands "$@"
|
||||
}
|
||||
(( $+functions[_kabalist_cli__list__public_commands] )) ||
|
||||
_kabalist_cli__list__public_commands() {
|
||||
local commands; commands=(
|
||||
'set:' \
|
||||
'remove:' \
|
||||
'help:Print this message or the help of the given subcommand(s)' \
|
||||
)
|
||||
_describe -t commands 'kabalist_cli list public commands' commands "$@"
|
||||
}
|
||||
(( $+functions[_kabalist_cli__account__recover_commands] )) ||
|
||||
_kabalist_cli__account__recover_commands() {
|
||||
local commands; commands=()
|
||||
_describe -t commands 'kabalist_cli account recover commands' commands "$@"
|
||||
}
|
||||
(( $+functions[_kabalist_cli__list__pantry__refill_commands] )) ||
|
||||
_kabalist_cli__list__pantry__refill_commands() {
|
||||
local commands; commands=()
|
||||
_describe -t commands 'kabalist_cli list pantry refill commands' commands "$@"
|
||||
}
|
||||
(( $+functions[_kabalist_cli__account__register_commands] )) ||
|
||||
_kabalist_cli__account__register_commands() {
|
||||
local commands; commands=()
|
||||
_describe -t commands 'kabalist_cli account register commands' commands "$@"
|
||||
}
|
||||
(( $+functions[_kabalist_cli__list__public__remove_commands] )) ||
|
||||
_kabalist_cli__list__public__remove_commands() {
|
||||
local commands; commands=()
|
||||
_describe -t commands 'kabalist_cli list public remove commands' commands "$@"
|
||||
}
|
||||
(( $+functions[_kabalist_cli__list__public__set_commands] )) ||
|
||||
_kabalist_cli__list__public__set_commands() {
|
||||
local commands; commands=()
|
||||
_describe -t commands 'kabalist_cli list public set commands' commands "$@"
|
||||
}
|
||||
(( $+functions[_kabalist_cli__list__share_commands] )) ||
|
||||
_kabalist_cli__list__share_commands() {
|
||||
local commands; commands=(
|
||||
'add:' \
|
||||
'delete:' \
|
||||
'help:Print this message or the help of the given subcommand(s)' \
|
||||
)
|
||||
_describe -t commands 'kabalist_cli list share commands' commands "$@"
|
||||
}
|
||||
(( $+functions[_kabalist_cli__list__item__tick_commands] )) ||
|
||||
_kabalist_cli__list__item__tick_commands() {
|
||||
local commands; commands=()
|
||||
_describe -t commands 'kabalist_cli list item tick commands' commands "$@"
|
||||
}
|
||||
(( $+functions[_kabalist_cli__list__item__update_commands] )) ||
|
||||
_kabalist_cli__list__item__update_commands() {
|
||||
local commands; commands=()
|
||||
_describe -t commands 'kabalist_cli list item update commands' commands "$@"
|
||||
}
|
||||
|
||||
_kabalist_cli "$@"
|
||||
Loading…
Add table
Add a link
Reference in a new issue