forked from OSchip/llvm-project
[clangd] Add documentation page
Summary: Add a simple documentation page for Clangd. This will be useful for interested users and contributors to get basic information about how to get started and the progress of Clangd. Reviewers: krasimir, bkramer Reviewed By: krasimir Subscribers: Prazek, jbcoe, JDevlieghere, mgehre, JonasToth, kromanenkov, xazax.hun, cfe-commits Tags: #clang-tools-extra Differential Revision: https://reviews.llvm.org/D31887 llvm-svn: 302191
This commit is contained in:
parent
9ed65da6ad
commit
25624f4c41
|
@ -0,0 +1,106 @@
|
|||
============
|
||||
Clangd
|
||||
============
|
||||
|
||||
.. contents::
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
:program:`Clangd` is an implementation of the `Language Server Protocol
|
||||
<https://github.com/Microsoft/language-server-protocol>`_ leveraging Clang.
|
||||
Clangd's goal is to provide language "smartness" features like code completion,
|
||||
find references, etc. for clients such as C/C++ Editors.
|
||||
|
||||
Using Clangd
|
||||
==================
|
||||
|
||||
:program:`Clangd` is not meant to be used by C/C++ developers directly but
|
||||
rather from a client implementing the protocol. A client would be typically
|
||||
implemented in an IDE or an editor.
|
||||
|
||||
At the moment, `Visual Studio Code <https://code.visualstudio.com/>`_ is mainly
|
||||
used in order to test :program:`Clangd` but more clients are likely to make
|
||||
use of :program:`Clangd` in the future as it matures and becomes a production
|
||||
quality tool. If you are interested in trying :program:`Clangd` in combination
|
||||
with Visual Studio Code, you can start by `building Clangd`_, then open Visual
|
||||
Studio Code in the clangd-vscode folder and launch the extension.
|
||||
|
||||
Building Clangd
|
||||
==================
|
||||
|
||||
You can follow the instructions for `building Clang
|
||||
<https://clang.llvm.org/get_started.html>`_ but "extra Clang tools" is **not**
|
||||
optional.
|
||||
|
||||
Current Status
|
||||
==================
|
||||
|
||||
Many features could be implemented in :program:`Clangd`.
|
||||
Here is a list of features that could be useful with the status of whether or
|
||||
not they are already implemented in :program:`Clangd` and specified in the
|
||||
Language Server Protocol. Note that for some of the features, it is not clear
|
||||
whether or not they should be part of the Language Server Protocol, so those
|
||||
features might be eventually developed outside :program:`Clangd`.
|
||||
|
||||
+-------------------------------------+------------+----------+
|
||||
| C/C++ Editor feature | LSP | Clangd |
|
||||
+=====================================+============+==========+
|
||||
| Formatting | Yes | Yes |
|
||||
+-------------------------------------+------------+----------+
|
||||
| Completion | Yes | Yes |
|
||||
+-------------------------------------+------------+----------+
|
||||
| Diagnostics | Yes | Yes |
|
||||
+-------------------------------------+------------+----------+
|
||||
| Fix-its | Yes | Yes |
|
||||
+-------------------------------------+------------+----------+
|
||||
| Go to Definition | Yes | No |
|
||||
+-------------------------------------+------------+----------+
|
||||
| Source hover | Yes | No |
|
||||
+-------------------------------------+------------+----------+
|
||||
| Signature Help | Yes | No |
|
||||
+-------------------------------------+------------+----------+
|
||||
| Find References | Yes | No |
|
||||
+-------------------------------------+------------+----------+
|
||||
| Document Highlights | Yes | No |
|
||||
+-------------------------------------+------------+----------+
|
||||
| Rename | Yes | No |
|
||||
+-------------------------------------+------------+----------+
|
||||
| Code Lens | Yes | No |
|
||||
+-------------------------------------+------------+----------+
|
||||
| Syntax and Semantic Coloring | No | No |
|
||||
+-------------------------------------+------------+----------+
|
||||
| Code folding | No | No |
|
||||
+-------------------------------------+------------+----------+
|
||||
| Call hierarchy | No | No |
|
||||
+-------------------------------------+------------+----------+
|
||||
| Type hierarchy | No | No |
|
||||
+-------------------------------------+------------+----------+
|
||||
| Organize Includes | No | No |
|
||||
+-------------------------------------+------------+----------+
|
||||
| Quick Assist | No | No |
|
||||
+-------------------------------------+------------+----------+
|
||||
| Extract Local Variable | No | No |
|
||||
+-------------------------------------+------------+----------+
|
||||
| Extract Function/Method | No | No |
|
||||
+-------------------------------------+------------+----------+
|
||||
| Hide Method | No | No |
|
||||
+-------------------------------------+------------+----------+
|
||||
| Implement Method | No | No |
|
||||
+-------------------------------------+------------+----------+
|
||||
| Gen. Getters/Setters | No | No |
|
||||
+-------------------------------------+------------+----------+
|
||||
|
||||
Getting Involved
|
||||
==================
|
||||
|
||||
A good place for interested contributors is the `Clang developer mailing list
|
||||
<http://lists.llvm.org/mailman/listinfo/cfe-dev>`_.
|
||||
If you're also interested in contributing patches to :program:`Clangd`, take a
|
||||
look at the `LLVM Developer Policy
|
||||
<http://llvm.org/docs/DeveloperPolicy.html>`_ and `Code Reviews
|
||||
<http://llvm.org/docs/Phabricator.html>`_ page. Contributions of new features
|
||||
to the `Language Server Protocol
|
||||
<https://github.com/Microsoft/language-server-protocol>`_ itself would also be
|
||||
very useful, so that :program:`Clangd` can eventually implement them in a
|
||||
conforming way.
|
|
@ -25,6 +25,7 @@ Contents
|
|||
modularize
|
||||
pp-trace
|
||||
clang-rename
|
||||
clangd
|
||||
|
||||
|
||||
Doxygen Documentation
|
||||
|
|
Loading…
Reference in New Issue