[Lldb-commits] [lldb] [lldb/Commands] Add `scripting template list` command with auto discovery (PR #97273)
Alex Langford via lldb-commits
lldb-commits at lists.llvm.org
Mon Jul 22 13:26:56 PDT 2024
================
@@ -127,9 +129,127 @@ class CommandObjectScriptingRun : public CommandObjectRaw {
CommandOptions m_options;
};
-#pragma mark CommandObjectMultiwordScripting
+#define LLDB_OPTIONS_scripting_template_list
+#include "CommandOptions.inc"
+
+class CommandObjectScriptingTemplateList : public CommandObjectParsed {
+public:
+ CommandObjectScriptingTemplateList(CommandInterpreter &interpreter)
+ : CommandObjectParsed(
+ interpreter, "scripting template list",
+ "List all the available scripting extension templates. ",
+ "scripting template list [--language <scripting-language> --]") {}
+
+ ~CommandObjectScriptingTemplateList() override = default;
+
+ Options *GetOptions() override { return &m_options; }
+
+ class CommandOptions : public Options {
+ public:
+ CommandOptions() = default;
+ ~CommandOptions() override = default;
+ Status SetOptionValue(uint32_t option_idx, llvm::StringRef option_arg,
+ ExecutionContext *execution_context) override {
+ Status error;
+ const int short_option = m_getopt_table[option_idx].val;
-// CommandObjectMultiwordScripting
+ switch (short_option) {
+ case 'l':
+ m_language = (lldb::ScriptLanguage)OptionArgParser::ToOptionEnum(
+ option_arg, GetDefinitions()[option_idx].enum_values,
+ eScriptLanguageNone, error);
+ if (!error.Success())
+ error.SetErrorStringWithFormat("unrecognized value for language '%s'",
----------------
bulbazord wrote:
Suggestion: `SetErrorStringWithFormatv` to avoid the `.str().c_str()` dance
https://github.com/llvm/llvm-project/pull/97273
More information about the lldb-commits
mailing list