Skip to content

Commit b39a31c

Browse files
joshannepeterbarker
authored andcommitted
mavproxy_mode: Allow for mode names to be tab completed
Adds tab completion of mode names when changing mode using the command 'mode <MODE>'. Also prettifies printing of available modes - this previously printed an array of 'dict_keys([..], ...)'
1 parent e45946a commit b39a31c

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

MAVProxy/modules/mavproxy_mode.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,12 @@
1414
class ModeModule(mp_module.MPModule):
1515
def __init__(self, mpstate):
1616
super(ModeModule, self).__init__(mpstate, "mode", public=True)
17-
self.add_command('mode', self.cmd_mode, "mode change", self.available_modes())
17+
self.add_command('mode', self.cmd_mode, "mode change", [
18+
'(MODE)'
19+
])
1820
self.add_command('guided', self.cmd_guided, "fly to a clicked location on map")
1921
self.add_command('confirm', self.cmd_confirm, "confirm a command")
22+
self.add_completion_function('(MODE)', self.complete_available_modes)
2023

2124
def cmd_mode(self, args):
2225
'''set arbitrary mode'''
@@ -25,7 +28,7 @@ def cmd_mode(self, args):
2528
print('No mode mapping available')
2629
return
2730
if len(args) != 1:
28-
print('Available modes: ', mode_mapping.keys())
31+
print('Available modes: ', ', '.join(self.available_modes()))
2932
return
3033
if args[0].isdigit():
3134
modenum = int(args[0])
@@ -50,6 +53,9 @@ def cmd_confirm(self, args):
5053
from MAVProxy.modules.lib import mp_menu
5154
mp_menu.MPMenuConfirmDialog(question, callback=self.mpstate.functions.process_stdin, args=command)
5255

56+
def complete_available_modes(self, text):
57+
return self.available_modes()
58+
5359
def available_modes(self):
5460
if self.master is None:
5561
print('No mode mapping available')

0 commit comments

Comments
 (0)