Skip to content
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

[clangd] Add clangd 18 release notes #84436

Merged
merged 1 commit into from
Mar 15, 2024

Conversation

HighCommander4
Copy link
Collaborator

No description provided.

@llvmbot
Copy link
Collaborator

llvmbot commented Mar 8, 2024

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

Author: Nathan Ridge (HighCommander4)

Changes

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

1 Files Affected:

  • (modified) clang-tools-extra/docs/ReleaseNotes.rst (+31-2)
diff --git a/clang-tools-extra/docs/ReleaseNotes.rst b/clang-tools-extra/docs/ReleaseNotes.rst
index 5758b5acbc0b56..d963642b812fbf 100644
--- a/clang-tools-extra/docs/ReleaseNotes.rst
+++ b/clang-tools-extra/docs/ReleaseNotes.rst
@@ -51,21 +51,40 @@ Improvements to clangd
 Inlay hints
 ^^^^^^^^^^^
 
+- Type hints
+    * Improved heuristics for showing sugared vs. desguared types
+    * Some hints which provide no information (e.g. ``<dependent-type>``) are now omitted
+- Parameter hints
+    * Parameter hints are now shown for calls through function pointers
+    * Parameter hints are now shown for calls to a class's ``operator()``
+    * No longer show bogus parameter hints for some builtins like ``__builtin_dump_struct``
+
 Diagnostics
 ^^^^^^^^^^^
 
-Semantic Highlighting
-^^^^^^^^^^^^^^^^^^^^^
+- Improved quality of include-cleaner diagnostics (missing and unused includes)
 
 Compile flags
 ^^^^^^^^^^^^^
 
+- System include extractor (``--query-driver``) improvements
+    * The directory containing builtin headers is now excluded from extracted system includes
+    * Various flags which can affect the system includes (``--target``, ``--stdlib``, ``-specs``) are now forwarded to the driver
+    * Fixed a bug where clangd would sometimes try to call a driver that didn't have obj-c support with ``-x objective-c++-header``
+    * The driver path is now dot-normalized before being compared to the ``--query-driver`` pattern
+    * ``--query-driver`` is now supported by ``clangd-indexer``
+- Fixed a regression in clangd 17 where response files would not be expanded
+
 Hover
 ^^^^^
 
+- Hover now shows alignment info for fields and records
+
 Code completion
 ^^^^^^^^^^^^^^^
 
+- Refined heuristics for determining whether the use of a function can be a call or not
+
 Code actions
 ^^^^^^^^^^^^
 
@@ -75,15 +94,25 @@ Code actions
 Signature help
 ^^^^^^^^^^^^^^
 
+- Improved support for calls through function pointer types
+
 Cross-references
 ^^^^^^^^^^^^^^^^
 
+- Improved support for C++20 concepts
+- Find-references now works for labels
+- Improvements to template heuristics
+
 Objective-C
 ^^^^^^^^^^^
 
 Miscellaneous
 ^^^^^^^^^^^^^
 
+- Various stability improvements, e.g. crash fixes
+- Improved error recovery on invalid code
+- Clangd now bails gracefully on assembly and IR source files
+
 Improvements to clang-doc
 -------------------------
 

@HighCommander4
Copy link
Collaborator Author

To prepare these, I went through the clangd commits in clangd 18 and made note of what seemed notable to me.

In some areas of the code that I'm less familiar with, I was somewhat vague (e.g. under "Diagnostics" I added "Improved quality of include-cleaner diagnostics (missing and unused includes)"; if someone more familiar with include-cleaner would like to expand on that with more specific improvements, that would be welcome).

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 for doing this @HighCommander4 !

Diagnostics
^^^^^^^^^^^

Semantic Highlighting
^^^^^^^^^^^^^^^^^^^^^
- Improved quality of include-cleaner diagnostics (missing and unused includes)
Copy link
Member

Choose a reason for hiding this comment

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

i'd move this one into include-cleaner release notes (I am also happy to do that myself), a more detailed version could look like:

  • Support for --only-headers flag to limit analysis to headers matching a regex
  • Recognizes references through concepts
  • Builtin headers are not analyzed
  • Handling of references through friend declarations
  • Fixes around handling of IWYU pragmas on stdlib headers
  • Improved handling around references to/from template specializations

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Thanks, I added these in an include-cleaner section

@HighCommander4
Copy link
Collaborator Author

@kadircet do you know what is the process for getting this approved and merged? As this is targeting the release/18.x branch, I do not have permissions to merge it myself like a regular PR.

@kadircet
Copy link
Member

i believe @tstellar should have that power 🚀

Do you mind merging this into the branch, or advise on how we should do that instead?

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.

5 participants