llvm-project/clang-tools-extra/clangd
Tim Northover 48c68a630e Recommit: Support: add llvm::thread class that supports specifying stack size.
This adds a new llvm::thread class with the same interface as std::thread
except there is an extra constructor that allows us to set the new thread's
stack size. On Darwin even the default size is boosted to 8MB to match the main
thread.

It also switches all users of the older C-style `llvm_execute_on_thread` API
family over to `llvm::thread` followed by either a `detach` or `join` call and
removes the old API.

Moved definition of DefaultStackSize into the .cpp file to hopefully
fix the build on some (GCC-6?) machines.
2021-07-08 16:22:26 +01: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 Move endian constant from Host.h to SwapByteOrder.h, prune include 2019-10-19 00:48:11 +00:00
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 [clangd] Avoid reallocating buffers for each message read: 2021-01-13 17:40:33 +01: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 [clangd][QueryDriver] Dont check for existence of driver 2021-05-17 12:38:17 +02: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 [clangd] Correct SelectionTree behavior around anonymous field access. 2021-06-30 17:34:48 +02: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 [clangd] Simplify the callside of URI::resolve, NFC. 2019-09-23 14:39:37 +00:00
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.