[llvm-branch-commits] [clang-tools-extra] [clangd] Add clangd 23 release notes (PR #211990)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Fri Jul 24 23:20:44 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang-tools-extra
Author: Nathan Ridge (HighCommander4)
<details>
<summary>Changes</summary>
---
Full diff: https://github.com/llvm/llvm-project/pull/211990.diff
1 Files Affected:
- (modified) clang-tools-extra/docs/ReleaseNotes.rst (+108-11)
``````````diff
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
-------------------------
``````````
</details>
https://github.com/llvm/llvm-project/pull/211990
More information about the llvm-branch-commits
mailing list