summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam McCall <sam.mccall@gmail.com>2019-08-27 07:01:25 +0000
committerSam McCall <sam.mccall@gmail.com>2019-08-27 07:01:25 +0000
commitdc9e293651b12f0dbd91cd2b34696454a41be6d7 (patch)
tree3d7695696d2fac7210640eeed674ccb246bfb1fd
parenta811e5301a89d2a650519a36760ad2e6ff4f138a (diff)
[clangd] Release notes for 9.x
git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/branches/release_90@370024 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--docs/ReleaseNotes.rst93
1 files changed, 92 insertions, 1 deletions
diff --git a/docs/ReleaseNotes.rst b/docs/ReleaseNotes.rst
index 0f52c53d..465c0aba 100644
--- a/docs/ReleaseNotes.rst
+++ b/docs/ReleaseNotes.rst
@@ -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
-------------------------