add some completion scripts
This commit is contained in:
parent
692fcd71a9
commit
6080ff7531
6 changed files with 586 additions and 4 deletions
154
system/completions/_just
Normal file
154
system/completions/_just
Normal file
|
@ -0,0 +1,154 @@
|
||||||
|
#compdef just
|
||||||
|
|
||||||
|
autoload -U is-at-least
|
||||||
|
|
||||||
|
_just() {
|
||||||
|
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
|
||||||
|
local common=(
|
||||||
|
'--chooser=[Override binary invoked by `--choose`]' \
|
||||||
|
'--color=[Print colorful output]: :(auto always never)' \
|
||||||
|
'--dump-format=[Dump justfile as <FORMAT>]: :(just json)' \
|
||||||
|
'--list-heading=[Print <TEXT> before list]' \
|
||||||
|
'--list-prefix=[Print <TEXT> before each list item]' \
|
||||||
|
'-f+[Use <JUSTFILE> as justfile]' \
|
||||||
|
'--justfile=[Use <JUSTFILE> as justfile]' \
|
||||||
|
'*--set[Override <VARIABLE> with <VALUE>]: :_just_variables' \
|
||||||
|
'--shell=[Invoke <SHELL> to run recipes]' \
|
||||||
|
'*--shell-arg=[Invoke shell with <SHELL-ARG> as an argument]' \
|
||||||
|
'-d+[Use <WORKING-DIRECTORY> as working directory. --justfile must also be set]' \
|
||||||
|
'--working-directory=[Use <WORKING-DIRECTORY> as working directory. --justfile must also be set]' \
|
||||||
|
'-c+[Run an arbitrary command with the working directory, `.env`, overrides, and exports set]' \
|
||||||
|
'--command=[Run an arbitrary command with the working directory, `.env`, overrides, and exports set]' \
|
||||||
|
'--completions=[Print shell completion script for <SHELL>]: :(zsh bash fish powershell elvish)' \
|
||||||
|
'-s+[Show information about <RECIPE>]: :_just_commands' \
|
||||||
|
'--show=[Show information about <RECIPE>]: :_just_commands' \
|
||||||
|
'(--dotenv-path)--dotenv-filename=[Search for environment file named <DOTENV-FILENAME> instead of `.env`]' \
|
||||||
|
'--dotenv-path=[Load environment file at <DOTENV-PATH> instead of searching for one]' \
|
||||||
|
'--check[Run `--fmt` in '\''check'\'' mode. Exits with 0 if justfile is formatted correctly. Exits with 1 and prints a diff if formatting is required.]' \
|
||||||
|
'(-q --quiet)--dry-run[Print what just would do without doing it]' \
|
||||||
|
'--highlight[Highlight echoed recipe lines in bold]' \
|
||||||
|
'--no-dotenv[Don'\''t load `.env` file]' \
|
||||||
|
'--no-highlight[Don'\''t highlight echoed recipe lines in bold]' \
|
||||||
|
'(--dry-run)-q[Suppress all output]' \
|
||||||
|
'(--dry-run)--quiet[Suppress all output]' \
|
||||||
|
'--shell-command[Invoke <COMMAND> with the shell used to run recipe lines and backticks]' \
|
||||||
|
'--clear-shell-args[Clear shell arguments]' \
|
||||||
|
'-u[Return list and summary entries in source order]' \
|
||||||
|
'--unsorted[Return list and summary entries in source order]' \
|
||||||
|
'--unstable[Enable unstable features]' \
|
||||||
|
'*-v[Use verbose output]' \
|
||||||
|
'*--verbose[Use verbose output]' \
|
||||||
|
'--changelog[Print changelog]' \
|
||||||
|
'--choose[Select one or more recipes to run using a binary. If `--chooser` is not passed the chooser defaults to the value of $JUST_CHOOSER, falling back to `fzf`]' \
|
||||||
|
'--dump[Print justfile]' \
|
||||||
|
'-e[Edit justfile with editor given by $VISUAL or $EDITOR, falling back to `vim`]' \
|
||||||
|
'--edit[Edit justfile with editor given by $VISUAL or $EDITOR, falling back to `vim`]' \
|
||||||
|
'--evaluate[Evaluate and print all variables. If a variable name is given as an argument, only print that variable'\''s value.]' \
|
||||||
|
'--fmt[Format and overwrite justfile]' \
|
||||||
|
'--init[Initialize new justfile in project root]' \
|
||||||
|
'-l[List available recipes and their arguments]' \
|
||||||
|
'--list[List available recipes and their arguments]' \
|
||||||
|
'--summary[List names of available recipes]' \
|
||||||
|
'--variables[List names of variables]' \
|
||||||
|
'-h[Print help information]' \
|
||||||
|
'--help[Print help information]' \
|
||||||
|
'-V[Print version information]' \
|
||||||
|
'--version[Print version information]' \
|
||||||
|
)
|
||||||
|
|
||||||
|
_arguments "${_arguments_options[@]}" $common \
|
||||||
|
'1: :_just_commands' \
|
||||||
|
'*: :->args' \
|
||||||
|
&& ret=0
|
||||||
|
|
||||||
|
case $state in
|
||||||
|
args)
|
||||||
|
curcontext="${curcontext%:*}-${words[2]}:"
|
||||||
|
|
||||||
|
local lastarg=${words[${#words}]}
|
||||||
|
local recipe
|
||||||
|
|
||||||
|
local cmds; cmds=(
|
||||||
|
${(s: :)$(_call_program commands just --summary)}
|
||||||
|
)
|
||||||
|
|
||||||
|
# Find first recipe name
|
||||||
|
for ((i = 2; i < $#words; i++ )) do
|
||||||
|
if [[ ${cmds[(I)${words[i]}]} -gt 0 ]]; then
|
||||||
|
recipe=${words[i]}
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ $lastarg = */* ]]; then
|
||||||
|
# Arguments contain slash would be recognised as a file
|
||||||
|
_arguments -s -S $common '*:: :_files'
|
||||||
|
elif [[ $lastarg = *=* ]]; then
|
||||||
|
# Arguments contain equal would be recognised as a variable
|
||||||
|
_message "value"
|
||||||
|
elif [[ $recipe ]]; then
|
||||||
|
# Show usage message
|
||||||
|
_message "`just --show $recipe`"
|
||||||
|
# Or complete with other commands
|
||||||
|
#_arguments -s -S $common '*:: :_just_commands'
|
||||||
|
else
|
||||||
|
_arguments -s -S $common '*:: :_just_commands'
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
|
(( $+functions[_just_commands] )) ||
|
||||||
|
_just_commands() {
|
||||||
|
[[ $PREFIX = -* ]] && return 1
|
||||||
|
integer ret=1
|
||||||
|
local variables; variables=(
|
||||||
|
${(s: :)$(_call_program commands just --variables)}
|
||||||
|
)
|
||||||
|
local commands; commands=(
|
||||||
|
${${${(M)"${(f)$(_call_program commands just --list)}":# *}/ ##/}/ ##/:Args: }
|
||||||
|
)
|
||||||
|
|
||||||
|
if compset -P '*='; then
|
||||||
|
case "${${words[-1]%=*}#*=}" in
|
||||||
|
*) _message 'value' && ret=0 ;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
_describe -t variables 'variables' variables -qS "=" && ret=0
|
||||||
|
_describe -t commands 'just commands' commands "$@"
|
||||||
|
fi
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
(( $+functions[_just_variables] )) ||
|
||||||
|
_just_variables() {
|
||||||
|
[[ $PREFIX = -* ]] && return 1
|
||||||
|
integer ret=1
|
||||||
|
local variables; variables=(
|
||||||
|
${(s: :)$(_call_program commands just --variables)}
|
||||||
|
)
|
||||||
|
|
||||||
|
if compset -P '*='; then
|
||||||
|
case "${${words[-1]%=*}#*=}" in
|
||||||
|
*) _message 'value' && ret=0 ;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
_describe -t variables 'variables' variables && ret=0
|
||||||
|
fi
|
||||||
|
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
|
_just "$@"
|
0
system/completions/_pdm
Normal file
0
system/completions/_pdm
Normal file
172
system/completions/_sheldon
Normal file
172
system/completions/_sheldon
Normal file
|
@ -0,0 +1,172 @@
|
||||||
|
#compdef sheldon
|
||||||
|
|
||||||
|
autoload -U is-at-least
|
||||||
|
|
||||||
|
_sheldon() {
|
||||||
|
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[@]}" \
|
||||||
|
'--color=[Output coloring: always, auto, or never]:WHEN: ' \
|
||||||
|
'--home=[The home directory]:PATH: ' \
|
||||||
|
'--config-dir=[The configuration directory]:PATH: ' \
|
||||||
|
'--data-dir=[The data directory]:PATH: ' \
|
||||||
|
'--config-file=[The config file]:PATH: ' \
|
||||||
|
'--lock-file=[The lock file]:PATH: ' \
|
||||||
|
'--clone-dir=[The directory where git sources are cloned to]:PATH: ' \
|
||||||
|
'--download-dir=[The directory where remote sources are downloaded to]:PATH: ' \
|
||||||
|
'-h[Print help information]' \
|
||||||
|
'--help[Print help information]' \
|
||||||
|
'-V[Print version information]' \
|
||||||
|
'--version[Print version information]' \
|
||||||
|
'-q[Suppress any informational output]' \
|
||||||
|
'--quiet[Suppress any informational output]' \
|
||||||
|
'-v[Use verbose output]' \
|
||||||
|
'--verbose[Use verbose output]' \
|
||||||
|
":: :_sheldon_commands" \
|
||||||
|
"*::: :->sheldon" \
|
||||||
|
&& ret=0
|
||||||
|
case $state in
|
||||||
|
(sheldon)
|
||||||
|
words=($line[1] "${words[@]}")
|
||||||
|
(( CURRENT += 1 ))
|
||||||
|
curcontext="${curcontext%:*:*}:sheldon-command-$line[1]:"
|
||||||
|
case $line[1] in
|
||||||
|
(init)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'--shell=[The type of shell, accepted values are: bash, zsh]:SHELL: ' \
|
||||||
|
'-h[Print help information]' \
|
||||||
|
'--help[Print help information]' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(add)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'--git=[Add a clonable Git repository]:URL: ' \
|
||||||
|
'--gist=[Add a clonable Gist snippet]:ID: ' \
|
||||||
|
'--github=[Add a clonable GitHub repository]:REPO: ' \
|
||||||
|
'--remote=[Add a downloadable file]:URL: ' \
|
||||||
|
'--local=[Add a local directory]:DIR: ' \
|
||||||
|
'(--git --remote --local)--proto=[The Git protocol for a Gist or GitHub plugin]:PROTO: ' \
|
||||||
|
'--branch=[Checkout the tip of a branch]:BRANCH: ' \
|
||||||
|
'--rev=[Checkout a specific commit]:SHA: ' \
|
||||||
|
'--tag=[Checkout a specific tag]:TAG: ' \
|
||||||
|
'--dir=[Which sub directory to use in this plugin]:PATH: ' \
|
||||||
|
'*--use=[Which files to use in this plugin]:MATCH: ' \
|
||||||
|
'*--apply=[Templates to apply to this plugin]:TEMPLATE: ' \
|
||||||
|
'-h[Print help information]' \
|
||||||
|
'--help[Print help information]' \
|
||||||
|
':name -- A unique name for this plugin:' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(edit)
|
||||||
|
_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]' \
|
||||||
|
':name -- A unique name for this plugin:' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(lock)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'--update[Update all plugin sources]' \
|
||||||
|
'(--update)--reinstall[Reinstall all plugin sources]' \
|
||||||
|
'-h[Print help information]' \
|
||||||
|
'--help[Print help information]' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(source)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'--relock[Regenerate the lock file]' \
|
||||||
|
'--update[Update all plugin sources (implies --relock)]' \
|
||||||
|
'(--update)--reinstall[Reinstall all plugin sources (implies --relock)]' \
|
||||||
|
'-h[Print help information]' \
|
||||||
|
'--help[Print help information]' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(completions)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'--shell=[The type of shell, accepted values are: bash, zsh]:SHELL: ' \
|
||||||
|
'-h[Print help information]' \
|
||||||
|
'--help[Print help information]' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(version)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'-h[Print help information]' \
|
||||||
|
'--help[Print help information]' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
(( $+functions[_sheldon_commands] )) ||
|
||||||
|
_sheldon_commands() {
|
||||||
|
local commands; commands=(
|
||||||
|
'init:Initialize a new config file' \
|
||||||
|
'add:Add a new plugin to the config file' \
|
||||||
|
'edit:Open up the config file in the default editor' \
|
||||||
|
'remove:Remove a plugin from the config file' \
|
||||||
|
'lock:Install the plugins sources and generate the lock file' \
|
||||||
|
'source:Generate and print out the script' \
|
||||||
|
'completions:Generate completions for the given shell' \
|
||||||
|
'version:Prints detailed version information' \
|
||||||
|
)
|
||||||
|
_describe -t commands 'sheldon commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_sheldon__add_commands] )) ||
|
||||||
|
_sheldon__add_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'sheldon add commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_sheldon__completions_commands] )) ||
|
||||||
|
_sheldon__completions_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'sheldon completions commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_sheldon__edit_commands] )) ||
|
||||||
|
_sheldon__edit_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'sheldon edit commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_sheldon__init_commands] )) ||
|
||||||
|
_sheldon__init_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'sheldon init commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_sheldon__lock_commands] )) ||
|
||||||
|
_sheldon__lock_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'sheldon lock commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_sheldon__remove_commands] )) ||
|
||||||
|
_sheldon__remove_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'sheldon remove commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_sheldon__source_commands] )) ||
|
||||||
|
_sheldon__source_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'sheldon source commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_sheldon__version_commands] )) ||
|
||||||
|
_sheldon__version_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'sheldon version commands' commands "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
_sheldon "$@"
|
241
system/completions/_zellij
Normal file
241
system/completions/_zellij
Normal file
|
@ -0,0 +1,241 @@
|
||||||
|
#compdef zellij
|
||||||
|
|
||||||
|
autoload -U is-at-least
|
||||||
|
|
||||||
|
_zellij() {
|
||||||
|
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[@]}" \
|
||||||
|
'--max-panes=[Maximum panes on screen, caution: opening more panes will close old ones]:MAX_PANES: ' \
|
||||||
|
'--data-dir=[Change where zellij looks for layouts and plugins]:DATA_DIR: ' \
|
||||||
|
'--server=[Run server listening at the specified socket path]:SERVER: ' \
|
||||||
|
'-s+[Specify name of a new session]:SESSION: ' \
|
||||||
|
'--session=[Specify name of a new session]:SESSION: ' \
|
||||||
|
'-l+[Name of a layout file in the layout directory]:LAYOUT: ' \
|
||||||
|
'--layout=[Name of a layout file in the layout directory]:LAYOUT: ' \
|
||||||
|
'--layout-path=[Path to a layout yaml file]:LAYOUT_PATH: ' \
|
||||||
|
'-c+[Change where zellij looks for the configuration file]:CONFIG: ' \
|
||||||
|
'--config=[Change where zellij looks for the configuration file]:CONFIG: ' \
|
||||||
|
'--config-dir=[Change where zellij looks for the configuration directory]:CONFIG_DIR: ' \
|
||||||
|
'-h[Print help information]' \
|
||||||
|
'--help[Print help information]' \
|
||||||
|
'-V[Print version information]' \
|
||||||
|
'--version[Print version information]' \
|
||||||
|
'-d[]' \
|
||||||
|
'--debug[]' \
|
||||||
|
":: :_zellij_commands" \
|
||||||
|
"*::: :->zellij" \
|
||||||
|
&& ret=0
|
||||||
|
case $state in
|
||||||
|
(zellij)
|
||||||
|
words=($line[1] "${words[@]}")
|
||||||
|
(( CURRENT += 1 ))
|
||||||
|
curcontext="${curcontext%:*:*}:zellij-command-$line[1]:"
|
||||||
|
case $line[1] in
|
||||||
|
(options)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'--simplified-ui=[Allow plugins to use a more simplified layout that is compatible with more fonts (true or false)]:SIMPLIFIED_UI: ' \
|
||||||
|
'--theme=[Set the default theme]:THEME: ' \
|
||||||
|
'--default-mode=[Set the default mode]:DEFAULT_MODE:((normal\:"In `Normal` mode, input is always written to the terminal, except for the shortcuts leading to other modes"
|
||||||
|
locked\:"In `Locked` mode, input is always written to the terminal and all shortcuts are disabled except the one leading back to normal mode"
|
||||||
|
resize\:"`Resize` mode allows resizing the different existing panes"
|
||||||
|
pane\:"`Pane` mode allows creating and closing panes, as well as moving between them"
|
||||||
|
tab\:"`Tab` mode allows creating and closing tabs, as well as moving between them"
|
||||||
|
scroll\:"`Scroll` mode allows scrolling up and down within a pane"
|
||||||
|
rename-tab\:"`RenameTab` mode allows assigning a new name to a tab"
|
||||||
|
rename-pane\:"`RenamePane` mode allows assigning a new name to a pane"
|
||||||
|
session\:"`Session` mode allows detaching sessions"
|
||||||
|
move\:"`Move` mode allows moving the different existing panes within a tab"
|
||||||
|
prompt\:"`Prompt` mode allows interacting with active prompts"
|
||||||
|
tmux\:"`Tmux` mode allows for basic tmux keybindings functionality"))' \
|
||||||
|
'--default-shell=[Set the default shell]:DEFAULT_SHELL: ' \
|
||||||
|
'--layout-dir=[Set the layout_dir, defaults to subdirectory of config dir]:LAYOUT_DIR: ' \
|
||||||
|
'--mouse-mode=[Set the handling of mouse events (true or false) Can be temporarily bypassed by the \[SHIFT\] key]:MOUSE_MODE: ' \
|
||||||
|
'--pane-frames=[Set display of the pane frames (true or false)]:PANE_FRAMES: ' \
|
||||||
|
'--mirror-session=[Mirror session when multiple users are connected (true or false)]:MIRROR_SESSION: ' \
|
||||||
|
'--on-force-close=[Set behaviour on force close (quit or detach)]:ON_FORCE_CLOSE:(quit detach)' \
|
||||||
|
'--scroll-buffer-size=[]:SCROLL_BUFFER_SIZE: ' \
|
||||||
|
'--copy-command=[Switch to using a user supplied command for clipboard instead of OSC52]:COPY_COMMAND: ' \
|
||||||
|
'(--copy-command)--copy-clipboard=[OSC52 destination clipboard]:COPY_CLIPBOARD:(system primary)' \
|
||||||
|
'(--mouse-mode)--disable-mouse-mode[Disable handling of mouse events]' \
|
||||||
|
'(--pane-frames)--no-pane-frames[Disable display of pane frames]' \
|
||||||
|
'-h[Print help information]' \
|
||||||
|
'--help[Print help information]' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(setup)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'--dump-layout=[Dump the specified layout file to stdout]:DUMP_LAYOUT: ' \
|
||||||
|
'--generate-completion=[Generates completion for the specified shell]:SHELL: ' \
|
||||||
|
'--dump-config[Dump the default configuration file to stdout]' \
|
||||||
|
'--clean[Disables loading of configuration file at default location, loads the defaults that zellij ships with]' \
|
||||||
|
'--check[Checks the configuration of zellij and displays currently used directories]' \
|
||||||
|
'-h[Print help information]' \
|
||||||
|
'--help[Print help information]' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(list-sessions)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'-h[Print help information]' \
|
||||||
|
'--help[Print help information]' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(attach)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'--index=[Number of the session index in the active sessions ordered creation date]:INDEX: ' \
|
||||||
|
'-c[Create a session if one does not exist]' \
|
||||||
|
'--create[Create a session if one does not exist]' \
|
||||||
|
'-h[Print help information]' \
|
||||||
|
'--help[Print help information]' \
|
||||||
|
'::session-name -- Name of the session to attach to:' \
|
||||||
|
":: :_zellij__attach_commands" \
|
||||||
|
"*::: :->attach" \
|
||||||
|
&& ret=0
|
||||||
|
|
||||||
|
case $state in
|
||||||
|
(attach)
|
||||||
|
words=($line[2] "${words[@]}")
|
||||||
|
(( CURRENT += 1 ))
|
||||||
|
curcontext="${curcontext%:*:*}:zellij-attach-command-$line[2]:"
|
||||||
|
case $line[2] in
|
||||||
|
(options)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'--simplified-ui=[Allow plugins to use a more simplified layout that is compatible with more fonts (true or false)]:SIMPLIFIED_UI: ' \
|
||||||
|
'--theme=[Set the default theme]:THEME: ' \
|
||||||
|
'--default-mode=[Set the default mode]:DEFAULT_MODE:((normal\:"In `Normal` mode, input is always written to the terminal, except for the shortcuts leading to other modes"
|
||||||
|
locked\:"In `Locked` mode, input is always written to the terminal and all shortcuts are disabled except the one leading back to normal mode"
|
||||||
|
resize\:"`Resize` mode allows resizing the different existing panes"
|
||||||
|
pane\:"`Pane` mode allows creating and closing panes, as well as moving between them"
|
||||||
|
tab\:"`Tab` mode allows creating and closing tabs, as well as moving between them"
|
||||||
|
scroll\:"`Scroll` mode allows scrolling up and down within a pane"
|
||||||
|
rename-tab\:"`RenameTab` mode allows assigning a new name to a tab"
|
||||||
|
rename-pane\:"`RenamePane` mode allows assigning a new name to a pane"
|
||||||
|
session\:"`Session` mode allows detaching sessions"
|
||||||
|
move\:"`Move` mode allows moving the different existing panes within a tab"
|
||||||
|
prompt\:"`Prompt` mode allows interacting with active prompts"
|
||||||
|
tmux\:"`Tmux` mode allows for basic tmux keybindings functionality"))' \
|
||||||
|
'--default-shell=[Set the default shell]:DEFAULT_SHELL: ' \
|
||||||
|
'--layout-dir=[Set the layout_dir, defaults to subdirectory of config dir]:LAYOUT_DIR: ' \
|
||||||
|
'--mouse-mode=[Set the handling of mouse events (true or false) Can be temporarily bypassed by the \[SHIFT\] key]:MOUSE_MODE: ' \
|
||||||
|
'--pane-frames=[Set display of the pane frames (true or false)]:PANE_FRAMES: ' \
|
||||||
|
'--mirror-session=[Mirror session when multiple users are connected (true or false)]:MIRROR_SESSION: ' \
|
||||||
|
'--on-force-close=[Set behaviour on force close (quit or detach)]:ON_FORCE_CLOSE:(quit detach)' \
|
||||||
|
'--scroll-buffer-size=[]:SCROLL_BUFFER_SIZE: ' \
|
||||||
|
'--copy-command=[Switch to using a user supplied command for clipboard instead of OSC52]:COPY_COMMAND: ' \
|
||||||
|
'(--copy-command)--copy-clipboard=[OSC52 destination clipboard]:COPY_CLIPBOARD:(system primary)' \
|
||||||
|
'--version[Print version information]' \
|
||||||
|
'(--mouse-mode)--disable-mouse-mode[Disable handling of mouse events]' \
|
||||||
|
'(--pane-frames)--no-pane-frames[Disable display of pane frames]' \
|
||||||
|
'-h[Print help information]' \
|
||||||
|
'--help[Print help information]' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(help)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'--version[Print version information]' \
|
||||||
|
'-h[Print help information]' \
|
||||||
|
'--help[Print help information]' \
|
||||||
|
'*::subcommand -- The subcommand whose help message to display:' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
(kill-session)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'-h[Print help information]' \
|
||||||
|
'--help[Print help information]' \
|
||||||
|
'::target-session -- Name of target session:' \
|
||||||
|
&& ret=0
|
||||||
|
;;
|
||||||
|
(kill-all-sessions)
|
||||||
|
_arguments "${_arguments_options[@]}" \
|
||||||
|
'-y[Automatic yes to prompts]' \
|
||||||
|
'--yes[Automatic yes to prompts]' \
|
||||||
|
'-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
|
||||||
|
}
|
||||||
|
|
||||||
|
(( $+functions[_zellij_commands] )) ||
|
||||||
|
_zellij_commands() {
|
||||||
|
local commands; commands=(
|
||||||
|
'options:Change the behaviour of zellij' \
|
||||||
|
'setup:Setup zellij and check its configuration' \
|
||||||
|
'list-sessions:List active sessions' \
|
||||||
|
'attach:Attach to session' \
|
||||||
|
'kill-session:Kill the specific session' \
|
||||||
|
'kill-all-sessions:Kill all sessions' \
|
||||||
|
'help:Print this message or the help of the given subcommand(s)' \
|
||||||
|
)
|
||||||
|
_describe -t commands 'zellij commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_zellij__attach_commands] )) ||
|
||||||
|
_zellij__attach_commands() {
|
||||||
|
local commands; commands=(
|
||||||
|
'options:Change the behaviour of zellij' \
|
||||||
|
'help:Print this message or the help of the given subcommand(s)' \
|
||||||
|
)
|
||||||
|
_describe -t commands 'zellij attach commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_zellij__attach__help_commands] )) ||
|
||||||
|
_zellij__attach__help_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'zellij attach help commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_zellij__help_commands] )) ||
|
||||||
|
_zellij__help_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'zellij help commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_zellij__kill-all-sessions_commands] )) ||
|
||||||
|
_zellij__kill-all-sessions_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'zellij kill-all-sessions commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_zellij__kill-session_commands] )) ||
|
||||||
|
_zellij__kill-session_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'zellij kill-session commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_zellij__list-sessions_commands] )) ||
|
||||||
|
_zellij__list-sessions_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'zellij list-sessions commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_zellij__attach__options_commands] )) ||
|
||||||
|
_zellij__attach__options_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'zellij attach options commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_zellij__options_commands] )) ||
|
||||||
|
_zellij__options_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'zellij options commands' commands "$@"
|
||||||
|
}
|
||||||
|
(( $+functions[_zellij__setup_commands] )) ||
|
||||||
|
_zellij__setup_commands() {
|
||||||
|
local commands; commands=()
|
||||||
|
_describe -t commands 'zellij setup commands' commands "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
_zellij "$@"
|
16
system/completions/update.sh
Executable file
16
system/completions/update.sh
Executable file
|
@ -0,0 +1,16 @@
|
||||||
|
#!/usr/bin/env zsh
|
||||||
|
|
||||||
|
gen() {
|
||||||
|
if is-executable $1;then
|
||||||
|
echo "$1 updated"
|
||||||
|
"$@" > "_$argv[1]"
|
||||||
|
else;
|
||||||
|
echo "skipping $1"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "GENERATING COMPLETION SCRIPTS"
|
||||||
|
echo "-----------------------------"
|
||||||
|
gen sheldon completions --shell zsh
|
||||||
|
gen just --completions zsh
|
||||||
|
gen zellij setup --generate-completion zsh
|
|
@ -10,6 +10,9 @@ export SAVEHIST=4096
|
||||||
export HISTCONTROL=ignoredups:erasedups
|
export HISTCONTROL=ignoredups:erasedups
|
||||||
export LESS='-R'
|
export LESS='-R'
|
||||||
|
|
||||||
|
# add completions to fpath
|
||||||
|
fpath=($DOTFILES_DIR/system/completions $fpath)
|
||||||
|
|
||||||
# Append to the history file, rather than overwriting it
|
# Append to the history file, rather than overwriting it
|
||||||
setopt APPEND_HISTORY
|
setopt APPEND_HISTORY
|
||||||
|
|
||||||
|
@ -49,10 +52,6 @@ if is-executable lf; then
|
||||||
fi
|
fi
|
||||||
# ----------------
|
# ----------------
|
||||||
|
|
||||||
# nvm settings
|
|
||||||
#export NVM_DIR="$HOME/.nvm"
|
|
||||||
#[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
|
||||||
#[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
|
|
||||||
if is-executable fnm; then
|
if is-executable fnm; then
|
||||||
eval "$(fnm env)"
|
eval "$(fnm env)"
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in a new issue