Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/llvm-project/lldb/source/Commands/CommandObjectHelp.h
39587 views
1
//===-- CommandObjectHelp.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_SOURCE_COMMANDS_COMMANDOBJECTHELP_H
10
#define LLDB_SOURCE_COMMANDS_COMMANDOBJECTHELP_H
11
12
#include "lldb/Host/OptionParser.h"
13
#include "lldb/Interpreter/CommandObject.h"
14
#include "lldb/Interpreter/Options.h"
15
16
namespace lldb_private {
17
18
// CommandObjectHelp
19
20
class CommandObjectHelp : public CommandObjectParsed {
21
public:
22
CommandObjectHelp(CommandInterpreter &interpreter);
23
24
~CommandObjectHelp() override;
25
26
void HandleCompletion(CompletionRequest &request) override;
27
28
static void GenerateAdditionalHelpAvenuesMessage(
29
Stream *s, llvm::StringRef command, llvm::StringRef prefix,
30
llvm::StringRef subcommand, bool include_upropos = true,
31
bool include_type_lookup = true);
32
33
class CommandOptions : public Options {
34
public:
35
CommandOptions() = default;
36
37
~CommandOptions() override = default;
38
39
Status SetOptionValue(uint32_t option_idx, llvm::StringRef option_arg,
40
ExecutionContext *execution_context) override {
41
Status error;
42
const int short_option = m_getopt_table[option_idx].val;
43
44
switch (short_option) {
45
case 'a':
46
m_show_aliases = false;
47
break;
48
case 'u':
49
m_show_user_defined = false;
50
break;
51
case 'h':
52
m_show_hidden = true;
53
break;
54
default:
55
llvm_unreachable("Unimplemented option");
56
}
57
58
return error;
59
}
60
61
void OptionParsingStarting(ExecutionContext *execution_context) override {
62
m_show_aliases = true;
63
m_show_user_defined = true;
64
m_show_hidden = false;
65
}
66
67
llvm::ArrayRef<OptionDefinition> GetDefinitions() override;
68
69
// Instance variables to hold the values for command options.
70
71
bool m_show_aliases;
72
bool m_show_user_defined;
73
bool m_show_hidden;
74
};
75
76
Options *GetOptions() override { return &m_options; }
77
78
protected:
79
void DoExecute(Args &command, CommandReturnObject &result) override;
80
81
private:
82
CommandOptions m_options;
83
};
84
85
} // namespace lldb_private
86
87
#endif // LLDB_SOURCE_COMMANDS_COMMANDOBJECTHELP_H
88
89