LLDB mainline
CommandCompletions.h
Go to the documentation of this file.
1//===-- CommandCompletions.h ------------------------------------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef LLDB_INTERPRETER_COMMANDCOMPLETIONS_H
10#define LLDB_INTERPRETER_COMMANDCOMPLETIONS_H
11
12#include <set>
13
19#include "lldb/lldb-private.h"
20
21#include "llvm/ADT/Twine.h"
22
23namespace lldb_private {
24class TildeExpressionResolver;
26public:
32 eSymbolCompletion = (1u << 3),
33 eModuleCompletion = (1u << 4),
54 // This item serves two purposes. It is the last element in the enum, so
55 // you can add custom enums starting from here in your Option class. Also
56 // if you & in this bit the base code will not process the option.
57 eCustomCompletion = (1u << 24)
58 };
59
61 CommandInterpreter &interpreter, uint32_t completion_mask,
63
64 // These are the generic completer functions:
65 static void DiskFiles(CommandInterpreter &interpreter,
66 CompletionRequest &request, SearchFilter *searcher);
67
68 static void DiskFiles(const llvm::Twine &partial_file_name,
69 StringList &matches, TildeExpressionResolver &Resolver);
70
71 static void DiskDirectories(CommandInterpreter &interpreter,
72 CompletionRequest &request,
73 SearchFilter *searcher);
74
75 static void DiskDirectories(const llvm::Twine &partial_file_name,
76 StringList &matches,
77 TildeExpressionResolver &Resolver);
78
79 static void RemoteDiskFiles(CommandInterpreter &interpreter,
80 CompletionRequest &request,
81 SearchFilter *searcher);
82
83 static void RemoteDiskDirectories(CommandInterpreter &interpreter,
84 CompletionRequest &request,
85 SearchFilter *searcher);
86
87 static void SourceFiles(CommandInterpreter &interpreter,
88 CompletionRequest &request, SearchFilter *searcher);
89
90 static void Modules(CommandInterpreter &interpreter,
91 CompletionRequest &request, SearchFilter *searcher);
92
93 static void ModuleUUIDs(CommandInterpreter &interpreter,
94 CompletionRequest &request, SearchFilter *searcher);
95
96 static void Symbols(CommandInterpreter &interpreter,
97 CompletionRequest &request, SearchFilter *searcher);
98
99 static void SettingsNames(CommandInterpreter &interpreter,
100 CompletionRequest &request, SearchFilter *searcher);
101
102 static void PlatformPluginNames(CommandInterpreter &interpreter,
103 CompletionRequest &request,
104 SearchFilter *searcher);
105
106 static void ArchitectureNames(CommandInterpreter &interpreter,
107 CompletionRequest &request,
108 SearchFilter *searcher);
109
110 static void VariablePath(CommandInterpreter &interpreter,
111 CompletionRequest &request, SearchFilter *searcher);
112
113 static void Registers(CommandInterpreter &interpreter,
114 CompletionRequest &request, SearchFilter *searcher);
115
116 static void Breakpoints(CommandInterpreter &interpreter,
117 CompletionRequest &request, SearchFilter *searcher);
118
119 static void BreakpointNames(CommandInterpreter &interpreter,
120 CompletionRequest &request,
121 SearchFilter *searcher);
122
123 static void ProcessPluginNames(CommandInterpreter &interpreter,
124 CompletionRequest &request,
125 SearchFilter *searcher);
126
127 static void ProcessIDs(CommandInterpreter &interpreter,
128 CompletionRequest &request, SearchFilter *searcher);
129
130 static void ProcessNames(CommandInterpreter &interpreter,
131 CompletionRequest &request, SearchFilter *searcher);
132
133 static void DisassemblyFlavors(CommandInterpreter &interpreter,
134 CompletionRequest &request,
135 SearchFilter *searcher);
136
137 static void TypeLanguages(CommandInterpreter &interpreter,
138 CompletionRequest &request, SearchFilter *searcher);
139
140 static void FrameIndexes(CommandInterpreter &interpreter,
141 CompletionRequest &request, SearchFilter *searcher);
142
143 static void StopHookIDs(CommandInterpreter &interpreter,
144 CompletionRequest &request, SearchFilter *searcher);
145
146 static void ThreadIndexes(CommandInterpreter &interpreter,
147 CompletionRequest &request, SearchFilter *searcher);
148
149 static void WatchPointIDs(CommandInterpreter &interpreter,
150 CompletionRequest &request, SearchFilter *searcher);
151
152 static void TypeCategoryNames(CommandInterpreter &interpreter,
153 CompletionRequest &request,
154 SearchFilter *searcher);
155
156 /// This completer works for commands whose only arguments are a command path.
157 /// It isn't tied to an argument type because it completes not on a single
158 /// argument but on the sequence of arguments, so you have to invoke it by
159 /// hand.
160 static void
162 CompletionRequest &request,
163 OptionElementVector &opt_element_vector);
164};
165
166} // namespace lldb_private
167
168#endif // LLDB_INTERPRETER_COMMANDCOMPLETIONS_H
static void DisassemblyFlavors(CommandInterpreter &interpreter, CompletionRequest &request, SearchFilter *searcher)
static bool InvokeCommonCompletionCallbacks(CommandInterpreter &interpreter, uint32_t completion_mask, lldb_private::CompletionRequest &request, SearchFilter *searcher)
static void ArchitectureNames(CommandInterpreter &interpreter, CompletionRequest &request, SearchFilter *searcher)
static void DiskDirectories(CommandInterpreter &interpreter, CompletionRequest &request, SearchFilter *searcher)
static void RemoteDiskDirectories(CommandInterpreter &interpreter, CompletionRequest &request, SearchFilter *searcher)
static void SourceFiles(CommandInterpreter &interpreter, CompletionRequest &request, SearchFilter *searcher)
static void TypeLanguages(CommandInterpreter &interpreter, CompletionRequest &request, SearchFilter *searcher)
static void DiskFiles(CommandInterpreter &interpreter, CompletionRequest &request, SearchFilter *searcher)
static void ProcessPluginNames(CommandInterpreter &interpreter, CompletionRequest &request, SearchFilter *searcher)
static void PlatformPluginNames(CommandInterpreter &interpreter, CompletionRequest &request, SearchFilter *searcher)
static void ProcessIDs(CommandInterpreter &interpreter, CompletionRequest &request, SearchFilter *searcher)
static void StopHookIDs(CommandInterpreter &interpreter, CompletionRequest &request, SearchFilter *searcher)
static void ModuleUUIDs(CommandInterpreter &interpreter, CompletionRequest &request, SearchFilter *searcher)
static void ThreadIndexes(CommandInterpreter &interpreter, CompletionRequest &request, SearchFilter *searcher)
static void SettingsNames(CommandInterpreter &interpreter, CompletionRequest &request, SearchFilter *searcher)
static void CompleteModifiableCmdPathArgs(CommandInterpreter &interpreter, CompletionRequest &request, OptionElementVector &opt_element_vector)
This completer works for commands whose only arguments are a command path.
static void FrameIndexes(CommandInterpreter &interpreter, CompletionRequest &request, SearchFilter *searcher)
static void TypeCategoryNames(CommandInterpreter &interpreter, CompletionRequest &request, SearchFilter *searcher)
static void WatchPointIDs(CommandInterpreter &interpreter, CompletionRequest &request, SearchFilter *searcher)
static void RemoteDiskFiles(CommandInterpreter &interpreter, CompletionRequest &request, SearchFilter *searcher)
static void ProcessNames(CommandInterpreter &interpreter, CompletionRequest &request, SearchFilter *searcher)
static void VariablePath(CommandInterpreter &interpreter, CompletionRequest &request, SearchFilter *searcher)
static void BreakpointNames(CommandInterpreter &interpreter, CompletionRequest &request, SearchFilter *searcher)
"lldb/Utility/ArgCompletionRequest.h"
General Outline: Provides the callback and search depth for the SearchFilter search.
Definition: SearchFilter.h:83
A class that represents a running process on the host machine.
Definition: SBAttachInfo.h:14
std::vector< OptionArgElement > OptionElementVector
Definition: Options.h:43