|
1 # Relational pipes |
|
2 # Copyright © 2020 František Kučera (Frantovo.cz, GlobalCode.info) |
|
3 # |
|
4 # This program is free software: you can redistribute it and/or modify |
|
5 # it under the terms of the GNU General Public License as published by |
|
6 # the Free Software Foundation, version 3 of the License. |
|
7 # |
|
8 # This program is distributed in the hope that it will be useful, |
|
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
11 # GNU General Public License for more details. |
|
12 # |
|
13 # You should have received a copy of the GNU General Public License |
|
14 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
15 |
|
16 _relpipe_out_ini_completion() { |
|
17 local w0 w1 w2 w3 |
|
18 |
|
19 COMPREPLY=() |
|
20 w0=${COMP_WORDS[COMP_CWORD]} |
|
21 w1=${COMP_WORDS[COMP_CWORD-1]} |
|
22 w2=${COMP_WORDS[COMP_CWORD-2]} |
|
23 w3=${COMP_WORDS[COMP_CWORD-3]} |
|
24 |
|
25 BOOLEAN_VALUES=( |
|
26 "true" |
|
27 "false" |
|
28 ) |
|
29 |
|
30 STYLES=( |
|
31 "auto" |
|
32 "dropped" |
|
33 "literal" |
|
34 "literal-with-section-attribute" |
|
35 "standard" |
|
36 ) |
|
37 |
|
38 DIALECTS=( |
|
39 "java-properties" |
|
40 ); |
|
41 |
|
42 WRITER_OPTIONS=( |
|
43 "dialect" |
|
44 "comment-separator-for-sections" |
|
45 "comment-separator-for-entries" |
|
46 "comment-separator-standalone" |
|
47 "key-value-separator" |
|
48 "escape-backspace" |
|
49 "escape-basic" |
|
50 "escape-java-properties" |
|
51 ); |
|
52 |
|
53 |
|
54 if [[ "$w1" == "--relation" && "x$w0" == "x" ]]; then COMPREPLY=("''") |
|
55 elif [[ "$w1" == "--style" ]]; then COMPREPLY=($(compgen -W "${STYLES[*]}" -- "$w0")) |
|
56 elif [[ "$w1" == "--writer-option" ]]; then COMPREPLY=($(compgen -W "${WRITER_OPTIONS[*]}" -- "$w0")) |
|
57 elif [[ "$w2" == "--writer-option" && "$w1" == "dialect" ]]; then COMPREPLY=($(compgen -W "${DIALECTS[*]}" -- "$w0")) |
|
58 elif [[ "$w2" == "--writer-option" && "$w1" == "comment-separator-for-sections" ]]; then COMPREPLY=("' ; '") |
|
59 elif [[ "$w2" == "--writer-option" && "$w1" == "comment-separator-for-entries" ]]; then COMPREPLY=("' ; '") |
|
60 elif [[ "$w2" == "--writer-option" && "$w1" == "comment-separator-standalone" ]]; then COMPREPLY=("'; '") |
|
61 elif [[ "$w2" == "--writer-option" && "$w1" == "key-value-separator" ]]; then COMPREPLY=("' = '") |
|
62 elif [[ "$w2" == "--writer-option" && "$w1" == "escape-backspace" ]]; then COMPREPLY=($(compgen -W "${BOOLEAN_VALUES[*]}" -- "$w0")) |
|
63 elif [[ "$w2" == "--writer-option" && "$w1" == "escape-basic" ]]; then COMPREPLY=($(compgen -W "${BOOLEAN_VALUES[*]}" -- "$w0")) |
|
64 elif [[ "$w2" == "--writer-option" && "$w1" == "escape-java-properties" ]]; then COMPREPLY=($(compgen -W "${BOOLEAN_VALUES[*]}" -- "$w0")) |
|
65 elif [[ "$w2" == "--writer-option" && "x$w0" == "x" ]]; then COMPREPLY=("''") |
|
66 |
|
67 else |
|
68 OPTIONS=( |
|
69 "--writer-option" |
|
70 "--relation" |
|
71 "--style" |
|
72 ) |
|
73 COMPREPLY=($(compgen -W "${OPTIONS[*]}" -- "$w0")) |
|
74 fi |
|
75 } |
|
76 |
|
77 complete -F _relpipe_out_ini_completion relpipe-out-ini |