summaryrefslogtreecommitdiff
path: root/plugins/ag
diff options
context:
space:
mode:
authorTuowen Zhao <ztuowen@gmail.com>2021-07-11 19:58:51 -0600
committerTuowen Zhao <ztuowen@gmail.com>2021-07-11 19:58:51 -0600
commit617ed3bd9f3d9519fe2354941f3dbf15b0c712ee (patch)
treecaf617b35d3f5f7b5786483eedfcda9361dca108 /plugins/ag
parent0144641b7d8e4e6ff6ce153039b5a827f5347904 (diff)
parent36f444ed7325720ec05f182781ec7d6c9a4d675c (diff)
downloadzsh-617ed3bd9f3d9519fe2354941f3dbf15b0c712ee.tar.gz
zsh-617ed3bd9f3d9519fe2354941f3dbf15b0c712ee.tar.bz2
zsh-617ed3bd9f3d9519fe2354941f3dbf15b0c712ee.zip
Merge remote-tracking branch 'origin/master'
Diffstat (limited to 'plugins/ag')
-rw-r--r--plugins/ag/README.md13
-rw-r--r--plugins/ag/_ag66
2 files changed, 79 insertions, 0 deletions
diff --git a/plugins/ag/README.md b/plugins/ag/README.md
new file mode 100644
index 000000000..6acc54067
--- /dev/null
+++ b/plugins/ag/README.md
@@ -0,0 +1,13 @@
+# The Silver Searcher
+
+This plugin provides completion support for [`ag`](https://github.com/ggreer/the_silver_searcher).
+
+To use it, add ag to the plugins array in your zshrc file.
+
+```zsh
+plugins=(... aws)
+```
+
+## INSTALLATION NOTES
+
+Besides oh-my-zsh, `ag` needs to be installed by following these steps: https://github.com/ggreer/the_silver_searcher#installing.
diff --git a/plugins/ag/_ag b/plugins/ag/_ag
new file mode 100644
index 000000000..25b0c27a7
--- /dev/null
+++ b/plugins/ag/_ag
@@ -0,0 +1,66 @@
+#compdef ag
+#autoload
+
+typeset -A opt_args
+
+# Took the liberty of not listing every option… specially aliases and -D
+_ag () {
+ local -a _1st_arguments
+ _1st_arguments=(
+ '--ackmate:Print results in AckMate-parseable format'
+ {'-A','--after'}':[LINES] Print lines after match (Default: 2)'
+ {'-B','--before'}':[LINES] Print lines before match (Default: 2)'
+ '--break:Print newlines between matches in different files'
+ '--nobreak:Do not print newlines between matches in different files'
+ {'-c','--count'}':Only print the number of matches in each file'
+ '--color:Print color codes in results (Default: On)'
+ '--nocolor:Do not print color codes in results'
+ '--color-line-number:Color codes for line numbers (Default: 1;33)'
+ '--color-match:Color codes for result match numbers (Default: 30;43)'
+ '--color-path:Color codes for path names (Default: 1;32)'
+ '--column:Print column numbers in results'
+ {'-H','--heading'}':Print file names (On unless searching a single file)'
+ '--noheading:Do not print file names (On unless searching a single file)'
+ '--line-numbers:Print line numbers even for streams'
+ {'-C','--context'}':[LINES] Print lines before and after matches (Default: 2)'
+ '-g:[PATTERN] Print filenames matching PATTERN'
+ {'-l','--files-with-matches'}':Only print filenames that contain matches'
+ {'-L','--files-without-matches'}':Only print filenames that do not contain matches'
+ '--no-numbers:Do not print line numbers'
+ {'-o','--only-matching'}':Prints only the matching part of the lines'
+ '--print-long-lines:Print matches on very long lines (Default: 2k characters)'
+ '--passthrough:When searching a stream, print all lines even if they do not match'
+ '--silent:Suppress all log messages, including errors'
+ '--stats:Print stats (files scanned, time taken, etc.)'
+ '--vimgrep:Print results like vim :vimgrep /pattern/g would'
+ {'-0','--null'}':Separate filenames with null (for "xargs -0")'
+
+ {'-a','--all-types'}':Search all files (does not include hidden files / .gitignore)'
+ '--depth:[NUM] Search up to NUM directories deep (Default: 25)'
+ {'-f','--follow'}':Follow symlinks'
+ {'-G','--file-search-regex'}':[PATTERN] Limit search to filenames matching PATTERN'
+ '--hidden:Search hidden files (obeys .*ignore files)'
+ {'-i','--ignore-case'}':Match case insensitively'
+ '--ignore:[PATTERN] Ignore files/directories matching PATTERN'
+ {'-m','--max-count'}':[NUM] Skip the rest of a file after NUM matches (Default: 10k)'
+ {'-p','--path-to-agignore'}':[PATH] Use .agignore file at PATH'
+ {'-Q','--literal'}':Do not parse PATTERN as a regular expression'
+ {'-s','--case-sensitive'}':Match case'
+ {'-S','--smart-case'}':Insensitive match unless PATTERN has uppercase (Default: On)'
+ '--search-binary:Search binary files for matches'
+ {'-t','--all-text'}':Search all text files (Hidden files not included)'
+ {'-u','--unrestricted'}':Search all files (ignore .agignore and _all_)'
+ {'-U','--skip-vcs-ignores'}':Ignore VCS files (stil obey .agignore)'
+ {'-v','--invert-match'}':Invert match'
+ {'-w','--word-regexp'}':Only match whole words'
+ {'-z','--search-zip'}':Search contents of compressed (e.g., gzip) files'
+
+ '--list-file-types:list of supported file types'
+ )
+
+ if [[ $words[-1] =~ "^-" ]]; then
+ _describe -t commands "ag options" _1st_arguments && ret=0
+ else
+ _files && ret=0
+ fi
+}