updated to use ack completion module style version checking
-- instead of looking at major and minor, we'll do what the ack completion module does: produce an x.y version number that we then compare directly to, to avoid complicated "if major version OR minor version" checking
This commit is contained in:
parent
febd404323
commit
080d0b70f1
36
src/_ag
36
src/_ag
|
@ -40,20 +40,12 @@
|
|||
# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
|
||||
# vim: ft=zsh sw=2 ts=2 et
|
||||
# ------------------------------------------------------------------------------
|
||||
_ag_minor_version() {
|
||||
local version
|
||||
version=( $($words[1] --version) )
|
||||
version=${version[@]:2:1}
|
||||
version=( "${(@s/./)version}" )
|
||||
echo "${version[2]}"
|
||||
}
|
||||
|
||||
_ag_major_version() {
|
||||
_ag_version() {
|
||||
local version
|
||||
version=( $($words[1] --version) )
|
||||
version=${version[@]:2:1}
|
||||
version=( "${(@s/./)version}" )
|
||||
echo "${version[1]}"
|
||||
version=${${(z)${version[1]}}[2]}
|
||||
echo $version
|
||||
}
|
||||
|
||||
|
||||
|
@ -78,10 +70,9 @@ _ag_add_file_types() {
|
|||
# Add version appropriate options above base
|
||||
# Modifies the global $AG_OPTS array
|
||||
_ag_add_version_opts() {
|
||||
local minor=$(_ag_minor_version)
|
||||
local major=$(_ag_major_version)
|
||||
local ag_version=$(_ag_version)
|
||||
|
||||
if [[ $major -ge 1 || $minor -gt 21 ]];then
|
||||
if [[ ag_version > 0.22 ]]; then
|
||||
_ag_add_file_types
|
||||
AG_OPTS+=(
|
||||
'(- 1 *)--list-file-types[list supported filetypes to search]'
|
||||
|
@ -89,19 +80,20 @@ _ag_add_version_opts() {
|
|||
)
|
||||
fi
|
||||
|
||||
if [[ $major -ge 1 || $minor -gt 22 ]];then
|
||||
|
||||
if [[ ag_version > 0.22 ]]; then
|
||||
AG_OPTS+=(
|
||||
'(-z --search-zip)'{-z,--search-zip}'[search contents of compressed files]'
|
||||
)
|
||||
fi
|
||||
|
||||
if [[ $major -lt 1 && $minor -le 24 ]];then
|
||||
if [[ ag_version <= 0.24 ]]; then
|
||||
AG_OPTS+=(
|
||||
'(-s --case-sensitive)'{-s,--case-sensitive}'[match case sensitively]'
|
||||
'(--noheading --heading)'{--noheading,--heading}'[print file names above matching contents]'
|
||||
)
|
||||
fi
|
||||
if [[ $major -ge 1 || $minor -gt 24 ]];then
|
||||
if [[ ag_version > 0.24 ]]; then
|
||||
AG_OPTS+=(
|
||||
'(-s --case-sensitive)'{-s,--case-sensitive}'[Match case sensitively. Default on.]'
|
||||
'(-H --noheading --heading)'{-H,--noheading,--heading}'[print file names above matching contents]'
|
||||
|
@ -109,18 +101,18 @@ _ag_add_version_opts() {
|
|||
)
|
||||
fi
|
||||
|
||||
if [[ $major -ge 1 || $minor -gt 26 ]];then
|
||||
if [[ ag_version > 0.26 ]]; then
|
||||
AG_OPTS+=(
|
||||
'(-0 --null --print0)'{-0,--null,--print0}'[separate the filenames with \\0, rather than \\n]'
|
||||
)
|
||||
fi
|
||||
|
||||
if [[ $major -lt 1 && $minor -le 27 ]];then
|
||||
if [[ ag_version <= 0.27 ]]; then
|
||||
AG_OPTS+=(
|
||||
'--depth[Search up to NUM directories deep. Default is 25.]:number'
|
||||
)
|
||||
fi
|
||||
if [[ $major -ge 1 || $minor -gt 27 ]];then
|
||||
if [[ ag_version > 0.27 ]]; then
|
||||
AG_OPTS+=(
|
||||
'(-c --count)'{-c,--count}'[only print the number of matches in each file]'
|
||||
'--depth[Search up to NUM directories deep, -1 for unlimited. Default is 25.]:number'
|
||||
|
@ -128,12 +120,12 @@ _ag_add_version_opts() {
|
|||
)
|
||||
fi
|
||||
|
||||
if [[ $major -lt 1 && $minor -le 28 ]];then
|
||||
if [[ ag_version <= 0.28 ]]; then
|
||||
AG_OPTS+=(
|
||||
'(--no-numbers)--no-numbers[don´t show line numbers]'
|
||||
)
|
||||
fi
|
||||
if [[ $major -ge 1 || $minor -gt 28 ]];then
|
||||
if [[ ag_version > 0.28 ]]; then
|
||||
AG_OPTS+=(
|
||||
'(--nofilename --filename)'{--nofilename,--filename}'[Print file names. Default on, except when searching a single file.]'
|
||||
'(--nonumbers --numbers)'{--nonumbers,--numbers}'[Print line numbers. Default is to omit line numbers when searching streams]'
|
||||
|
|
Loading…
Reference in New Issue