| //===-- ScriptedInterfaceUsages.cpp --------------------------------------===// | |
| // | |
| // 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 "lldb/Interpreter/Interfaces/ScriptedInterfaceUsages.h" | |
| #include "lldb/Utility/AnsiTerminal.h" | |
| using namespace lldb; | |
| using namespace lldb_private; | |
| void ScriptedInterfaceUsages::Dump(Stream &s, UsageKind kind, | |
| bool use_color) const { | |
| const std::string label = | |
| ansi::FormatAnsiTerminalCodes("${ansi.fg.green}${ansi.bold}", use_color); | |
| const std::string dim = | |
| ansi::FormatAnsiTerminalCodes("${ansi.faint}", use_color); | |
| const std::string reset = | |
| ansi::FormatAnsiTerminalCodes("${ansi.normal}", use_color); | |
| s.IndentMore(); | |
| s.Indent(); | |
| llvm::StringRef usage_kind = | |
| (kind == UsageKind::CommandInterpreter) ? "Command Interpreter" : "API"; | |
| s << label << usage_kind << " Usages:" << reset; | |
| const std::vector<llvm::StringRef> &usages = | |
| (kind == UsageKind::CommandInterpreter) ? GetCommandInterpreterUsages() | |
| : GetSBAPIUsages(); | |
| if (usages.empty()) | |
| s << ' ' << dim << "None" << reset << '\n'; | |
| else if (usages.size() == 1) | |
| s << " " << usages.front() << '\n'; | |
| else { | |
| s << '\n'; | |
| for (llvm::StringRef usage : usages) { | |
| s.IndentMore(); | |
| s.Indent(); | |
| s << usage << '\n'; | |
| s.IndentLess(); | |
| } | |
| } | |
| s.IndentLess(); | |
| } |