[clang-tools-extra] e9cba78 - [clangd] Group and extend release notes

Sam McCall via cfe-commits cfe-commits at lists.llvm.org
Tue Feb 1 06:52:05 PST 2022


Author: Sam McCall
Date: 2022-02-01T15:51:57+01:00
New Revision: e9cba7865323425e9c7d3b8a14d7c19fab3d6b65

URL: https://github.com/llvm/llvm-project/commit/e9cba7865323425e9c7d3b8a14d7c19fab3d6b65
DIFF: https://github.com/llvm/llvm-project/commit/e9cba7865323425e9c7d3b8a14d7c19fab3d6b65.diff

LOG: [clangd] Group and extend release notes

Added: 
    

Modified: 
    clang-tools-extra/docs/ReleaseNotes.rst

Removed: 
    


################################################################################
diff  --git a/clang-tools-extra/docs/ReleaseNotes.rst b/clang-tools-extra/docs/ReleaseNotes.rst
index 3724f643c6165..d1f7f6bdf05dc 100644
--- a/clang-tools-extra/docs/ReleaseNotes.rst
+++ b/clang-tools-extra/docs/ReleaseNotes.rst
@@ -47,85 +47,138 @@ Major New Features
 Improvements to clangd
 ----------------------
 
-- `clangd/inlayHints <https://clangd.llvm.org/extensions#inlay-hints>`_
-  LSP extension to provide information not directly available in code,
+Inlay hints
+^^^^^^^^^^^
+
+- This feature provides texutal hints interleaved with the code,
   like parameter names, deduced types and designated initializers.
 
-- Diagnostics and fixes for `unused include
-  <https://clangd.llvm.org/design/include-cleaner>`_ directives, according to
-  IWYU style. Off by default, can be turned on through
-  `Diagnostics.IncludeCleaner <https://clangd.llvm.org/config#unusedincludes>`_
-  config option.
+- The `clangd/inlayHints <https://clangd.llvm.org/extensions#inlay-hints>`_
+  LSP extension is now documented, and both position and range.
 
-- Support for ``textDocument/typeDefinition`` LSP request.
+- Inlay hints are now on-by-default in clangd, if the client supports and
+  exposes them. (`vscode-clangd
+  <https://marketplace.visualstudio.com/items?itemName=llvm-vs-code-extensions.vscode-clangd>`_
+  does so). The ``-inlay-hints`` flag has been removed.
 
-- Relevant diagnostics are emitted with ``Deprecated`` and ``Unnecessary``
-  tags from LSP 3.15.
+- Inlay hints can be `disabled or configured
+  <https://clangd.llvm.org/config#inlayhints>`_ in the config file.
 
-- Richer ``semanticTokens`` information for:
+Diagnostics
+^^^^^^^^^^^
 
-  - Virtual methods
-  - Mutable reference arguments
-  - Lambda captures
+- `Unused #include
+  <https://clangd.llvm.org/design/include-cleaner>`_ diagnostics are available.
+  These are off by default, and can be turned on through the
+  `Diagnostics.UnusedIncludes <https://clangd.llvm.org/config#unusedincludes>`_
+  config option.
 
-- Support for attributes, (e.g. ``[[nodiscard, gsl::Owner(Foo)]]``) in various
-  features like hover, code completion, go-to-definition.
+- ``Deprecated`` and ``Unnecessary`` tags from LSP 3.15 are set on
+  ``-Wdeprecated`` and ``-Wunused`` diagnostics. Clients may display these
+  in a specialized way.
 
-- ``#pragma mark`` directives now show up in document outline.
+- clangd suggests inserting includes to fix problems in more cases:
 
-- ``hover`` on include directives shows the resolved header path.
+  - calling unknown functions in C, even when an implicit declaration is
+    inferred.
+  - incomplete types (some additional cases).
+  - various diagnostics that specify "include <foo.h>" in their text.
 
-- ``hover`` on character literals shows their numeric value.
+- The "populate switch" action is more reliably offered as a fix for
+  ``-Wswitch`` warnings, and works with C enums.
 
-- Include desugared types in hover, controlled with `Hover.ShowAKA
-  <https://clangd.llvm.org/config#showaka>`_ config option.
+- Warnings specified by ``ExtraArgs: -W...`` flags in ``.clang-tidy`` config
+  files are now produced.
 
-- Extra diagnostic fixes to insert includes:
+Semantic Highlighting
+^^^^^^^^^^^^^^^^^^^^^
 
-  - Includes are suggested in C even when an implicit declaration is generated.
-  - Incomplete types (some additional cases).
+- ``virtual`` modifier for method names
+- ``usedAsMutableReference`` modifier for function parameters
+- Lambda captures now marked as local variables.
 
-- Code completion for ``/*ParameterName=*/`` commetns.
+Compile flags
+^^^^^^^^^^^^^
 
