File tree Expand file tree Collapse file tree 2 files changed +29
-4
lines changed Expand file tree Collapse file tree 2 files changed +29
-4
lines changed Original file line number Diff line number Diff line change 1313fi
1414{% - elif argument .type == "file" -%}
1515if [ $cur -eq $COMP_CWORD ] ; then
16- file_completion " {{ argument.base_path or "." }}"
16+ {{ file_completion( argument.base_path or ".")|indent(2) }}
1717
1818 return 0
1919else
@@ -93,6 +93,13 @@ cur=$COMP_CWORD
9393
9494{#- macro def -#}
9595{% - macro file_completion (base_path ) -%}
96+ _get_comp_words_by_ref -n : cur prev cword
97+ dir="$(echo ${cur} | grep -o ".*/")"
98+ if test "${dir}" ;then
99+ COMPREPLY=( $(compgen -W "$(ls -F $1/${dir} | sed -E "s@(.*)@${dir}\1@g")" -- "${cur}") )
100+ else
101+ COMPREPLY=( $(compgen -W "$(ls -F $1/)" -- "${cur}") )
102+ fi
96103{% - endmacro -%}
97104
98105#!/bin/bash
Original file line number Diff line number Diff line change @@ -81,7 +81,13 @@ _cliname() {
8181
8282 --config)
8383 if [ $cur -eq $COMP_CWORD ] ; then
84- file_completion " ."
84+ _get_comp_words_by_ref -n : cur prev cword
85+ dir=" $( echo ${cur} | grep -o " .*/" ) "
86+ if test " ${dir} " ; then
87+ COMPREPLY=( $( compgen -W " $( ls -F $1 /${dir} | sed -E " s@(.*)@${dir} \1@g" ) " -- " ${cur} " ) )
88+ else
89+ COMPREPLY=( $( compgen -W " $( ls -F $1 /) " -- " ${cur} " ) )
90+ fi
8591
8692 return 0
8793 else
@@ -144,7 +150,13 @@ _cliname() {
144150 fi
145151 cur=$COMP_CWORD
146152 if [ $cur -eq $COMP_CWORD ] ; then
147- file_completion " ."
153+ _get_comp_words_by_ref -n : cur prev cword
154+ dir=" $( echo ${cur} | grep -o " .*/" ) "
155+ if test " ${dir} " ; then
156+ COMPREPLY=( $( compgen -W " $( ls -F $1 /${dir} | sed -E " s@(.*)@${dir} \1@g" ) " -- " ${cur} " ) )
157+ else
158+ COMPREPLY=( $( compgen -W " $( ls -F $1 /) " -- " ${cur} " ) )
159+ fi
148160
149161 return 0
150162 else
@@ -173,7 +185,13 @@ _cliname() {
173185 case $(( COMP_CWORD - cmd_cur + 1 )) in
174186 1)
175187 if [ $cur -eq $COMP_CWORD ] ; then
176- file_completion " $HOME "
188+ _get_comp_words_by_ref -n : cur prev cword
189+ dir=" $( echo ${cur} | grep -o " .*/" ) "
190+ if test " ${dir} " ; then
191+ COMPREPLY=( $( compgen -W " $( ls -F $1 /${dir} | sed -E " s@(.*)@${dir} \1@g" ) " -- " ${cur} " ) )
192+ else
193+ COMPREPLY=( $( compgen -W " $( ls -F $1 /) " -- " ${cur} " ) )
194+ fi
177195
178196 return 0
179197 else
You can’t perform that action at this time.
0 commit comments