Fixes incomplete command names in `apropos` results.
The full command names given by `apropos` have come from command name string
literals given to `CommandObject` constructors. For most commands, this has
been accurate, but some commands have incorrect strings. This results in
`apropos` output that doesn't tell the user the full command name they might
want learn more about. These strings can be fixed.
There's a seperate issue that can't be fixed as easily: plugin commands. With
the way they're implemented, plugin commands have to exclude the root command
from their command name string. To illustrate, the `language objc` subcommand
has to set its command name string to "objc", which results in apropos printing
results as `objc ...` instead of `language objc ...`.
To fix both of these issues, this commit changes `FindCommandsForApropos` to
derive the fully qualified command name using the keys of subcommand maps.
Differential Revision: https://reviews.llvm.org/D116491
(cherry picked from commit b3bfd595a5)
29 lines
785 B
Python
29 lines
785 B
Python
from __future__ import print_function
|
|
import lldb
|
|
import sys
|
|
|
|
|
|
class WelcomeCommand(object):
|
|
|
|
def __init__(self, debugger, session_dict):
|
|
pass
|
|
|
|
def get_short_help(self):
|
|
return "Just a docstring for Welcome\nA command that says hello to LLDB users"
|
|
|
|
def __call__(self, debugger, args, exe_ctx, result):
|
|
print('Hello ' + args + ', welcome to LLDB', file=result)
|
|
return None
|
|
|
|
class WelcomeCommand2(object):
|
|
|
|
def __init__(self, debugger, session_dict):
|
|
pass
|
|
|
|
def get_short_help(self):
|
|
return "A docstring for the second Welcome\nA command that says hello to LLDB users"
|
|
|
|
def __call__(self, debugger, args, exe_ctx, result):
|
|
print('Hello ' + args + ', welcome again to LLDB', file=result)
|
|
return None
|