diff options
| author | Mingming Liu <mingmingl@google.com> | 2025-09-10 15:25:31 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-10 15:25:31 -0700 |
| commit | 1417dafa1db9cb1b2b09438aa9f53ea5ab6e36e2 (patch) | |
| tree | 57f4b1f313c8cf74eed8819870f39c36ea263c68 /lldb/utils/TableGen/LLDBOptionDefEmitter.cpp | |
| parent | 898b813bc8a6d0276bf0f4769f5f2f64b34e632d (diff) | |
| parent | b8cefcb601ddaa18482555c4ff363c01a270c2fe (diff) | |
Merge branch 'main' into users/mingmingl-llvm/samplefdo-profile-formatusers/mingmingl-llvm/samplefdo-profile-format
Diffstat (limited to 'lldb/utils/TableGen/LLDBOptionDefEmitter.cpp')
| -rw-r--r-- | lldb/utils/TableGen/LLDBOptionDefEmitter.cpp | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/lldb/utils/TableGen/LLDBOptionDefEmitter.cpp b/lldb/utils/TableGen/LLDBOptionDefEmitter.cpp index 2507910d8a97..e6d5b7bb52a2 100644 --- a/lldb/utils/TableGen/LLDBOptionDefEmitter.cpp +++ b/lldb/utils/TableGen/LLDBOptionDefEmitter.cpp @@ -23,6 +23,33 @@ using namespace llvm; using namespace lldb_private; namespace { +/// Parses curly braces and replaces them with ANSI underline formatting. +std::string underline(llvm::StringRef Str) { + llvm::StringRef OpeningHead, OpeningTail, ClosingHead, ClosingTail; + std::string Result; + llvm::raw_string_ostream Stream(Result); + while (!Str.empty()) { + // Find the opening brace. + std::tie(OpeningHead, OpeningTail) = Str.split("${"); + Stream << OpeningHead; + + // No opening brace: we're done. + if (OpeningHead == Str) + break; + + assert(!OpeningTail.empty()); + + // Find the closing brace. + std::tie(ClosingHead, ClosingTail) = OpeningTail.split('}'); + assert(!ClosingTail.empty() && + "unmatched curly braces in command option description"); + + Stream << "${ansi.underline}" << ClosingHead << "${ansi.normal}"; + Str = ClosingTail; + } + return Result; +} + struct CommandOption { std::vector<std::string> GroupsArg; bool Required = false; @@ -68,7 +95,7 @@ struct CommandOption { Completions = Option->getValueAsListOfStrings("Completions"); if (auto D = Option->getValue("Description")) - Description = D->getValue()->getAsUnquotedString(); + Description = underline(D->getValue()->getAsUnquotedString()); } }; } // namespace |
