diff options
Diffstat (limited to 'etc/completion/completion.zsh')
-rw-r--r-- | etc/completion/completion.zsh | 145 |
1 files changed, 144 insertions, 1 deletions
diff --git a/etc/completion/completion.zsh b/etc/completion/completion.zsh index 0ff59208..a62077ed 100644 --- a/etc/completion/completion.zsh +++ b/etc/completion/completion.zsh @@ -1 +1,144 @@ -compdef _gnu_generic delta +#compdef delta + +autoload -U is-at-least + +_delta() { + 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[@]}" \ +'--blame-code-style=[Style string for the code section of a git blame line]:STYLE: ' \ +'--blame-format=[Format string for git blame commit metadata]:FMT: ' \ +'--blame-palette=[Background colors used for git blame lines (space-separated string)]:COLORS: ' \ +'--blame-separator-format=[Separator between the blame format and the code section of a git blame line]:FMT: ' \ +'--blame-separator-style=[Style string for the blame-separator-format]:STYLE: ' \ +'--blame-timestamp-format=[Format of \`git blame\` timestamp in raw git output received by delta]:FMT: ' \ +'--blame-timestamp-output-format=[Format string for git blame timestamp output]:FMT: ' \ +'--config=[Load the config file at PATH instead of ~/.gitconfig]:PATH:_files' \ +'--commit-decoration-style=[Style string for the commit hash decoration]:STYLE: ' \ +'--commit-regex=[Regular expression used to identify the commit line when parsing git output]:REGEX: ' \ +'--commit-style=[Style string for the commit hash line]:STYLE: ' \ +'--default-language=[Default language used for syntax highlighting]:LANG: ' \ +'--diff-stat-align-width=[Width allocated for file paths in a diff stat section]:N: ' \ +'--features=[Names of delta features to activate (space-separated)]:FEATURES: ' \ +'--file-added-label=[Text to display before an added file path]:STRING: ' \ +'--file-copied-label=[Text to display before a copied file path]:STRING: ' \ +'--file-decoration-style=[Style string for the file decoration]:STYLE: ' \ +'--file-modified-label=[Text to display before a modified file path]:STRING: ' \ +'--file-removed-label=[Text to display before a removed file path]:STRING: ' \ +'--file-renamed-label=[Text to display before a renamed file path]:STRING: ' \ +'--file-style=[Style string for the file section]:STYLE: ' \ +'--file-transformation=[Sed-style command transforming file paths for display]:SED_CMD: ' \ +'--generate-completion=[Print completion file for the given shell]:GENERATE_COMPLETION:(bash elvish fish powershell zsh)' \ +'--grep-context-line-style=[Style string for non-matching lines of grep output]:STYLE: ' \ +'--grep-file-style=[Style string for file paths in grep output]:STYLE: ' \ +'--grep-header-decoration-style=[Style string for the header decoration in grep output]:STYLE: ' \ +'--grep-header-file-style=[Style string for the file path part of the header in grep output]:STYLE: ' \ +'--grep-line-number-style=[Style string for line numbers in grep output]:STYLE: ' \ +'--grep-output-type=[Grep output format. Possible values\: "ripgrep" - file name printed once, followed by matching lines within that file, each preceded by a line number. "classic" - file name\:line number, followed by matching line. Default is "ripgrep" if \`rg --json\` format is detected, otherwise "classic"]:OUTPUT_TYPE:(ripgrep classic)' \ +'--grep-match-line-style=[Style string for matching lines of grep output]:STYLE: ' \ +'--grep-match-word-style=[Style string for the matching substrings within a matching line of grep output]:STYLE: ' \ +'--grep-separator-symbol=[Separator symbol printed after the file path and line number in grep output]:STRING: ' \ +'--hunk-header-decoration-style=[Style string for the hunk-header decoration]:STYLE: ' \ +'--hunk-header-file-style=[Style string for the file path part of the hunk-header]:STYLE: ' \ +'--hunk-header-line-number-style=[Style string for the line number part of the hunk-header]:STYLE: ' \ +'--hunk-header-style=[Style string for the hunk-header]:STYLE: ' \ +'--hunk-label=[Text to display before a hunk header]:STRING: ' \ +'--hyperlinks-commit-link-format=[Format string for commit hyperlinks (requires --hyperlinks)]:FMT: ' \ +'--hyperlinks-file-link-format=[Format string for file hyperlinks (requires --hyperlinks)]:FMT: ' \ +'--inline-hint-style=[Style string for short inline hint text]:STYLE: ' \ +'--inspect-raw-lines=[Kill-switch for --color-moved support]:true|false:(true false)' \ +'--line-buffer-size=[Size of internal line buffer]:N: ' \ +'--line-fill-method=[Line-fill method in side-by-side mode]:STRING:(ansi spaces)' \ +'--line-numbers-left-format=[Format string for the left column of line numbers]:FMT: ' \ +'--line-numbers-left-style=[Style string for the left column of line numbers]:STYLE: ' \ +'--line-numbers-minus-style=[Style string for line numbers in the old (minus) version of the file]:STYLE: ' \ +'--line-numbers-plus-style=[Style string for line numbers in the new (plus) version of the file]:STYLE: ' \ +'--line-numbers-right-format=[Format string for the right column of line numbers]:FMT: ' \ +'--line-numbers-right-style=[Style string for the right column of line numbers]:STYLE: ' \ +'--line-numbers-zero-style=[Style string for line numbers in unchanged (zero) lines]:STYLE: ' \ +'--map-styles=[Map styles encountered in raw input to desired output styles]:STYLES_MAP: ' \ +'--max-line-distance=[Maximum line pair distance parameter in within-line diff algorithm]:DIST: ' \ +'--max-line-length=[Truncate lines longer than this]:N: ' \ +'--merge-conflict-begin-symbol=[String marking the beginning of a merge conflict region]:STRING: ' \ +'--merge-conflict-end-symbol=[String marking the end of a merge conflict region]:STRING: ' \ +'--merge-conflict-ours-diff-header-decoration-style=[Style string for the decoration of the header above the '\''ours'\'' merge conflict diff]:STYLE: ' \ +'--merge-conflict-ours-diff-header-style=[Style string for the header above the '\''ours'\'' branch merge conflict diff]:STYLE: ' \ +'--merge-conflict-theirs-diff-header-decoration-style=[Style string for the decoration of the header above the '\''theirs'\'' merge conflict diff]:STYLE: ' \ +'--merge-conflict-theirs-diff-header-style=[Style string for the header above the '\''theirs'\'' branch merge conflict diff]:STYLE: ' \ +'--minus-empty-line-marker-style=[Style string for removed empty line marker]:STYLE: ' \ +'--minus-emph-style=[Style string for emphasized sections of removed lines]:STYLE: ' \ +'--minus-non-emph-style=[Style string for non-emphasized sections of removed lines that have an emphasized section]:STYLE: ' \ +'--minus-style=[Style string for removed lines]:STYLE: ' \ +'--navigate-regex=[Regular expression defining navigation stop points]:REGEX: ' \ +'--pager=[Which pager to use]:CMD: ' \ +'--paging=[Whether to use a pager when displaying output]:auto|always|never:(auto always never)' \ +'--plus-emph-style=[Style string for emphasized sections of added lines]:STYLE: ' \ +'--plus-empty-line-marker-style=[Style string for added empty line marker]:STYLE: ' \ +'--plus-non-emph-style=[Style string for non-emphasized sections of added lines that have an emphasized section]:STYLE: ' \ +'--plus-style=[Style string for added lines]:STYLE: ' \ +'--right-arrow=[Text to display with a changed file path]:STRING: ' \ +'--syntax-theme=[The syntax-highlighting theme to use]:SYNTAX_THEME: ' \ +'--tabs=[The number of spaces to replace tab characters with]:N: ' \ +'--true-color=[Whether to emit 24-bit ("true color") RGB color codes]:auto|always|never:(auto always never)' \ +'--whitespace-error-style=[Style string for whitespace errors]:STYLE: ' \ +'-w+[The width of underline/overline decorations]:N: ' \ +'--width=[The width of underline/overline decorations]:N: ' \ +'--word-diff-regex=[Regular expression defining a '\''word'\'' in within-line diff algorithm]:REGEX: ' \ +'--wrap-left-symbol=[End-of-line wrapped content symbol (left-aligned)]:STRING: ' \ +'--wrap-max-lines=[How often a line should be wrapped if it does not fit]:N: ' \ +'--wrap-right-percent=[Threshold for right-aligning wrapped content]:PERCENT: ' \ +'--wrap-right-prefix-symbol=[Pre-wrapped content symbol (right-aligned)]:STRING: ' \ +'--wrap-right-symbol=[End-of-line wrapped content symbol (right-aligned)]:STRING: ' \ +'--zero-style=[Style string for unchanged lines]:STYLE: ' \ +'--24-bit-color=[Deprecated\: use --true-color]:auto|always|never:(auto always never)' \ +'--color-only[Do not alter the input structurally in any way]' \ +'--dark[Use default colors appropriate for a dark terminal background]' \ +'--diff-highlight[Emulate diff-highlight]' \ +'--diff-so-fancy[Emulate diff-so-fancy]' \ +'--hyperlinks[Render commit hashes, file names, and line numbers as hyperlinks]' \ +'--keep-plus-minus-markers[Prefix added/removed lines with a +/- character, as git does]' \ +'--light[Use default colors appropriate for a light terminal background]' \ +'-n[Display line numbers next to the diff]' \ +'--line-numbers[Display line numbers next to the diff]' \ +'--list-languages[List supported languages and associated file extensions]' \ +'--list-syntax-themes[List available syntax-highlighting color themes]' \ +'--navigate[Activate diff navigation]' \ +'--no-gitconfig[Do not read any settings from git config]' \ +'--parse-ansi[Display ANSI color escape sequences in human-readable form]' \ +'--raw[Do not alter the input in any way]' \ +'--relative-paths[Output all file paths relative to the current directory]' \ +'--show-colors[Show available named colors]' \ +'--show-config[Display the active values for all Delta options]' \ +'--show-syntax-themes[Show example diff for available syntax-highlighting themes]' \ +'--show-themes[Show example diff for available delta themes]' \ +'-s[Display diffs in side-by-side layout]' \ +'--side-by-side[Display diffs in side-by-side layout]' \ +'-h[Print help (see more with '\''--help'\'')]' \ +'--help[Print help (see more with '\''--help'\'')]' \ +'-V[Print version]' \ +'--version[Print version]' \ +'::minus_file -- First file to be compared when delta is being used in diff mode:_files' \ +'::plus_file -- Second file to be compared when delta is being used in diff mode:_files' \ +&& ret=0 +} + +(( $+functions[_delta_commands] )) || +_delta_commands() { + local commands; commands=() + _describe -t commands 'delta commands' commands "$@" +} + +if [ "$funcstack[1]" = "_delta" ]; then + _delta "$@" +else + compdef _delta delta +fi |