[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


Author: sammccall
Date: Tue Aug 27 00:01:25 2019
New Revision: 370024

URL: http://llvm.org/viewvc/llvm-project?rev=370024&view=rev
Log:
[clangd] Release notes for 9.x


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

Modified: clang-tools-extra/branches/release_90/docs/ReleaseNotes.rst
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/branches/release_90/docs/ReleaseNotes.rst?rev=370024&r1=370023&r2=370024&view=diff
==============================================================================
--- 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
+  https://github.com/microsoft/vscode-languageserver-node/pull/367
+
+- Type hierachy
+
+  Navigation to base/derived types is possible in editors that support the
+  proposed protocol from
+  https://github.com/microsoft/vscode-languageserver-node/pull/426
+
+- 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.
+
+- Format-on-type
+
+  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 mailing list