@@ -193,7 +193,7 @@ def flag_based_complete(text, line, begidx, endidx, flag_dict, default_completer
193
193
return []
194
194
195
195
completions = []
196
- flag_processed = False
196
+ flag_present = False
197
197
198
198
# Must have at least the command and one argument for a flag to be present
199
199
if len (tokens ) > 1 :
@@ -204,9 +204,10 @@ def flag_based_complete(text, line, begidx, endidx, flag_dict, default_completer
204
204
# Check if the flag is in the dictionary
205
205
if flag in flag_dict :
206
206
207
+ flag_present = True
208
+
207
209
# Check if this flag does completions using an Iterable
208
210
if isinstance (flag_dict [flag ], collections .Iterable ):
209
- flag_processed = True
210
211
strs_to_match = flag_dict [flag ]
211
212
completions = [cur_str for cur_str in strs_to_match if cur_str .startswith (text )]
212
213
@@ -216,12 +217,11 @@ def flag_based_complete(text, line, begidx, endidx, flag_dict, default_completer
216
217
217
218
# Otherwise check if this flag does completions with a function
218
219
elif callable (flag_dict [flag ]):
219
- flag_processed = True
220
220
completer_func = flag_dict [flag ]
221
221
completions = completer_func (text , line , begidx , endidx )
222
222
223
223
# Check if we need to run the default completer
224
- if default_completer is not None and not flag_processed :
224
+ if default_completer is not None and not flag_present :
225
225
completions = default_completer (text , line , begidx , endidx )
226
226
227
227
completions .sort ()
0 commit comments