llvm-project/clang-tools-extra/clangd
Fangrui Song a996cc217c Remove unused #include "llvm/ADT/Optional.h" 2022-12-05 06:31:11 +00:00
..
benchmarks [clang-tools-extra] Fixed a number of typos 2022-08-01 15:32:25 +02:00
fuzzer Reland "[FuzzMutate] Split out FuzzerCLI library that doesn't depend on IR." 2022-05-07 13:49:54 +02:00
index [iwyu] Add Hashing.h 2022-12-05 06:26:26 +00:00
indexer [clangd] Pass the entire tooling::CompileCommand to CommandMangler 2022-11-07 17:58:37 -05:00
quality Make clangd CompletionModel not depend on directory layout. 2021-05-05 19:25:34 +01:00
refactor Remove unused #include "llvm/ADT/Optional.h" 2022-12-05 06:31:11 +00:00
support [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
test [Support] Move getHostNumPhysicalCores to Threading.h 2022-11-29 13:14:13 +00:00
tool [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
unittests [clang-tools-extra] Use std::nullopt instead of None in comments (NFC) 2022-12-04 17:40:28 -08:00
xpc Use value_or instead of getValueOr. NFC 2022-06-29 21:55:02 -07:00
AST.cpp [clang-tools-extra] Use std::nullopt instead of None in comments (NFC) 2022-12-04 17:40:28 -08:00
AST.h AST.h - fix Wdocumentation warnings. NFC. 2022-08-01 15:38:06 +01:00
ASTSignals.cpp [clangd] Record latency for ASTSignal derivation 2022-04-28 14:34:39 +02:00
ASTSignals.h
CMakeLists.txt [clangd] Rename QueryDriverDatabase.cpp to SystemIncludeExtractor.cpp 2022-11-07 17:58:42 -05:00
ClangdLSPServer.cpp [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
ClangdLSPServer.h [clangd] Support for standard type hierarchy 2022-08-17 09:29:15 +02:00
ClangdServer.cpp [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
ClangdServer.h [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
CodeComplete.cpp [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
CodeComplete.h [clangd] Add scoped enum constants to all-scopes-completion 2022-11-02 20:38:01 +01:00
CodeCompletionStrings.cpp [clangd] Do not try to use $0 as a placeholder in completion snippets 2022-07-24 03:01:18 -04:00
CodeCompletionStrings.h
CollectMacros.cpp [clangd] Clean up unused includes. NFCI 2022-02-26 12:00:16 +01:00
CollectMacros.h [clangd] Clean up unused includes. NFCI 2022-02-26 12:00:16 +01:00
CompileCommands.cpp [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
CompileCommands.h [clangd] Perform system include extraction inside CommandMangler 2022-11-07 17:58:39 -05:00
Compiler.cpp [clangd] Skip extra round-trip in parsing args in debug builds. NFC 2022-05-09 14:45:35 +02:00
Compiler.h [clangd] parse all make_unique-like functions in preamble 2022-05-16 11:17:25 +02:00
Config.cpp
Config.h [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
ConfigCompile.cpp [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
ConfigFragment.h [clang-tools-extra] Fixed a number of typos 2022-08-01 15:32:25 +02:00
ConfigProvider.cpp [clangd] Clean up unused includes. NFCI 2022-02-26 12:00:16 +01:00
ConfigProvider.h [clangd] Clean up unused includes. NFCI 2022-02-26 12:00:16 +01:00
ConfigYAML.cpp [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
Diagnostics.cpp [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
Diagnostics.h Avoid uninitialized Diag.ID (which we pass but never read) 2022-05-20 20:29:47 +02:00
DraftStore.cpp [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
DraftStore.h [clangd] Clean up unused includes. NFCI 2022-02-26 12:00:16 +01:00
DumpAST.cpp [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
DumpAST.h [clang] Forward-declare DynTypedNode (NFC) 2022-01-23 13:28:04 -08:00
ExpectedTypes.cpp [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
ExpectedTypes.h [clangd] cleanup of header guard names 2021-12-02 15:58:35 +00:00
FS.cpp [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
FS.h
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 Don't use Optional::hasValue (NFC) 2022-06-26 19:54:41 -07:00
FeatureModule.h [clangd] Add beforeExecute() callback to FeatureModules. 2022-04-21 18:03:39 +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] Clean up unused includes. NFCI 2022-02-26 12:00:16 +01:00
FileDistance.h [clangd] Clean up unused includes. NFCI 2022-02-26 12:00:16 +01:00
FindSymbols.cpp [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
FindSymbols.h
FindTarget.cpp [AST] Preserve more structure in UsingEnumDecl node. 2022-10-12 19:54:51 +02:00
FindTarget.h [clangd] Clean up unused includes. NFCI 2022-02-26 12:00:16 +01:00
Format.cpp [clangd] Handle tabs in getIncrementalChangesAfterNewline() 2022-03-29 01:43:09 -04:00
Format.h [clangd] Clean up unused includes. NFCI 2022-02-26 12:00:16 +01:00
FuzzyMatch.cpp [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
FuzzyMatch.h
GlobalCompilationDatabase.cpp [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
GlobalCompilationDatabase.h [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
HeaderSourceSwitch.cpp [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
HeaderSourceSwitch.h [clangd] cleanup of header guard names 2021-12-02 15:58:35 +00:00
Headers.cpp [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
Headers.h [clang-tools-extra] Use std::nullopt instead of None in comments (NFC) 2022-12-04 17:40:28 -08:00
HeuristicResolver.cpp NFC: [clang] Template argument cleanups. 2022-10-25 00:29:56 +02:00
HeuristicResolver.h Go-to-type on smart_ptr<Foo> now also shows Foo 2022-07-11 12:13:47 +02:00
Hover.cpp [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
Hover.h [clangd] getHover - pass FormatStyle argument by const reference 2022-02-18 17:27:45 +00:00
IncludeCleaner.cpp [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
IncludeCleaner.h Reland "[clangd] IncludeCleaner: Add support for IWYU pragma private" 2022-04-05 16:57:39 +02:00
IncludeFixer.cpp [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
IncludeFixer.h [clang-tools-extra] Use std::nullopt instead of None in comments (NFC) 2022-12-04 17:40:28 -08:00
InlayHints.cpp [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
InlayHints.h [clangd] Polish clangd/inlayHints and expose them by default. 2022-01-07 15:12:43 +01:00
JSONTransport.cpp [clang-tools-extra] Use value_or instead of getValueOr (NFC) 2022-06-19 00:13:38 -07:00
LSPBinder.h
ParsedAST.cpp [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
ParsedAST.h [clangd][NFCI] Store TUPath inside ParsedAST 2022-07-29 13:23:42 +02:00
PathMapping.cpp [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
PathMapping.h [clangd] cleanup of header guard names 2021-12-02 15:58:35 +00:00
Preamble.cpp [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
Preamble.h [clangd] Export preamble AST and serialized size as metrics 2022-04-13 14:43:06 +02:00
Protocol.cpp FoldingRanges: Handle LineFoldingsOnly clients. 2022-08-29 19:03:48 +02:00
Protocol.h Fix dupe word typos 2022-11-08 15:29:12 +01:00
Quality.cpp [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
Quality.h [clangd] Clean up unused includes. NFCI 2022-02-26 12:00:16 +01:00
README.md
RIFF.cpp
RIFF.h [clangd] Clean up unused includes. NFCI 2022-02-26 12:00:16 +01:00
Selection.cpp [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
Selection.h [clangd] SelectionTree should prefer lexical declcontext 2021-10-28 17:39:35 +02:00
SemanticHighlighting.cpp [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
SemanticHighlighting.h [clangd] Mark "override" and "final" as modifiers 2022-11-21 22:01:12 +01:00
SemanticSelection.cpp [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
SemanticSelection.h FoldingRanges: Handle LineFoldingsOnly clients. 2022-08-29 19:03:48 +02:00
SourceCode.cpp [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
SourceCode.h [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
SystemIncludeExtractor.cpp [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
TUScheduler.cpp [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
TUScheduler.h [clangd] Fix missing key function in PreambleThrottler 2022-07-06 18:27:09 +02:00
TidyFastChecks.inc [clangd] Add script to maintain list of fast clang-tidy checks 2022-11-28 14:29:23 +01:00
TidyFastChecks.py [clangd] Add script to maintain list of fast clang-tidy checks 2022-11-28 14:29:23 +01:00
TidyProvider.cpp [clangd] Block clang-tidy misc-const-correctness check 2022-10-13 12:07:31 +02:00
TidyProvider.h [clangd] Clean up unused includes. NFCI 2022-02-26 12:00:16 +01:00
Transport.h [clangd] Rename Features.h -> Feature.h to avoid confilct with libstdc++ 2021-08-06 18:56:41 +02:00
URI.cpp Use llvm::all_of (NFC) 2022-08-14 16:25:36 -07:00
URI.h [clangd] cleanup of header guard names 2021-12-02 15:58:35 +00:00
XRefs.cpp [clang-tools-extra] Use std::nullopt instead of None (NFC) 2022-12-03 11:54:50 -08:00
XRefs.h [clangd] Support for standard type hierarchy 2022-08-17 09:29:15 +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.