llvm-project/clang-tools-extra/clangd
Kadir Cetinkaya d3606a3375
[clangd] Provide documentation as MarkupContent in signaturehelp
This unifies the behaviour we have in code completion item
documentations and signaturehelp. Providing better line wrapping and detection
of inline code blocks in comments to be renedered appropriately in markdown.

Differential Revision: https://reviews.llvm.org/D115442
2021-12-10 12:58:08 +01:00
..
benchmarks [clangd] Cleanup FuzzyFindRequest serialization and dex benchmark 2021-07-21 14:51:16 +02:00
fuzzer [clangd] CMake: express -Iclangd/ at top level and inherit 2021-07-02 09:52:36 +02:00
include-mapping [clangd] Make std symbol generation script python3 friendly 2021-11-30 10:15:36 +01:00
index [clangd] Dex Trigrams: Improve query trigram generation 2021-12-07 15:46:13 +01:00
indexer [clangd] Unify compiler invocation creation 2021-07-30 15:22:51 +02:00
quality Make clangd CompletionModel not depend on directory layout. 2021-05-05 19:25:34 +01:00
refactor [clangd] cleanup of header guard names 2021-12-02 15:58:35 +00:00
support [clangd] Attempt to fix buildbots 2021-10-25 20:16:59 -07:00
test [clangd] Provide documentation as MarkupContent in signaturehelp 2021-12-10 12:58:08 +01:00
tool [clangd] Fix function-arg-placeholder suppression with macros. 2021-11-13 20:50:51 +01:00
unittests [clangd] Provide documentation as MarkupContent in signaturehelp 2021-12-10 12:58:08 +01:00
xpc [NFC][clangd] fix llvm-namespace-comment finding 2021-11-16 15:10:32 +00:00
AST.cpp [clangd] Guard against null Attrs in the AST 2021-08-13 10:38:52 +02:00
AST.h [clangd] Add basic support for attributes (selection, hover) 2021-08-06 22:49:14 +02:00
ASTSignals.cpp [clangd] Factor out the heuristic resolver code into its own class 2021-02-16 04:10:52 -05:00
ASTSignals.h [clangd] Trivial: Documentation fix in ASTSignals. 2021-01-14 18:38:42 +01:00
CMakeLists.txt [clangd] IncludeCleaner as a library: Find all references to symbols in the file 2021-08-18 10:08:35 +02:00
CSymbolMap.inc
ClangdLSPServer.cpp [clangd] Provide documentation as MarkupContent in signaturehelp 2021-12-10 12:58:08 +01:00
ClangdLSPServer.h [clangd] Provide documentation as MarkupContent in signaturehelp 2021-12-10 12:58:08 +01:00
ClangdServer.cpp [clangd] Provide documentation as MarkupContent in signaturehelp 2021-12-10 12:58:08 +01:00
ClangdServer.h [clangd] Provide documentation as MarkupContent in signaturehelp 2021-12-10 12:58:08 +01:00
CodeComplete.cpp [clangd] Provide documentation as MarkupContent in signaturehelp 2021-12-10 12:58:08 +01:00
CodeComplete.h [clangd] Provide documentation as MarkupContent in signaturehelp 2021-12-10 12:58:08 +01:00
CodeCompletionStrings.cpp [clangd][ObjC] Fix issue completing a method decl by name 2021-06-01 13:35:05 -04:00
CodeCompletionStrings.h
CollectMacros.cpp [clangd] Support `#pragma mark` in the outline 2021-09-23 17:13:30 -04:00
CollectMacros.h [clangd] cleanup of header guard names 2021-12-02 15:58:35 +00:00
CompileCommands.cpp [clangd] Bail-out when an empty compile flag is encountered 2021-09-20 16:51:56 +02:00
CompileCommands.h [clangd] Unify compiler invocation creation 2021-07-30 15:22:51 +02:00
Compiler.cpp [clangd] Add integration test for crash handling 2021-10-27 11:52:31 +02:00
Compiler.h [clangd] Add integration test for crash handling 2021-10-27 11:52:31 +02:00
Config.cpp [clangd] config() -> Config::current to avoid confict with NS 2020-06-29 23:05:19 +02:00
Config.h [clangd] Make a.k.a printing configurable. 2021-12-08 14:17:01 +08:00
ConfigCompile.cpp [clangd] Make a.k.a printing configurable. 2021-12-08 14:17:01 +08:00
ConfigFragment.h [clangd] Make a.k.a printing configurable. 2021-12-08 14:17:01 +08:00
ConfigProvider.cpp [clangd] Only allow remote index to be enabled from user config. 2021-04-15 14:51:23 +02:00
ConfigProvider.h [clangd] Only allow remote index to be enabled from user config. 2021-04-15 14:51:23 +02:00
ConfigYAML.cpp [clangd] Make a.k.a printing configurable. 2021-12-08 14:17:01 +08:00
Diagnostics.cpp [clangd] Add fixes for clang "include <foo.h>" diagnostics 2021-12-08 16:16:53 +01:00
Diagnostics.h [clangd] Add fixes for clang "include <foo.h>" diagnostics 2021-12-08 16:16:53 +01:00
DraftStore.cpp [clangd][NFC] Silence some buildbot warnings after 0250b053 2021-03-09 14:55:55 +00:00
DraftStore.h [clangd][NFC] Silence some buildbot warnings after 0250b053 2021-03-09 14:55:55 +00:00
DumpAST.cpp Fully qualify template template parameters when printing 2021-09-02 15:04:34 -07:00
DumpAST.h [clangd] Allow AST request without range 2021-04-23 21:35:42 +02:00
ExpectedTypes.cpp
ExpectedTypes.h [clangd] cleanup of header guard names 2021-12-02 15:58:35 +00:00
FS.cpp
FS.h [clangd] Move non-clang base pieces into separate support/ lib. NFCI 2020-04-29 15:57:12 +02:00
Feature.cpp [clangd] Rename Features.h -> Feature.h to avoid confilct with libstdc++ 2021-08-06 18:56:41 +02:00
Feature.h [clangd] Rename Features.h -> Feature.h to avoid confilct with libstdc++ 2021-08-06 18:56:41 +02:00
FeatureModule.cpp [clangd] Rename Module -> FeatureModule to avoid confusion. NFC 2021-03-05 10:04:00 +01:00
FeatureModule.h [clangd] Introduce ASTHooks to FeatureModules 2021-04-13 17:45:09 +02:00
Features.inc.in [clangd] Add CMake option to (not) link in clang-tidy checks 2021-07-14 10:04:21 +02:00
FileDistance.cpp [clangd] NFC: Use SmallVector<T> where possible 2020-12-10 13:36:49 +01:00
FileDistance.h
FindSymbols.cpp [clangd] Support `#pragma mark` in the outline 2021-09-23 17:13:30 -04:00
FindSymbols.h
FindTarget.cpp [clang] retain type sugar in auto / template argument deduction 2021-11-15 23:07:45 +01:00
FindTarget.h [clangd] cleanup of header guard names 2021-12-02 15:58:35 +00:00
Format.cpp [clangd] Replace usages of dummy with more descriptive words 2021-03-22 12:49:24 +01:00
Format.h
FuzzyMatch.cpp [NFC][clangd] cleanup llvm-else-after-return findings 2021-11-17 14:37:03 +00:00
FuzzyMatch.h
GlobalCompilationDatabase.cpp Revert "Revert "[clangd] Adjust compile flags to contain only the requested file as input"" 2021-07-27 14:49:53 +02:00
GlobalCompilationDatabase.h [clangd] Allow configuration database to be specified in config. 2021-01-25 23:15:48 +01:00
HeaderSourceSwitch.cpp [clang-tools-extra] Rename StringRef _lower() method calls to _insensitive() 2021-06-25 00:22:01 +03:00
HeaderSourceSwitch.h [clangd] cleanup of header guard names 2021-12-02 15:58:35 +00:00
Headers.cpp [clangd] Record IWYU pragma keep in the IncludeStructure 2021-12-08 15:55:50 +01:00
Headers.h [clangd] Record IWYU pragma keep in the IncludeStructure 2021-12-08 15:55:50 +01:00
HeuristicResolver.cpp Ensure newlines at the end of files (NFC) 2021-10-23 08:45:29 -07:00
HeuristicResolver.h [clangd] cleanup of header guard names 2021-12-02 15:58:35 +00:00
Hover.cpp [clangd] Make a.k.a printing configurable. 2021-12-08 14:17:01 +08:00
Hover.h [clangd] Add desugared type to hover 2021-12-08 13:28:12 +08:00
IncludeCleaner.cpp [clangd] Suppress IncludeCleaner warnings for headers behind pragma keep 2021-12-08 18:07:40 +01:00
IncludeCleaner.h [clangd] cleanup of header guard names 2021-12-02 15:58:35 +00:00
IncludeFixer.cpp [clangd] Add fixes for clang "include <foo.h>" diagnostics 2021-12-08 16:16:53 +01:00
IncludeFixer.h [clangd] Add fixes for clang "include <foo.h>" diagnostics 2021-12-08 16:16:53 +01:00
InlayHints.cpp [clang] retain type sugar in auto / template argument deduction 2021-11-15 23:07:45 +01:00
InlayHints.h [clangd] cleanup of header guard names 2021-12-02 15:58:35 +00:00
JSONTransport.cpp [NFC][clangd] cleanup llvm-else-after-return findings 2021-11-17 14:37:03 +00:00
LSPBinder.h [clangd] Bind outgoing calls through LSPBinder too. NFC 2021-02-17 10:56:06 +01:00
ParsedAST.cpp [clangd] Record IWYU pragma keep in the IncludeStructure 2021-12-08 15:55:50 +01:00
ParsedAST.h [clangd] Support `#pragma mark` in the outline 2021-09-23 17:13:30 -04:00
PathMapping.cpp [NFC][clangd] cleanup llvm-else-after-return findings 2021-11-17 14:37:03 +00:00
PathMapping.h [clangd] cleanup of header guard names 2021-12-02 15:58:35 +00:00
Preamble.cpp [clangd] Record IWYU pragma keep in the IncludeStructure 2021-12-08 15:55:50 +01:00
Preamble.h [clangd] Support `#pragma mark` in the outline 2021-09-23 17:13:30 -04:00
Protocol.cpp [clangd] Provide documentation as MarkupContent in signaturehelp 2021-12-10 12:58:08 +01:00
Protocol.h [clangd] Provide documentation as MarkupContent in signaturehelp 2021-12-10 12:58:08 +01:00
Quality.cpp [clang-tools-extra] Rename StringRef _lower() method calls to _insensitive() 2021-06-25 00:22:01 +03:00
Quality.h Revert "[clangd] Extract symbol-scope logic out of Quality, add tests. NFC" 2021-01-29 14:59:16 +01:00
QueryDriverDatabase.cpp PR51018: Remove explicit conversions from SmallString to StringRef to future-proof against C++23 2021-07-08 13:37:57 -07:00
README.md [Branch-Rename] Fix some links 2021-02-01 16:43:21 +05:30
RIFF.cpp [clangd] Add error() function for creating formatv-style llvm::Errors. NFC 2020-09-14 10:43:42 +02:00
RIFF.h [clangd] Improve serialization error messages. NFC 2020-07-08 17:31:40 +02:00
Selection.cpp [NFC][clangd] fix clang-tidy finding on isa_and_nonnull 2021-11-18 09:16:54 +00:00
Selection.h [clangd] SelectionTree should prefer lexical declcontext 2021-10-28 17:39:35 +02:00
SemanticHighlighting.cpp [clangd] Ensure lambda init-capture gets semantic token 2021-09-23 03:52:57 -04:00
SemanticHighlighting.h Add semantic token modifier for non-const reference parameter 2021-09-13 00:51:09 -04:00
SemanticSelection.cpp [clang] Simplify buildSyntaxTree API 2020-11-09 22:49:54 +01:00
SemanticSelection.h [clangd] Implement textDocument/foldingRange 2020-07-14 09:28:42 +02:00
SourceCode.cpp [clangd] Record information about non self-contained headers in IncludeStructure 2021-11-26 14:12:54 +01:00
SourceCode.h [clangd] Record information about non self-contained headers in IncludeStructure 2021-11-26 14:12:54 +01:00
StdSymbolMap.inc
TUScheduler.cpp [clangd] Dont include file version in task name 2021-11-17 19:10:09 +01:00
TUScheduler.h [clangd] TUScheduler uses last active file for file-less queries 2021-06-02 22:50:24 +02:00
TidyProvider.cpp [clangd] Disable hicpp-invalid-access-moved inside clangd 2021-11-25 10:27:45 +01:00
TidyProvider.h [clangd] Validate clang-tidy Checks in clangd config. 2020-12-15 21:10:57 +00:00
Transport.h [clangd] Rename Features.h -> Feature.h to avoid confilct with libstdc++ 2021-08-06 18:56:41 +02:00
URI.cpp [clangd] Remove dead variable. NFC 2020-09-30 23:19:15 +02:00
URI.h [clangd] cleanup of header guard names 2021-12-02 15:58:35 +00:00
XRefs.cpp [clangd] Add ObjC method support to prepareCallHierarchy 2021-11-25 11:23:24 +01:00
XRefs.h [clangd] Add SymbolID to LocatedSymbol. 2021-04-28 15:05:53 +02:00

README.md

clangd

clangd is a language server, and provides C++ IDE features to editors. This is not its documentation.

Communication channels

If you have any questions or feedback, you can reach community and developers through one of these channels:

Building and testing clangd

For a minimal setup on building clangd:

  • Clone the LLVM repo to $LLVM_ROOT.

  • Create a build directory, for example at $LLVM_ROOT/build.

  • Inside the build directory run: cmake $LLVM_ROOT/llvm/ -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra".

    • We suggest building in Release mode as building DEBUG binaries requires considerably more resources. You can check Building LLVM with CMake documentation for more details about cmake flags.
    • In addition to that using Ninja as a generator rather than default make is preferred. To do that consider passing -G Ninja to cmake invocation.
    • Finally, you can turn on assertions via -DLLVM_ENABLE_ASSERTS=On.
  • Afterwards you can build clangd with cmake --build $LLVM_ROOT/build --target clangd, similarly run tests by changing target to check-clangd.