[llvm-branch-commits] [clang-tools-extra] [clangd] Add clangd 23 release notes (PR #211990)

Nathan Ridge via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Fri Jul 24 23:20:10 PDT 2026


https://github.com/HighCommander4 created https://github.com/llvm/llvm-project/pull/211990

None

>From e4f8f429ecb3ec3223557184b52dfeed1e62cdca Mon Sep 17 00:00:00 2001
From: Nathan Ridge <zeratul976 at hotmail.com>
Date: Sat, 25 Jul 2026 02:18:58 -0400
Subject: [PATCH] [clangd] Add clangd 23 release notes

---
 clang-tools-extra/docs/ReleaseNotes.rst | 119 +++++++++++++++++++++---
 1 file changed, 108 insertions(+), 11 deletions(-)

diff --git a/clang-tools-extra/docs/ReleaseNotes.rst b/clang-tools-extra/docs/ReleaseNotes.rst
index 9fee5ff0c97ce..66b36a9f64998 100644
--- a/clang-tools-extra/docs/ReleaseNotes.rst
+++ b/clang-tools-extra/docs/ReleaseNotes.rst
@@ -141,24 +141,49 @@ Potentially Breaking Changes
 Improvements to clangd
 ----------------------
 
-Inlay hints
-^^^^^^^^^^^
+Compile flags
+^^^^^^^^^^^^^
+
+- The clang-cl flags ``/std:c++23preview`` and ``/std:clatest`` are recognized
+
+- Improved logic for finding the resource directory containing clang's builtin
+  headers, to handle cases where clangd and clang are installed in different prefixes
+
+- Environment variables that influence compilation are logged on startup
 
 Diagnostics
 ^^^^^^^^^^^
 
-Semantic Highlighting
-^^^^^^^^^^^^^^^^^^^^^
+- Driver diagnostics can be suppressed via config
 
-Compile flags
-^^^^^^^^^^^^^
+- ``pragma diagnostic push/pop`` is handled correctly across a preamble boundary
+
+- Unknown compiler options are dropped instead of causing a fatal error
+
+Clang-tidy integration
+^^^^^^^^^^^^^^^^^^^^^^
+
+- ``bugprone-bad-signal-to-kill-thread`` now works with clangd
+
+- Clang-tidy checks can properly see macro definitions located in the preamble
+  region at the top of the file
 
 Hover
 ^^^^^
 
+- When hovering over an accessor method, the comment for the accessed field is shown
+
+- Improved handling of unknown doxygen commands
+
+- Fixed a regression in whitespace escaping behaviour when processing
+  documentation comments
+
 Code completion
 ^^^^^^^^^^^^^^^
 
+- Clangd recognizes when a definition of a function (as opposed to a call) is
+  being completed, and provides dedicated behaviour suitable for definitions
+
 - Now also provides include files without extension, if they are in a directory
   only called ``include``.
 
@@ -166,6 +191,9 @@ Code completion
   allowing clients that advertise ``insertReplaceSupport`` to receive both
   insert and replace ranges for completion items.
 
+- Improved logic to avoid inserting a redundant parenthesis when completing
+  in the middle of an identifier
+
 - Changed completion-style default to ``detailed``. This means function
   overloads will no longer be bundled together, but instead each have
   their own completion item. This gives the user a better overview of the
@@ -174,24 +202,93 @@ Code completion
   ``bundled``. To change back to the old behaviour, pass the argument
   ``--completion-style=bundled`` to clangd.
 
+- The ``ArgumentLists`` config option is respected for lambdas
+
+- Code completion for field names in ``__builtin_offsetof`` expressions
+
+- Clangd tries harder to find parameter names to show during code completion,
+  looking in other redeclarations of a function if necessary
+
+Cross-references
+^^^^^^^^^^^^^^^^
+
+- Code navigation works correctly on tokens inside attributes,
+  ``__builtin_offsetof`` expressions, and member pointers
+
+- "Find implementations" finds implementations recursively
+
+- "Go to definition" on a forwarding wrapper like ``make_unique``
+  also offers the called constructor as a target
+
+- "Document symbols" supports the new symbol tags added in LSP 3.18
+
+- "Workspace symbols" ensures that a primary definition is ranked
+  above typedefs
+
+Inlay hints
+^^^^^^^^^^^
+
+- Correct inlay hints are shown for dependent calls to functions with
+  an explicit object parameter (C++23 "deducing this")
+
 Code actions
 ^^^^^^^^^^^^
 
 - A new tweak "Create function body out-of-line" was added that creates
   an implementation for a function declaration.
 
-Signature help
+- The "define out of line" code action has improved logic for finding
+  an insertion point which considers ``=default`` functions.
+
+- The "define out of line" code action has improved logic for using
+  qualified names in the printed definition
+
+Semantic Highlighting
+^^^^^^^^^^^^^^^^^^^^^
+
+- Fixed a regression in the highlighting of using-declarations and
+  symbols introduced by them
+
+Call hierarchy
 ^^^^^^^^^^^^^^
 
-Cross-references
-^^^^^^^^^^^^^^^^
+- Removed redundant symbol name from hierarchy item details
 
-Objective-C
-^^^^^^^^^^^
+Remote index
+^^^^^^^^^^^^
+
+- Improved cross platform support (e.g. serving an index to windows
+  clients from a server running on linux)
+
+Improvements to C++20 Modules support
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+- Enabled content valiation for module input files
+
+- Fixed handling of relative paths in prebuilt module files
+
+- Added a ``--skip-preamble-build`` command-line option
+
+- Support different modules with the same name in a project
+
+- Cache built module files across clangd invocation
+
+- Module builds respect compile command edits specified via ``CompileFlags``
+  in clangd configuration
+
+- Invalidate preamble when new module imports are added
 
 Miscellaneous
 ^^^^^^^^^^^^^
 
+- The "switch between source/header" command prefers an .hpp file
+  over an .h file if both are present
+
+- Added a new standalone tool ``clangd-remap`` for remapping paths
+  inside clangd background index files
+
+- Various crash fixes and stability improvements
+
 Improvements to clang-doc
 -------------------------
 



More information about the llvm-branch-commits mailing list