malaperle-ericsson updated this revision to Diff 94815.
malaperle-ericsson marked 6 inline comments as done.
malaperle-ericsson added a comment.

Fixed typos and other comments.


https://reviews.llvm.org/D31887

Files:
  docs/clangd.rst
  docs/index.rst

Index: docs/index.rst
===================================================================
--- docs/index.rst
+++ docs/index.rst
@@ -25,6 +25,7 @@
    modularize
    pp-trace
    clang-rename
+   clangd
 
 
 Doxygen Documentation
Index: docs/clangd.rst
===================================================================
--- /dev/null
+++ docs/clangd.rst
@@ -0,0 +1,94 @@
+============
+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 Tool" 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 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 Clangd can eventually implement them in a conforming way.
\ No newline at end of file
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to