[clang-tools-extra] r369934 - [clangd] Release notes
Sam McCall via cfe-commits
cfe-commits at lists.llvm.org
Mon Aug 26 10:47:44 PDT 2019
Author: sammccall
Date: Mon Aug 26 10:47:44 2019
New Revision: 369934
URL: http://llvm.org/viewvc/llvm-project?rev=369934&view=rev
Log:
[clangd] Release notes
Modified:
clang-tools-extra/trunk/docs/ReleaseNotes.rst
Modified: clang-tools-extra/trunk/docs/ReleaseNotes.rst
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/ReleaseNotes.rst?rev=369934&r1=369933&r2=369934&view=diff
==============================================================================
--- clang-tools-extra/trunk/docs/ReleaseNotes.rst (original)
+++ clang-tools-extra/trunk/docs/ReleaseNotes.rst Mon Aug 26 10:47:44 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 cfe-commits
mailing list