llvm-project/clang-tools-extra/clangd
Kadir Cetinkaya ec2f7376e3
[clangd][QueryDriver] Dont check for existence of driver
Execute implementations already checks for permissions and existence
and returns relevant errors as necessary, so instead of printing our own errors,
we just print theirs.

This also fixes a case in windows where the driver might be missing the `.exe`
suffix. Previously, clangd would reject such a driver because sys::fs::exists is
strict, whereas the underlying Execute implementation would check with `.exe`
suffix too.

Fixes https://github.com/clangd/clangd/issues/93

Differential Revision: https://reviews.llvm.org/D102431
2021-05-17 12:38:17 +02:00
..
benchmarks
fuzzer
include-mapping
index [clangd][remote-client] Set HasMore to true for failure 2021-05-11 08:22:24 +02:00
indexer
quality Make clangd CompletionModel not depend on directory layout. 2021-05-05 19:25:34 +01:00
refactor
support
test [clangd][index-sever] Limit results in repsonse 2021-05-11 08:22:23 +02:00
tool [clangd] Set FileSystem for tweaks in Check tool. 2021-05-17 11:10:07 +02:00
unittests [clangd] Make unit test compatible with gtest 1.10.0 2021-05-14 19:37:46 +02:00
xpc
AST.cpp
AST.h
ASTSignals.cpp
ASTSignals.h
CMakeLists.txt
CSymbolMap.inc
ClangdLSPServer.cpp [clangd] Fix data type of WorkDoneProgressReport::percentage 2021-05-10 14:57:20 +02:00
ClangdLSPServer.h [clangd] Split CC and refs limit and increase refs limit to 1000 2021-05-05 23:39:48 +02:00
ClangdServer.cpp
ClangdServer.h
CodeComplete.cpp [clangd] Check if macro is already in the IdentifierTable before loading it 2021-05-06 08:24:06 +02:00
CodeComplete.h
CodeCompletionStrings.cpp
CodeCompletionStrings.h
CollectMacros.cpp
CollectMacros.h
CompileCommands.cpp
CompileCommands.h
Compiler.cpp [clangd] Always default to raw pch format 2021-05-14 16:34:57 +02:00
Compiler.h
Config.cpp
Config.h
ConfigCompile.cpp
ConfigFragment.h
ConfigProvider.cpp
ConfigProvider.h
ConfigYAML.cpp
Diagnostics.cpp
Diagnostics.h
DraftStore.cpp
DraftStore.h
DumpAST.cpp
DumpAST.h
ExpectedTypes.cpp
ExpectedTypes.h
FS.cpp
FS.h
FeatureModule.cpp
FeatureModule.h
Features.inc.in
FileDistance.cpp
FileDistance.h
FindSymbols.cpp
FindSymbols.h
FindTarget.cpp [clangd][ObjC] Highlight Objc Ivar refs 2021-05-06 11:41:49 -04:00
FindTarget.h
Format.cpp
Format.h
FuzzyMatch.cpp
FuzzyMatch.h
GlobalCompilationDatabase.cpp
GlobalCompilationDatabase.h
HeaderSourceSwitch.cpp
HeaderSourceSwitch.h
Headers.cpp
Headers.h
HeuristicResolver.cpp
HeuristicResolver.h
Hover.cpp Add type information to integral template argument if required. 2021-05-12 19:00:08 +00:00
Hover.h
IncludeFixer.cpp
IncludeFixer.h
InlayHints.cpp
InlayHints.h
JSONTransport.cpp
LSPBinder.h
ParsedAST.cpp
ParsedAST.h
PathMapping.cpp
PathMapping.h
Preamble.cpp
Preamble.h
Protocol.cpp
Protocol.h [clangd] Fix data type of WorkDoneProgressReport::percentage 2021-05-10 14:57:20 +02:00
Quality.cpp
Quality.h
QueryDriverDatabase.cpp [clangd][QueryDriver] Dont check for existence of driver 2021-05-17 12:38:17 +02:00
README.md
RIFF.cpp
RIFF.h
Selection.cpp
Selection.h
SemanticHighlighting.cpp
SemanticHighlighting.h
SemanticSelection.cpp
SemanticSelection.h
SourceCode.cpp
SourceCode.h
StdSymbolMap.inc
TUScheduler.cpp
TUScheduler.h
TidyProvider.cpp
TidyProvider.h
Transport.h
URI.cpp
URI.h
XRefs.cpp
XRefs.h

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.