[llvm-branch-commits] [clang-tools-extra-branch] r370024 - [clangd] Release notes for 9.x
Sam McCall via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Tue Aug 27 00:01:26 PDT 2019
Date: Tue Aug 27 00:01:25 2019
New Revision: 370024
[clangd] Release notes for 9.x
--- clang-tools-extra/branches/release_90/docs/ReleaseNotes.rst (original)
+++ clang-tools-extra/branches/release_90/docs/ReleaseNotes.rst Tue Aug 27 00:01:25 2019
@@ -47,7 +47,98 @@ Major New Features
Improvements to clangd
-The improvements are...
+- Background indexing is on by default
+ When using clangd, it will build an index of your code base (all files listed
+ in your compile database). This index enables go-to-definition,
+ find-references, and even code completion to find symbols across your project.
+ This feature can consume a lot of CPU. It can be disabled using the
+ ``--background-index=false`` flag, and respects ``-j`` to use fewer threads.
+ The index is written to ``.clangd/index`` in the project root.
+- Contextual code actions
+ Extract variable, expand ``auto``, expand macro, convert string to raw string.
+ More to come in the future!
+- Clang-tidy warnings are available
+ These will be produced for projects that have a ``.clang-tidy`` file in their
+ source tree, as described in the :doc:`clang-tidy documentation <clang-tidy>`.
+- Improved diagnostics
+ Errors from headers are now shown (on the #including line).
+ The message now indicates if fixes are available.
+ Navigation between errors and associated notes is improved (for editors that
+ support ``Diagnostic.relatedInformation``).
+- Suggested includes
+ When a class or other name is not found, clangd may suggest to fix this by
+ adding the corresponding ``#include`` directive.
+- Semantic highlighting
+ clangd can push syntax information to the editor, allowing it to highlight
+ e.g. member variables differently from locals. (requires editor support)
+ This implements the proposed protocol from
+- Type hierachy
+ Navigation to base/derived types is possible in editors that support the
+ proposed protocol from
+- Improvements to include insertion
+ Only headers with ``#include``-guards will be inserted, and the feature can
+ be disabled with the ``--header-insertion=never`` flag.
+ Standard library headers should now be inserted more accurately, particularly
+ for C++ other than libstdc++, and for the C standard library.
+- Code completion
+ Overloads are bundled into a single completion item by default. (for editors
+ that support signature-help).
+ Redundant const/non-const overloads are no longer shown.
+ Before clangd is warmed up (during preamble build), limited identifier- and
+ index-based code completion is available.
+ A new implementation of format-on-type is triggered by hitting enter: it
+ attempts to reformat the previous line and reindent the new line.
+ (Requires editor support).
+- Toolchain header detection
+ Projects that use an embedded gcc toolchain may only work when used with the
+ corresponding standard library. clangd can now query the toolchain to find
+ these headers.
+ The compilation database must correctly specify this toolchain, and the
+ ``--query-driver=/path/to/toolchain/bin/*`` flag must be passed to clangd.
+- Miscellaneous improvements
+ Hover now produces richer Markdown-formatted text (for supported editors).
+ Rename is safer and more helpful, though is still within one file only.
+ Files without extensions (e.g. C++ standard library) are handled better.
+ clangd can understand offsets in UTF-8 or UTF-32 through command-line flags or
+ protocol extensions. (Useful with editors/platforms that don't speak UTF-16).
+ Editors that support edits near the cursor in code-completion can set the
+ ``textDocument.completion.editsNearCursor`` capability to ``true``, and clangd
+ will provide completions that correct ``.`` to ``->``, and vice-versa.
Improvements to clang-doc
More information about the llvm-branch-commits