[clangd] Add documentation page
authorMarc-Andre Laperle <marc-andre.laperle@ericsson.com>
Thu, 4 May 2017 19:57:53 +0000 (19:57 +0000)
committerMarc-Andre Laperle <marc-andre.laperle@ericsson.com>
Thu, 4 May 2017 19:57:53 +0000 (19:57 +0000)
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

clang-tools-extra/docs/clangd.rst [new file with mode: 0644]
clang-tools-extra/docs/index.rst

diff --git a/clang-tools-extra/docs/clangd.rst b/clang-tools-extra/docs/clangd.rst
new file mode 100644 (file)
index 0000000..54e68fb
--- /dev/null
@@ -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.
\ No newline at end of file
index 71e2d01..1dc2f93 100644 (file)
@@ -25,6 +25,7 @@ Contents
    modularize
    pp-trace
    clang-rename
+   clangd
 
 
 Doxygen Documentation