summaryrefslogtreecommitdiffstats
path: root/etc/completion/completion.zsh
diff options
context:
space:
mode:
Diffstat (limited to 'etc/completion/completion.zsh')
-rw-r--r--etc/completion/completion.zsh145
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