File tree Expand file tree Collapse file tree 4 files changed +202
-145
lines changed Expand file tree Collapse file tree 4 files changed +202
-145
lines changed Original file line number Diff line number Diff line change 27
27
local _dvc_remotes=($(dvc remote list | cut -d' ' -f1))
28
28
compgen -W "${_dvc_remotes[*]}" -- $1
29
29
}
30
+
31
+ _dvc_compgen_config_vars() {
32
+ compgen -W "${_dvc_config_vars[*]}" -- $1
33
+ }
30
34
"""
31
35
32
36
ZSH_PREAMBLE = """
64
68
_dvc_compadd_remotes() {
65
69
_describe 'remotes' "($(dvc remote list | cut -d' ' -f1))"
66
70
}
71
+
72
+ _dvc_compadd_config_vars() {
73
+ _describe 'config_vars' _dvc_config_vars
74
+ }
67
75
"""
68
76
69
77
PREAMBLE = {
81
89
}
82
90
EXPERIMENT = {"bash" : "_dvc_compgen_exps" , "zsh" : "_dvc_compadd_exps" }
83
91
REMOTE = {"bash" : "_dvc_compgen_remotes" , "zsh" : "_dvc_compadd_remotes" }
92
+ CONFIG_VARS = {"bash" : "_dvc_compgen_config_vars" , "zsh" : "_dvc_compadd_config_vars" }
93
+
94
+
95
+ def get_preamble () -> dict [str , str ]:
96
+ from dvc .config_schema import config_vars_for_completion
97
+
98
+ ret : dict [str , str ] = {}
99
+ config_vars = list (config_vars_for_completion ())
100
+
101
+ nl = "\n \t " .expandtabs (4 )
102
+ config_vars_arr = f"""
103
+ _dvc_config_vars=(
104
+ { nl .join (config_vars )}
105
+ )
106
+ """
107
+ for shell , preamble in PREAMBLE .items ():
108
+ ret [shell ] = config_vars_arr + preamble
109
+ return ret
Original file line number Diff line number Diff line change 1
1
from dvc .cli import formatter
2
2
from dvc .cli .command import CmdBaseNoRepo
3
- from dvc .cli .completion import PREAMBLE
3
+ from dvc .cli .completion import get_preamble
4
4
from dvc .cli .utils import append_doc_link
5
5
from dvc .log import logger
6
6
from dvc .ui import ui
@@ -17,7 +17,7 @@ def run(self):
17
17
18
18
shell = self .args .shell
19
19
parser = self .args .parser
20
- script = shtab .complete (parser , shell = shell , preamble = PREAMBLE )
20
+ script = shtab .complete (parser , shell = shell , preamble = get_preamble () )
21
21
ui .write (script , force = True )
22
22
return 0
23
23
Original file line number Diff line number Diff line change 3
3
4
4
from funcy import set_in
5
5
6
- from dvc .cli import formatter
6
+ from dvc .cli import completion , formatter
7
7
from dvc .cli .command import CmdBaseNoRepo
8
8
from dvc .cli .utils import append_doc_link
9
9
from dvc .log import logger
@@ -224,7 +224,7 @@ def add_parser(subparsers, parent_parser):
224
224
nargs = "?" ,
225
225
type = _name_type ,
226
226
help = "Option name (section.option or remote.name.option)." ,
227
- )
227
+ ). complete = completion . CONFIG_VARS
228
228
config_parser .add_argument ("value" , nargs = "?" , help = "Option value." )
229
229
config_parser .add_argument (
230
230
"-l" ,
You can’t perform that action at this time.
0 commit comments