diff --git a/shell-completion/Makefile b/shell-completion/Makefile index 43c927e40..9ddcdccb2 100644 --- a/shell-completion/Makefile +++ b/shell-completion/Makefile @@ -3,7 +3,7 @@ all: command-options hledger-completion.bash -hledger-completion.bash: hledger-completion.bash.m4 commands-list.txt generic-options.txt +hledger-completion.bash: hledger-completion.bash.m4 commands-list.txt query-filters.txt generic-options.txt m4 hledger-completion.bash.m4 > $@ generic-options.txt: diff --git a/shell-completion/hledger-completion.bash b/shell-completion/hledger-completion.bash index 1cea1f5a4..80d4ad179 100644 --- a/shell-completion/hledger-completion.bash +++ b/shell-completion/hledger-completion.bash @@ -76,7 +76,8 @@ _hledger_completion_function() { # be passed! declare -a accounts - readarray -t accounts < <(hledger accounts --flat | grep "^$wordToComplete") + readarray -t accounts < <({ cat "$_HLEDGER_COMPLETION_TEMPDIR/query-filters.txt"; hledger accounts --flat; } | grep "^$wordToComplete") + compopt -o nospace COMPREPLY+=( "${accounts[@]}" ) # Special characters (e.g. '-', ':') are allowed in account names. # Account names with spaces must be still be quoted (e.g. '"Expens') @@ -128,6 +129,31 @@ cf is TEXT +cat < "$_HLEDGER_COMPLETION_TEMPDIR/query-filters.txt" +not: +acct: +amt: +amt:< +amt:<= +amt:> +amt:>= +code: +cur: +desc: +date: +date2: +depth: +note: +payee: +real: +real:0 +status: +status:! +status:* +tag: +inacct: +TEXT + cat < "$_HLEDGER_COMPLETION_TEMPDIR/generic-options.txt" -f -I diff --git a/shell-completion/hledger-completion.bash.m4 b/shell-completion/hledger-completion.bash.m4 index bace0d671..5b0db1507 100644 --- a/shell-completion/hledger-completion.bash.m4 +++ b/shell-completion/hledger-completion.bash.m4 @@ -76,7 +76,8 @@ _hledger_completion_function() { # be passed! declare -a accounts - readarray -t accounts < <(hledger accounts --flat | grep "^$wordToComplete") + readarray -t accounts < <({ cat "$_HLEDGER_COMPLETION_TEMPDIR/query-filters.txt"; hledger accounts --flat; } | grep "^$wordToComplete") + compopt -o nospace COMPREPLY+=( "${accounts[@]}" ) # Special characters (e.g. '-', ':') are allowed in account names. # Account names with spaces must be still be quoted (e.g. '"Expens') @@ -98,6 +99,10 @@ cat < "$_HLEDGER_COMPLETION_TEMPDIR/commands.txt" include(`commands.txt')dnl TEXT +cat < "$_HLEDGER_COMPLETION_TEMPDIR/query-filters.txt" +include(`query-filters.txt')dnl +TEXT + cat < "$_HLEDGER_COMPLETION_TEMPDIR/generic-options.txt" include(`generic-options.txt')dnl TEXT diff --git a/shell-completion/query-filters.txt b/shell-completion/query-filters.txt new file mode 100644 index 000000000..cfb33747f --- /dev/null +++ b/shell-completion/query-filters.txt @@ -0,0 +1,22 @@ +not: +acct: +amt: +amt:< +amt:<= +amt:> +amt:>= +code: +cur: +desc: +date: +date2: +depth: +note: +payee: +real: +real:0 +status: +status:! +status:* +tag: +inacct: