Skip to content

[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

Merged
merged 1 commit into from
Mar 4, 2025

Conversation

HighCommander4
Copy link
Collaborator

No description provided.

@llvmbot
Copy link
Member

llvmbot commented Feb 16, 2025

@llvm/pr-subscribers-clang-tools-extra

Author: Nathan Ridge (HighCommander4)

Changes

Full diff: https://github.com/llvm/llvm-project/pull/127358.diff

1 Files Affected:

  • (modified) clang-tools-extra/docs/ReleaseNotes.rst (+53-3)
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
Copy link
Collaborator Author

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.

Copy link
Collaborator Author

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?

Copy link
Member

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.

Copy link
Member

@kadircet kadircet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks a lot!

@HighCommander4
Copy link
Collaborator Author

Thanks all for the reviews!

Adding @tstellar to request merging this to the llvm 20 branch.

@HighCommander4
Copy link
Collaborator Author

(Just realized this might be getting overlooked because it's not in the LLVM 20.X Release milestone. Added it now.)

@tstellar tstellar merged commit 794ba17 into llvm:release/20.x Mar 4, 2025
12 checks passed
@github-project-automation github-project-automation bot moved this from Needs Triage to Done in LLVM Release Status Mar 4, 2025
Copy link

github-actions bot commented Mar 4, 2025

@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.

denisboborukhin pushed a commit to denisboborukhin/llvm-project that referenced this pull request Mar 30, 2025
sabitov-kirill added a commit to sabitov-kirill/llvm-project that referenced this pull request Apr 2, 2025
* 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Development

Successfully merging this pull request may close these issues.

6 participants