llvm-project/clang-tools-extra/clangd
David Blaikie 1def2579e1 PR51018: Remove explicit conversions from SmallString to StringRef to future-proof against C++23
C++23 will make these conversions ambiguous - so fix them to make the
codebase forward-compatible with C++23 (& a follow-up change I've made
will make this ambiguous/invalid even in <C++23 so we don't regress
this & it generally improves the code anyway)
2021-07-08 13:37:57 -07:00
..
benchmarks [clangd] CMake: express -Iclangd/ at top level and inherit 2021-07-02 09:52:36 +02:00
fuzzer [clangd] CMake: express -Iclangd/ at top level and inherit 2021-07-02 09:52:36 +02:00
include-mapping
index [clangd] NFC: Remove outdated comment 2021-07-05 13:58:54 +02:00
indexer [clangd] CMake: express -Iclangd/ at top level and inherit 2021-07-02 09:52:36 +02:00
quality Make clangd CompletionModel not depend on directory layout. 2021-05-05 19:25:34 +01:00
refactor [clangd] Add a flag to disable formatting of tweak edits 2021-06-28 20:52:47 +02:00
support Recommit: Support: add llvm::thread class that supports specifying stack size. 2021-07-08 16:22:26 +01:00
test [clangd] Introduce a log-prefix flag to remote-index-server 2021-06-25 16:51:29 +02:00
tool Revert "[clangd] Unbreak mac build differently 0c96a92d8666b8" 2021-07-02 16:29:48 +02:00
unittests [clangd] Type hints for structured bindings 2021-07-04 21:53:36 -04:00
xpc [clangd] CMake: express -Iclangd/ at top level and inherit 2021-07-02 09:52:36 +02:00
AST.cpp [clangd] Dont index deeply nested symbols 2021-04-27 12:34:56 +02:00
AST.h [clangd] Dont index deeply nested symbols 2021-04-27 12:34:56 +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] CMake: express -Iclangd/ at top level and inherit 2021-07-02 09:52:36 +02:00
CSymbolMap.inc
ClangdLSPServer.cpp [clangd] Log feature configuration (linux+asan+grpc) of the clangd build 2021-06-30 17:49:29 +02:00
ClangdLSPServer.h [clangd] Log feature configuration (linux+asan+grpc) of the clangd build 2021-06-30 17:49:29 +02:00
ClangdServer.cpp [clangd] Add a flag to disable formatting of tweak edits 2021-06-28 20:52:47 +02:00
ClangdServer.h [clangd] Allow AST request without range 2021-04-23 21:35:42 +02:00
CodeComplete.cpp [clang-tools-extra] Rename StringRef _lower() method calls to _insensitive() 2021-06-25 00:22:01 +03:00
CodeComplete.h Revert "Revert "[clangd] Use ML Code completion ranking as default."" 2021-03-02 18:03:52 +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] Add main file macros into the main-file index. 2021-01-14 15:10:17 +03:00
CollectMacros.h [clangd] Add main file macros into the main-file index. 2021-01-14 15:10:17 +03:00
CompileCommands.cpp [clang-tools-extra] Rename StringRef _lower() method calls to _insensitive() 2021-06-25 00:22:01 +03:00
CompileCommands.h Reland [clangd] Quote/escape argv included in log messages. 2021-01-31 16:39:47 +01:00
Compiler.cpp [clangd] Always default to raw pch format 2021-05-14 16:34:57 +02:00
Compiler.h [clangd] Introduce ASTHooks to FeatureModules 2021-04-13 17:45:09 +02:00
Config.cpp [clangd] config() -> Config::current to avoid confict with NS 2020-06-29 23:05:19 +02:00
Config.h [clangd] Drop optional on ExternalIndexSpec 2021-06-02 23:26:37 +02:00
ConfigCompile.cpp [clangd] Log feature configuration (linux+asan+grpc) of the clangd build 2021-06-30 17:49:29 +02:00
ConfigFragment.h [clangd] Only allow remote index to be enabled from user config. 2021-04-15 14:51:23 +02: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 [clang-tools-extra] Rename StringRef _lower() method calls to _insensitive() 2021-06-25 00:22:01 +03:00
Diagnostics.cpp [clangd] Fix feature modules to drop diagnostics 2021-06-17 09:29:29 +02:00
Diagnostics.h [clangd] Fix feature modules to drop diagnostics 2021-06-17 09:29:29 +02: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 [AST] Include the TranslationUnitDecl when traversing with TraversalScope 2021-06-11 14:29:45 +02:00
DumpAST.h [clangd] Allow AST request without range 2021-04-23 21:35:42 +02:00
ExpectedTypes.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
ExpectedTypes.h
FS.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
FS.h [clangd] Move non-clang base pieces into separate support/ lib. NFCI 2020-04-29 15:57:12 +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.cpp [clangd] Log feature configuration (linux+asan+grpc) of the clangd build 2021-06-30 17:49:29 +02:00
Features.h [clangd] Log feature configuration (linux+asan+grpc) of the clangd build 2021-06-30 17:49:29 +02:00
Features.inc.in [clangd] Log feature configuration (linux+asan+grpc) of the clangd build 2021-06-30 17:49:29 +02:00
FileDistance.cpp [clangd] NFC: Use SmallVector<T> where possible 2020-12-10 13:36:49 +01:00
FileDistance.h
FindSymbols.cpp [clangd] Replace usages of dummy with more descriptive words 2021-03-22 12:49:24 +01:00
FindSymbols.h [clang-tools-extra] NFC: Fix trivial typo in documents and comments 2020-04-05 15:28:40 +09:00
FindTarget.cpp [clang] p1099 using enum part 2 2021-06-08 11:11:46 -07:00
FindTarget.h [clangd] Factor out the heuristic resolver code into its own class 2021-02-16 04:10:52 -05:00
Format.cpp [clangd] Replace usages of dummy with more descriptive words 2021-03-22 12:49:24 +01:00
Format.h
FuzzyMatch.cpp
FuzzyMatch.h
GlobalCompilationDatabase.cpp [clangd] Expose absoluteParent helper 2021-02-19 13:40:21 +01: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][NFC] Use PathRef for getCorrespondingHeaderOrSource 2021-01-07 02:41:19 +00:00
Headers.cpp [clangd] Introduce Modules 2021-02-12 18:37:16 +01:00
Headers.h [clangd] Use flags from open files when opening headers they include 2021-03-01 09:43:59 +01:00
HeuristicResolver.cpp [clangd] Improve resolution of static method calls in HeuristicResolver 2021-06-02 20:30:19 -04:00
HeuristicResolver.h [clangd] Parameter hints for dependent calls 2021-05-03 02:03:16 -04:00
Hover.cpp [clangd] Show padding following a field on field hover. 2021-06-30 17:50:59 +02:00
Hover.h [clangd] Show padding following a field on field hover. 2021-06-30 17:50:59 +02:00
IncludeFixer.cpp [clangd] Deduplicate scopes in IncludeFixer queries 2021-02-05 14:02:50 +01:00
IncludeFixer.h
InlayHints.cpp [clangd] Type hints for structured bindings 2021-07-04 21:53:36 -04:00
InlayHints.h [clangd] Add support for inline parameter hints 2021-04-14 02:31:20 -04:00
JSONTransport.cpp PR51018: Remove explicit conversions from SmallString to StringRef to future-proof against C++23 2021-07-08 13:37:57 -07:00
LSPBinder.h [clangd] Bind outgoing calls through LSPBinder too. NFC 2021-02-17 10:56:06 +01:00
ParsedAST.cpp [clangd][nfc] Show more information in logs when compiler instance prepare fails 2021-06-30 21:58:33 +01:00
ParsedAST.h [clangd] Avoid including HeuristicResolver.h from ParsedAST.h 2021-05-03 00:55:22 -04:00
PathMapping.cpp [clangd] Add error() function for creating formatv-style llvm::Errors. NFC 2020-09-14 10:43:42 +02:00
PathMapping.h [clangd] Add path mappings functionality 2020-01-07 12:40:51 +01:00
Preamble.cpp [clangd][nfc] Show more information in logs when compiler instance prepare fails 2021-06-30 21:58:33 +01:00
Preamble.h [clangd] Introduce pullDiags endpoint 2021-03-16 12:52:15 +01:00
Protocol.cpp [clangd][Protocol] Drop optional from WorkspaceEdit::changes 2021-06-02 22:59:18 +02:00
Protocol.h [clangd][Protocol] Drop optional from WorkspaceEdit::changes 2021-06-02 22:59:18 +02: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 PR51018: Remove explicit conversions from SmallString to StringRef to future-proof against C++23 2021-07-08 13:37:57 -07:00
Selection.h Remove references to the ast_type_traits namespace 2020-12-11 00:58:46 +01:00
SemanticHighlighting.cpp [clangd] Fix highlighting for implicit ObjC property refs 2021-06-30 12:31:50 -04:00
SemanticHighlighting.h [clangd] Add support for the `defaultLibrary` semantic token modifier 2021-06-02 10:24:29 -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] Replace usages of dummy with more descriptive words 2021-03-22 12:49:24 +01:00
SourceCode.h [clangd] Move DraftStore from ClangdLSPServer into ClangdServer. 2021-03-02 22:58:50 +01:00
StdSymbolMap.inc
TUScheduler.cpp Reapply [clangd] Fix possible assertion fail in TUScheduler 2021-07-02 16:32:13 +02:00
TUScheduler.h [clangd] TUScheduler uses last active file for file-less queries 2021-06-02 22:50:24 +02:00
TidyProvider.cpp [clangd] Expose absoluteParent helper 2021-02-19 13:40:21 +01:00
TidyProvider.h [clangd] Validate clang-tidy Checks in clangd config. 2020-12-15 21:10:57 +00:00
Transport.h Revert "[clangd] Unbreak mac build differently 0c96a92d8666b8" 2021-07-02 16:29:48 +02:00
URI.cpp [clangd] Remove dead variable. NFC 2020-09-30 23:19:15 +02:00
URI.h
XRefs.cpp [clangd] Find implementors only when index is present. 2021-05-03 17:16:33 +02: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.