-
Notifications
You must be signed in to change notification settings - Fork 13.7k
[clangd] Add clangd 20 release notes #127358
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
@llvm/pr-subscribers-clang-tools-extra Author: Nathan Ridge (HighCommander4) ChangesFull diff: https://github.com/llvm/llvm-project/pull/127358.diff 1 Files Affected:
diff --git a/clang-tools-extra/docs/ReleaseNotes.rst b/clang-tools-extra/docs/ReleaseNotes.rst
index cc5f64a3f9fa3..35de182ceddf4 100644
--- a/clang-tools-extra/docs/ReleaseNotes.rst
+++ b/clang-tools-extra/docs/ReleaseNotes.rst
@@ -56,7 +56,8 @@ Improvements to clangd
Inlay hints
^^^^^^^^^^^
-- Added `DefaultArguments` Inlay Hints option.
+- Added support for inlay hints for default arguments, enabled using the
+ `DefaultArguments` config option (#GH95712)
Diagnostics
^^^^^^^^^^^
@@ -67,21 +68,45 @@ Semantic Highlighting
Compile flags
^^^^^^^^^^^^^
+- Fixed a bug where clangd would unnecessarily reparse open files whose
+ compile command did not change when receiving a new compile command
+ via an LSP `workspace/configuration` request (#GH115438)
+
Hover
^^^^^
+- Hovering over a function name now shows the function's documentation
+ comment even if the comment is written above the function's out-of-line
+ definition in a different source file (#GH67802)
+
Code completion
^^^^^^^^^^^^^^^
+- Added an `ArgumentLists` config option under `Completion`. This is a more
+ flexible version of the `--function-arg-placeholders` command line flag,
+ allowing users more detailed control of what is inserted in argument list
+ position when clangd completes the name of a function in a function call
+ context. (#GH111322)
+- Clangd now supports configuring which headers should be inserted using
+ `<>` vs. `""` syntax using the `QuotedHeaders` and `AngledHeaders` config
+ options under `Style` (#GH67749)
- Added completion for C++20 keywords.
+- Clangd's `HeuristicResolver` component was upstreamed to `libSema` where
+ code completion can take advantage of it, resulting in improved code
+ completion in templated code
+- Code completion proposals for symbols defined in included headers now
+ include documentation comments (#GH120099)
Code actions
^^^^^^^^^^^^
- Added `Swap operands` tweak for certain binary operators.
-
- Improved the extract-to-function code action to allow extracting statements
with overloaded operators like ``<<`` of ``std::ostream``.
+- `Define outline` now handles member functions of class templates, and
+ member function templates.
+- `Extract variable` can now operate on the top-level expression in an
+ expression statement (#GH112525)
Signature help
^^^^^^^^^^^^^^
@@ -89,13 +114,38 @@ Signature help
Cross-references
^^^^^^^^^^^^^^^^
+- Clangd now supports the "outgoing calls" direction of call hierarchy
+ (#GH77556)
+- Call hierarchy can now be invoked on fields and namespace-scope
+ variables (#GH113900)
+- Improved heuristics for filtering out generated Protobuf symbol names
+ during indexing (#GH110091)
+- Compiler intrinsics defined in `*intrin.h` system headers are now
+ indexed even if they have reserved names (#GH119735)
+- Various improvements to go-to-definition in templated code
+
Objective-C
^^^^^^^^^^^
+Clang-tidy integration
+^^^^^^^^^^^^^^^^^^^^^^
+
+- Improved robustness in handling clang-tidy check names (#GH109421)
+
+C++20 Modules Support
+^^^^^^^^^^^^^^^^^^^^^
+
+- Support code completion for symbols defined in modules (#GH110083)
+- Improve performance when opening files that import modules (#GH106683)
+- Compile commands for modules now respect modifications specified in `.clangd`
+ files (#GH122606)
+
Miscellaneous
^^^^^^^^^^^^^
-- The DefineOutline tweak now handles member functions of class templates.
+- Fixed an OOM affecting some versions of libcxx headers compiled in C++20
+ mode (#GH108866)
+- Various other stability improvements, e.g. crash fixes
Improvements to clang-doc
-------------------------
|
|
||
- Improved robustness in handling clang-tidy check names (#GH109421) | ||
|
||
C++20 Modules Support |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ChuanqiXu9 I would appreciate if you could look over this section in particular. I added entries for the modules-related commits that seemed notable to me, but I'm definitely happy to add other entries / add more details / adjust wording etc.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ChuanqiXu9 and a follow-up question, do you think we should make any update to https://clangd.llvm.org/features#experimental-c20-modules-support for clangd 20?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the current wording is fine. Or we can say we improved the efficiency of support for modules in clangd20.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks a lot!
77080f8
to
8359f75
Compare
Thanks all for the reviews! Adding @tstellar to request merging this to the llvm 20 branch. |
(Just realized this might be getting overlooked because it's not in the LLVM 20.X Release milestone. Added it now.) |
@HighCommander4 (or anyone else). If you would like to add a note about this fix in the release notes (completely optional). Please reply to this comment with a one or two sentence description of the fix. When you are done, please add the release:note label to this PR. |
* workflows/release-binaries-all: Add missing secret input (llvm#126921) Since d194c6b this workflow was missing the secret input which was causing it to fail. (cherry picked from commit a684e0e) * workflows/release-binaries: Fix macos-14 build (llvm#127157) This was broken when pgo was enabled by 0572580. (cherry picked from commit d595d5a) * [clang-format] Fix a bug that changes keyword `or` to an identifier (llvm#128410) Backports ffc61dc 0968df9 2d585cc Fixes llvm#105482 * [clangd] Add clangd 20 release notes (llvm#127358) * Bump version to 20.1.0 (final) * Add dummy "SystemS" target * Add barebone SystemS backend initislisation, that can succsesfully perform`CodeGenTargetMachineImpl::initAsmInfo`. Commit includes simplest form of registers, instructions, subtarget descrption. Commit includes simple lit test to check how far we can get in performing end-to-end compilation pipeline. * Add functional backend, that can emit basical asm * Add different testing scenarious * Add dag selection to pass config
No description provided.