malaperle-ericsson updated this revision to Diff 95078. malaperle-ericsson added a comment.
Fix mention of "extra Clang tools" 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 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 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