Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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
- Loading branch information
Showing
2 changed files
with
107 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -25,6 +25,7 @@ Contents | |
modularize | ||
pp-trace | ||
clang-rename | ||
clangd | ||
|
||
|
||
Doxygen Documentation | ||
|