diff options
author | Greg Clayton <gclayton@apple.com> | 2012-08-22 17:17:09 +0000 |
---|---|---|
committer | Greg Clayton <gclayton@apple.com> | 2012-08-22 17:17:09 +0000 |
commit | 67cc06366cdb20795d21c31f89624d81e97af799 (patch) | |
tree | 43edfb98f1f542853282474c9685a5e071d2e1d9 /lldb/source/Commands/CommandObjectApropos.cpp | |
parent | 40dd4d9bf396f17b28fe823160f3e103d2943cfb (diff) | |
download | llvm-67cc06366cdb20795d21c31f89624d81e97af799.zip llvm-67cc06366cdb20795d21c31f89624d81e97af799.tar.gz llvm-67cc06366cdb20795d21c31f89624d81e97af799.tar.bz2 |
Reimplemented the code that backed the "settings" in lldb. There were many issues with the previous implementation:
- no setting auto completion
- very manual and error prone way of getting/setting variables
- tons of code duplication
- useless instance names for processes, threads
Now settings can easily be defined like option values. The new settings makes use of the "OptionValue" classes so we can re-use the option value code that we use to set settings in command options. No more instances, just "does the right thing".
llvm-svn: 162366
Diffstat (limited to 'lldb/source/Commands/CommandObjectApropos.cpp')
-rw-r--r-- | lldb/source/Commands/CommandObjectApropos.cpp | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/lldb/source/Commands/CommandObjectApropos.cpp b/lldb/source/Commands/CommandObjectApropos.cpp index a71c2b6..a8713d0 100644 --- a/lldb/source/Commands/CommandObjectApropos.cpp +++ b/lldb/source/Commands/CommandObjectApropos.cpp @@ -86,27 +86,22 @@ CommandObjectApropos::DoExecute (Args& args, CommandReturnObject &result) for (size_t i = 0; i < commands_found.GetSize(); ++i) m_interpreter.OutputFormattedHelpText (result.GetOutputStream(), commands_found.GetStringAtIndex(i), - "--", commands_help. - GetStringAtIndex(i), + "--", + commands_help.GetStringAtIndex(i), max_len); } - StreamString settings_search_results; - lldb::UserSettingsControllerSP root = Debugger::GetSettingsController (); - const char *settings_prefix = root->GetLevelName().GetCString(); - - UserSettingsController::SearchAllSettingsDescriptions (m_interpreter, - root, - settings_prefix, - search_word, - settings_search_results); - - if (settings_search_results.GetSize() > 0) + std::vector<const Property *> properties; + const size_t num_properties = m_interpreter.GetDebugger().Apropos(search_word, properties); + if (num_properties) { + const bool dump_qualified_name = true; result.AppendMessageWithFormat ("\nThe following settings variables may relate to '%s': \n\n", search_word); - result.AppendMessageWithFormat ("%s", settings_search_results.GetData()); + for (size_t i=0; i<num_properties; ++i) + properties[i]->DumpDescription (m_interpreter, result.GetOutputStream(), 0, dump_qualified_name); + } result.SetStatus (eReturnStatusSuccessFinishNoResult); |