summaryrefslogtreecommitdiff
path: root/etc/completions/__git_files
diff options
context:
space:
mode:
Diffstat (limited to 'etc/completions/__git_files')
-rw-r--r--etc/completions/__git_files39
1 files changed, 0 insertions, 39 deletions
diff --git a/etc/completions/__git_files b/etc/completions/__git_files
deleted file mode 100644
index 062aefc..0000000
--- a/etc/completions/__git_files
+++ /dev/null
@@ -1,39 +0,0 @@
-#autoload
-local expl files ls_opts opts gitdir dirdiff i j prefix item self
-
-zparseopts -D -E -a opts -- -cached -deleted -modified -others -ignored -unmerged -killed
-
-gitdir=$(_call_program gitdir git rev-parse --git-dir 2>/dev/null)
-__git_command_successful || return
-
-ls_opts=("--exclude-per-directory=.gitignore")
-[[ -f "${gitdir}/info/exclude" ]] && ls_opts+="--exclude-from=${gitdir}/info/exclude"
-
-files=(${(ps:\0:)"$(cd ${gitdir}/..; _call_program files git ls-files -z ${ls_opts} ${opts} 2>/dev/null)"})
-__git_command_successful || return
-
-if [[ -z ${gitdir} ]] {
- return 1
-}
-
-if [[ ! -d .git ]] {
- dirdiff=${PWD#${gitdir%/.git}/}
- for ((i = 1; i <= ${#files}; i++)) {
- prefix=''
- item=(${(s:/:)files[$i]})
- self=(${(s:/:)dirdiff})
- for ((j = 1; j <= ${#self}; j++)) {
- if [[ ${item[$j]} == ${self[$j]} ]] {
- item[$j]=''
- } else {
- prefix+='../'
- }
- }
- files[$i]=${prefix}
- for j in ${item}; {
- [[ -n ${j} ]] && files[$i]+="${j}/"
- }
- files[$i]=${files[$i]%/}
- }
-}
-_wanted files expl 'index file' _multi_parts ${@} - / files