Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-10 08:42:49

0001 //===-- CommandCompletions.h ------------------------------------*- C++ -*-===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0006 //
0007 //===----------------------------------------------------------------------===//
0008 
0009 #ifndef LLDB_INTERPRETER_COMMANDCOMPLETIONS_H
0010 #define LLDB_INTERPRETER_COMMANDCOMPLETIONS_H
0011 
0012 #include <set>
0013 
0014 #include "lldb/Core/SearchFilter.h"
0015 #include "lldb/Interpreter/Options.h"
0016 #include "lldb/Utility/CompletionRequest.h"
0017 #include "lldb/Utility/FileSpecList.h"
0018 #include "lldb/Utility/RegularExpression.h"
0019 #include "lldb/lldb-private.h"
0020 
0021 #include "llvm/ADT/Twine.h"
0022 
0023 namespace lldb_private {
0024 class TildeExpressionResolver;
0025 class CommandCompletions {
0026 public:
0027   static bool InvokeCommonCompletionCallbacks(
0028       CommandInterpreter &interpreter, uint32_t completion_mask,
0029       lldb_private::CompletionRequest &request, SearchFilter *searcher);
0030 
0031   // These are the generic completer functions:
0032   static void DiskFiles(CommandInterpreter &interpreter,
0033                         CompletionRequest &request, SearchFilter *searcher);
0034 
0035   static void DiskFiles(const llvm::Twine &partial_file_name,
0036                         StringList &matches, TildeExpressionResolver &Resolver);
0037 
0038   static void DiskDirectories(CommandInterpreter &interpreter,
0039                               CompletionRequest &request,
0040                               SearchFilter *searcher);
0041 
0042   static void DiskDirectories(const llvm::Twine &partial_file_name,
0043                               StringList &matches,
0044                               TildeExpressionResolver &Resolver);
0045 
0046   static void RemoteDiskFiles(CommandInterpreter &interpreter,
0047                               CompletionRequest &request,
0048                               SearchFilter *searcher);
0049 
0050   static void RemoteDiskDirectories(CommandInterpreter &interpreter,
0051                                     CompletionRequest &request,
0052                                     SearchFilter *searcher);
0053 
0054   static void SourceFiles(CommandInterpreter &interpreter,
0055                           CompletionRequest &request, SearchFilter *searcher);
0056 
0057   static void Modules(CommandInterpreter &interpreter,
0058                       CompletionRequest &request, SearchFilter *searcher);
0059 
0060   static void ModuleUUIDs(CommandInterpreter &interpreter,
0061                           CompletionRequest &request, SearchFilter *searcher);
0062 
0063   static void Symbols(CommandInterpreter &interpreter,
0064                       CompletionRequest &request, SearchFilter *searcher);
0065 
0066   static void SettingsNames(CommandInterpreter &interpreter,
0067                             CompletionRequest &request, SearchFilter *searcher);
0068 
0069   static void PlatformPluginNames(CommandInterpreter &interpreter,
0070                                   CompletionRequest &request,
0071                                   SearchFilter *searcher);
0072 
0073   static void ArchitectureNames(CommandInterpreter &interpreter,
0074                                 CompletionRequest &request,
0075                                 SearchFilter *searcher);
0076 
0077   static void VariablePath(CommandInterpreter &interpreter,
0078                            CompletionRequest &request, SearchFilter *searcher);
0079 
0080   static void Registers(CommandInterpreter &interpreter,
0081                         CompletionRequest &request, SearchFilter *searcher);
0082 
0083   static void Breakpoints(CommandInterpreter &interpreter,
0084                           CompletionRequest &request, SearchFilter *searcher);
0085 
0086   static void BreakpointNames(CommandInterpreter &interpreter,
0087                               CompletionRequest &request,
0088                               SearchFilter *searcher);
0089 
0090   static void ProcessPluginNames(CommandInterpreter &interpreter,
0091                                  CompletionRequest &request,
0092                                  SearchFilter *searcher);
0093 
0094   static void ProcessIDs(CommandInterpreter &interpreter,
0095                          CompletionRequest &request, SearchFilter *searcher);
0096 
0097   static void ProcessNames(CommandInterpreter &interpreter,
0098                            CompletionRequest &request, SearchFilter *searcher);
0099 
0100   static void DisassemblyFlavors(CommandInterpreter &interpreter,
0101                                  CompletionRequest &request,
0102                                  SearchFilter *searcher);
0103 
0104   static void TypeLanguages(CommandInterpreter &interpreter,
0105                             CompletionRequest &request, SearchFilter *searcher);
0106 
0107   static void FrameIndexes(CommandInterpreter &interpreter,
0108                            CompletionRequest &request, SearchFilter *searcher);
0109 
0110   static void StopHookIDs(CommandInterpreter &interpreter,
0111                           CompletionRequest &request, SearchFilter *searcher);
0112 
0113   static void ThreadIndexes(CommandInterpreter &interpreter,
0114                             CompletionRequest &request, SearchFilter *searcher);
0115 
0116   static void WatchPointIDs(CommandInterpreter &interpreter,
0117                             CompletionRequest &request, SearchFilter *searcher);
0118 
0119   static void TypeCategoryNames(CommandInterpreter &interpreter,
0120                                 CompletionRequest &request,
0121                                 SearchFilter *searcher);
0122 
0123   static void ThreadIDs(CommandInterpreter &interpreter,
0124                         CompletionRequest &request, SearchFilter *searcher);
0125 
0126   /// This completer works for commands whose only arguments are a command path.
0127   /// It isn't tied to an argument type because it completes not on a single
0128   /// argument but on the sequence of arguments, so you have to invoke it by
0129   /// hand.
0130   static void
0131   CompleteModifiableCmdPathArgs(CommandInterpreter &interpreter,
0132                                 CompletionRequest &request,
0133                                 OptionElementVector &opt_element_vector);
0134 };
0135 
0136 } // namespace lldb_private
0137 
0138 #endif // LLDB_INTERPRETER_COMMANDCOMPLETIONS_H