Skip to content

Commit c37d25f

Browse files
MrHateTeemperor
authored andcommitted
[lldb] Tab completion for frame recognizer delete
Summary: Provided tab completion for command `frame recognizer delete`. Reviewers: teemperor, JDevlieghere Reviewed By: teemperor, JDevlieghere Tags: #lldb Differential Revision: https://reviews.llvm.org/D81241
1 parent 33bae9c commit c37d25f

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed

lldb/source/Commands/CommandObjectFrame.cpp

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -936,6 +936,33 @@ class CommandObjectFrameRecognizerDelete : public CommandObjectParsed {
936936

937937
~CommandObjectFrameRecognizerDelete() override = default;
938938

939+
void
940+
HandleArgumentCompletion(CompletionRequest &request,
941+
OptionElementVector &opt_element_vector) override {
942+
if (request.GetCursorIndex() != 0)
943+
return;
944+
945+
StackFrameRecognizerManager::ForEach(
946+
[&request](uint32_t rid, std::string rname, std::string module,
947+
llvm::ArrayRef<lldb_private::ConstString> symbols,
948+
bool regexp) {
949+
StreamString strm;
950+
if (rname.empty())
951+
rname = "(internal)";
952+
953+
strm << rname;
954+
if (!module.empty())
955+
strm << ", module " << module;
956+
if (!symbols.empty())
957+
for (auto &symbol : symbols)
958+
strm << ", symbol " << symbol;
959+
if (regexp)
960+
strm << " (regexp)";
961+
962+
request.TryCompleteCurrentArg(std::to_string(rid), strm.GetString());
963+
});
964+
}
965+
939966
protected:
940967
bool DoExecute(Args &command, CommandReturnObject &result) override {
941968
if (command.GetArgumentCount() == 0) {

lldb/test/API/functionalities/completion/TestCompletion.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -421,6 +421,10 @@ def test_frame_select(self):
421421
lldbutil.run_to_source_breakpoint(self, '// Break here', self.main_source_spec)
422422

423423
self.complete_from_to('frame select ', ['0'])
424+
425+
def test_frame_recognizer_delete(self):
426+
self.runCmd("frame recognizer add -l py_class -s module_name -n recognizer_name")
427+
self.check_completion_with_desc('frame recognizer delete ', [['0', 'py_class, module module_name, symbol recognizer_name']])
424428

425429
@expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24489")
426430
def test_symbol_name(self):

0 commit comments

Comments
 (0)