================
@@ -70,6 +72,31 @@ size_t Stream::PutCString(llvm::StringRef str) {
   return bytes_written;
 }
 
+void Stream::PutCStringColorHighlighted(llvm::StringRef text,
+                                        const char *pattern) {
+  if (!pattern) {
+    PutCString(text);
+    return;
+  }
+
+  // If pattern is not nullptr, we should use color
+  llvm::Regex reg_pattern(pattern);
+  llvm::SmallVector<llvm::StringRef, 1> matches;
+  llvm::StringRef remaining = text;
+  std::string format_str = lldb_private::ansi::FormatAnsiTerminalCodes(
+      "${ansi.fg.red}%.*s${ansi.normal}");
----------------
junior-jl wrote:

What are your thoughts on this approach? (In `SymbolContext.cpp` - line 98). I 
tested it and it only fails on the new test this PR creates, so we would only 
need to adapt it.

```cpp
if (name) {
        llvm::StringRef ansi_prefix;
        llvm::StringRef ansi_suffix;
        if (target_sp) {
          ansi_prefix = target_sp->GetDebugger().GetRegexMatchAnsiPrefix();
          ansi_suffix = target_sp->GetDebugger().GetRegexMatchAnsiSuffix();
        }
        s->PutCStringColorHighlighted(name.GetStringRef(), pattern, ansi_prefix,
                                      ansi_suffix);
      }
```

Or even forcing the red color when there is no target? Honestly, I do not 
completely understand what would mean not having a target.

https://github.com/llvm/llvm-project/pull/69422
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to