[Lldb-commits] [lldb] [lldb] Fix highlight of digit separators (#224902) (PR #226363)

via lldb-commits lldb-commits at lists.llvm.org
Thu Sep 24 23:25:15 PDT 2026


https://github.com/luis-antoniosi updated https://github.com/llvm/llvm-project/pull/226363

>From 4c86845dfebac4348b52c2b39a56b6d81fb223e1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Guilherme?= <jose.riberto at usp.br>
Date: Fri, 25 Sep 2026 01:10:20 -0300
Subject: [PATCH] [lldb] Fix highlight of digit separators (#224902)
 Co-authored-by: Luis Antoniosi <luisgustavo_antoniosi at hotmail.com>

---
 .../Plugins/Highlighter/Clang/ClangHighlighter.cpp |  1 +
 lldb/unittests/Highlighter/HighlighterTest.cpp     | 14 ++++++++++++++
 2 files changed, 15 insertions(+)

diff --git a/lldb/source/Plugins/Highlighter/Clang/ClangHighlighter.cpp b/lldb/source/Plugins/Highlighter/Clang/ClangHighlighter.cpp
index 3889a0483d85a8..c379ff5213482b 100644
--- a/lldb/source/Plugins/Highlighter/Clang/ClangHighlighter.cpp
+++ b/lldb/source/Plugins/Highlighter/Clang/ClangHighlighter.cpp
@@ -178,6 +178,7 @@ void ClangHighlighter::Highlight(const HighlightStyle &options,
   Opts.ObjC = true;
   // FIXME: This should probably set CPlusPlus, CPlusPlus11, ... too
   Opts.CPlusPlus17 = true;
+  Opts.AllowLiteralDigitSeparator = true;
   Opts.LineComment = true;
 
   Lexer lex(FID, buf->getMemBufferRef(), SM, Opts);
diff --git a/lldb/unittests/Highlighter/HighlighterTest.cpp b/lldb/unittests/Highlighter/HighlighterTest.cpp
index 95d77f4f1303ef..4ef4948e0b180b 100644
--- a/lldb/unittests/Highlighter/HighlighterTest.cpp
+++ b/lldb/unittests/Highlighter/HighlighterTest.cpp
@@ -338,6 +338,20 @@ TEST_F(HighlighterTest, ClangCursorPosInOtherToken) {
             highlightC(" foo c = bar(); return 1;", s, 3));
 }
 
+TEST_F(HighlighterTest, ClangDigitSeparator) {
+  HighlightStyle s;
+  s.scalar_literal.Set("<scalar>", "</scalar>");
+
+  EXPECT_EQ(" int i = <scalar>0b00'00</scalar>;",
+            highlightC(" int i = 0b00'00;", s));
+  
+  EXPECT_EQ(" x = <scalar>1'000'000</scalar>;",
+            highlightC(" x = 1'000'000;", s));
+  
+  EXPECT_EQ("<scalar>0b00'00</scalar> == <scalar>0b00'00</scalar>",
+            highlightC("0b00'00 == 0b00'00", s));
+}
+
 #if LLDB_ENABLE_TREESITTER
 static std::string
 highlightSwift(llvm::StringRef code, HighlightStyle style,



More information about the lldb-commits mailing list