-- Provide and improve signature help for:
+- Compile flags like ``-xc++-header`` that must precede input file names are now
+  added correctly by the
+  `CompileFlags.Add <https://clangd.llvm.org/config#add>`_ config option.
 
-  - Variadic functions
-  - Template argument lists
-  - Braced constructor calls
-  - Aggregate initializers
-  - Constructor initializers
+- If multiple architectures are specified (e.g. when targeting Apple M1+Intel),
+  clangd will now use the host architecture instead of failing to parse.
 
-- Improved handling of short identifiers in code completion and workspace symbol
-  requests.
+- Added `CompileFlags.Compiler <https://clangd.llvm.org/config#compiler>`_
+  option to override executable name in compile flags.
 
-- Improved handling of symbols introduced via using declarations.
+- Copying ``compile_commands.json`` entries from one file to another (and simply
+  adjusting ``file``) should now work correctly.
 
-- Provide extra warnings specified in ``.clang-tidy`` config files by
-  ``ExtraArgs(Before)`` sections.
+Hover
+^^^^^
 
-- `CompileFlags.Compiler <https://clangd.llvm.org/config#compiler>`_ config
-  option to override executable name in compile flags.
+- Hovering on many attributes (e.g. ``[[nodiscard]]``) will show documentation.
+- Hovering on include directives shows the resolved header path.
+- Hovering on character literals shows their numeric value.
+- Code snippets are marked with the appropriate language instead of always C++.
+  This may improve clients' syntax highlighting.
+- Include desugared types in hover, like in diagnostics.
+  Off by default, controlled with `Hover.ShowAKA
+  <https://clangd.llvm.org/config#showaka>`_ config option.
 
-- Compile flags like ``-xc++-header`` that must precede input file names are now
-  added correctly by the
-  `CompileFlags.Add <https://clangd.llvm.org/config#add>`_ config option.
+Code completion
+^^^^^^^^^^^^^^^
+
+- Completion of attributes (e.g. ``[[gsl::Owner(Foo)]]``)
+- Completion of ``/*ParameterName=*/`` comments.
+- Documentation of items with ``annotate`` attributes now includes the
+  annotation.
+- Improved handling of results with 1-3 character names.
+- Completion of members in constructor init lists (``Foo() : member_() {}``) is
+  much more reliable.
+- C++ Standard library completions should be less noisy: parameter names are
+  deuglified (``vector<_Tp>`` is now ``vector<Tp>``) and many
+  ``__implementation_details`` are hidden altogether.
+
+Signature help
+^^^^^^^^^^^^^^
 
-- The "populate switch" code action is now offered as a fix for ``-Wswitch``
-  warnings, and works with C/ObjC enums.
+- Signatures for template argument lists
+- Signatures for braced constructor calls
+- Signatures for aggregate initializers
+- Signatures for members in constructor init lists are much more reliable.
+- Variadic functions correctly show signature help when typing the variadic
+  arguments.
+- Signature help is retriggered on closing brackets ``)``, ``}``, ``>``.
+  This means signature help should be correct after nested function calls.
 
-- ``clangd --check=/path/to/file.cpp`` now reads config files in ancestor
-  directories, in addition to user config file.
+Cross-references
+^^^^^^^^^^^^^^^^
 
-- Improved compile flags handling in ``clangd-indexer``.
+- Support for ``textDocument/typeDefinition`` LSP request.
+- Improved handling of symbols introduced via using declarations.
+- Searching for references to an overriding method also returns references to
+  the base class method. (Typically calls that may invoke the override).
+- All references from the current file are always returned, even if there are
+  enough to exceed our usual limit.
 
-- ``-use-dirty-headers`` command line flag to use dirty buffer contents when
-  parsing headers, rather than the saved on-disk contents.
+Objective-C
+^^^^^^^^^^^
 
-- Improved handling of ObjC/ObjC++ constructs.
+- ``#pragma mark`` directives now form groups in the document outline.
+- ``id`` and ``instancetype`` are treated as keywords rather than typedefs
 
-- Include request context on crashes when possible.
+Miscellaneous
+^^^^^^^^^^^^^
 
-- Various stability and performance improvements.
+- Include request context on crashes when possible.
+- Many stability, performance and correctness improvements.
+- ``-use-dirty-headers`` command line flag to use dirty buffer contents when
+  parsing headers, rather than the saved on-disk contents.
+- ``clangd --check=/path/to/file.cpp`` now reads config files in ancestor
+  directories, in addition to user config file.
+- Improved compile flags handling in ``clangd-indexer``.
+- The index file format changed in this release, indexes need to be rebuilt.
+  This should happen transparently in standard cases (the background index).
 
 Improvements to clang-doc
 -------------------------


        


More information about the cfe-commits mailing list