diff options
Diffstat (limited to 'source/Commands/CommandObjectApropos.cpp')
| -rw-r--r-- | source/Commands/CommandObjectApropos.cpp | 99 |
1 files changed, 0 insertions, 99 deletions
diff --git a/source/Commands/CommandObjectApropos.cpp b/source/Commands/CommandObjectApropos.cpp deleted file mode 100644 index 7ba0b250fbd5..000000000000 --- a/source/Commands/CommandObjectApropos.cpp +++ /dev/null @@ -1,99 +0,0 @@ -//===-- CommandObjectApropos.cpp ---------------------------------*- C++ -//-*-===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -#include "CommandObjectApropos.h" -#include "lldb/Interpreter/CommandInterpreter.h" -#include "lldb/Interpreter/CommandReturnObject.h" -#include "lldb/Interpreter/Options.h" -#include "lldb/Interpreter/Property.h" -#include "lldb/Utility/Args.h" - -using namespace lldb; -using namespace lldb_private; - -// CommandObjectApropos - -CommandObjectApropos::CommandObjectApropos(CommandInterpreter &interpreter) - : CommandObjectParsed( - interpreter, "apropos", - "List debugger commands related to a word or subject.", nullptr) { - CommandArgumentEntry arg; - CommandArgumentData search_word_arg; - - // Define the first (and only) variant of this arg. - search_word_arg.arg_type = eArgTypeSearchWord; - search_word_arg.arg_repetition = eArgRepeatPlain; - - // There is only one variant this argument could be; put it into the argument - // entry. - arg.push_back(search_word_arg); - - // Push the data for the first argument into the m_arguments vector. - m_arguments.push_back(arg); -} - -CommandObjectApropos::~CommandObjectApropos() = default; - -bool CommandObjectApropos::DoExecute(Args &args, CommandReturnObject &result) { - const size_t argc = args.GetArgumentCount(); - - if (argc == 1) { - auto search_word = args[0].ref(); - if (!search_word.empty()) { - // The bulk of the work must be done inside the Command Interpreter, - // since the command dictionary is private. - StringList commands_found; - StringList commands_help; - - m_interpreter.FindCommandsForApropos(search_word, commands_found, - commands_help, true, true, true); - - if (commands_found.GetSize() == 0) { - result.AppendMessageWithFormat("No commands found pertaining to '%s'. " - "Try 'help' to see a complete list of " - "debugger commands.\n", - args[0].c_str()); - } else { - if (commands_found.GetSize() > 0) { - result.AppendMessageWithFormat( - "The following commands may relate to '%s':\n", args[0].c_str()); - const size_t max_len = commands_found.GetMaxStringLength(); - - for (size_t i = 0; i < commands_found.GetSize(); ++i) - m_interpreter.OutputFormattedHelpText( - result.GetOutputStream(), commands_found.GetStringAtIndex(i), - "--", commands_help.GetStringAtIndex(i), max_len); - } - } - - std::vector<const Property *> properties; - const size_t num_properties = - GetDebugger().Apropos(search_word, properties); - if (num_properties) { - const bool dump_qualified_name = true; - result.AppendMessageWithFormatv( - "\nThe following settings variables may relate to '{0}': \n\n", - args[0].ref()); - for (size_t i = 0; i < num_properties; ++i) - properties[i]->DumpDescription( - m_interpreter, result.GetOutputStream(), 0, dump_qualified_name); - } - - result.SetStatus(eReturnStatusSuccessFinishNoResult); - } else { - result.AppendError("'' is not a valid search word.\n"); - result.SetStatus(eReturnStatusFailed); - } - } else { - result.AppendError("'apropos' must be called with exactly one argument.\n"); - result.SetStatus(eReturnStatusFailed); - } - - return result.Succeeded(); -} |
