Commit 95e1c294 authored by Hans Wennborg's avatar Hans Wennborg
Browse files

Added release notes for clangd 8

By Dmitri Gribenko!

Differential revision: https://reviews.llvm.org/D58721

llvm-svn: 355004
parent f7be79e5
Loading
Loading
Loading
Loading
+51 −1
Original line number Diff line number Diff line
@@ -32,7 +32,57 @@ infrastructure are described first, followed by tool-specific sections.
Improvements to clangd
----------------------

The improvements are...
- clangd now adds namespace qualifiers in code completion, for example, if you
  type "``vec``", the list of completions will include "``std::vector``".

  See also: `r343248 <https://reviews.llvm.org/rL343248>`__.

- When a :ref:`global index <project-wide-index>` is available, clangd will use it to augment the
  results of "go to definition" and "find references" queries. Global index
  also enables global code completion, which suggests symbols that are not
  imported in the current file and automatically inserts the missing
  ``#include`` directives.

- clangd stores the symbol index on disk in a new compact binary serialization
  format.  It is 10x more compact than YAML and 40% more compact than gzipped
  YAML.

  See also: `r341375 <https://reviews.llvm.org/rL341375>`__.

- clangd has a new efficient symbol index suitable for complex and fuzzy
  queries and large code bases (e.g., LLVM, Chromium).  This index is used for
  code completion, go to definition, and cross-references.  The architecture of
  the index allows for complex and fuzzy retrieval criteria and sophisticated
  scoring.

  See also: `discussion on the mailing list
  <http://lists.llvm.org/pipermail/cfe-dev/2018-July/058487.html>`__, `design
  doc
  <https://docs.google.com/document/d/1C-A6PGT6TynyaX4PXyExNMiGmJ2jL1UwV91Kyx11gOI/edit>`__.

- clangd has a new LSP extension that communicates information about activity
  on clangd's per-file worker thread.  This information can be displayed to
  users to let them know that the language server is busy with something.  For
  example, in clangd, building the AST blocks many other operations.

  More info: :ref:`lsp-extension-file-status`.

- clangd has a new LSP extension that allows the client to supply the
  compilation commands over LSP, instead of finding compile_commands.json on
  disk.

  More info: :ref:`lsp-extension-compilation-commands`.

- clangd has a new LSP extension that allows the client to request fixes to be
  sent together with diagnostics, instead of asynchronously.

  More info: :ref:`lsp-extension-code-actions-in-diagnostics`.

- clangd has a new LSP extension that allows the client to resolve a symbol in
  a light-weight manner, without retrieving further information (like
  definition location, which may require consulting an index).

  More info: :ref:`lsp-extension-symbol-info`.


Improvements to clang-query
+8 −0
Original line number Diff line number Diff line
@@ -38,6 +38,8 @@ provided) or source file (if a header was provided).

If the corresponding file can't be determined, ``""`` is returned.

.. _lsp-extension-file-status:

File status
===========

@@ -64,6 +66,8 @@ Parameter: ``FileStatus`` object with properties:

Enables receiving ``textDocument/clangd.fileStatus`` notifications.

.. _lsp-extension-compilation-commands:

Compilation commands
====================

@@ -133,6 +137,8 @@ same code will always have the same category.

Requests that clangd send ``Diagnostic.category``.

.. _lsp-extension-code-actions-in-diagnostics:

Inline fixes for diagnostics
============================

@@ -150,6 +156,8 @@ All the code actions that address this diagnostic.

Requests clangd to send ``Diagnostic.codeActions``.

.. _lsp-extension-symbol-info:

Symbol info request
===================

+2 −0
Original line number Diff line number Diff line
@@ -350,6 +350,8 @@ Clangd will assume the compile command is ``clang $FLAGS some_file.cc``.
Creating this file by hand is a reasonable place to start if your project is
quite simple.

.. _project-wide-index:

Project-wide Index
==================