llvm-project/clang-tools-extra/clangd
Kirill Bobyrev cd0ca5a0ea
[clangd] Record information about non self-contained headers in IncludeStructure
This will be useful for IncludeCleaner.

Reviewed By: sammccall

Differential Revision: https://reviews.llvm.org/D114370
2021-11-26 14:12:54 +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
index [clangd] Record information about non self-contained headers in IncludeStructure 2021-11-26 14:12:54 +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 [NFC][clangd] cleanup llvm-else-after-return findings 2021-11-17 14:37:03 +00:00
support [clangd] Attempt to fix buildbots 2021-10-25 20:16:59 -07:00
test [clangd] Add integration test for crash handling 2021-10-27 11:52:31 +02:00
tool [clangd] Fix function-arg-placeholder suppression with macros. 2021-11-13 20:50:51 +01:00
unittests [clangd] Record information about non self-contained headers in IncludeStructure 2021-11-26 14:12:54 +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] Avoid possible crash: apply configuration after binding methods 2021-11-20 01:13:38 +01: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 [clangd] Record information about non self-contained headers in IncludeStructure 2021-11-26 14:12:54 +01: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] Support `#pragma mark` in the outline 2021-09-23 17:13:30 -04:00
CollectMacros.h [clangd] Support `#pragma mark` in the outline 2021-09-23 17:13:30 -04: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] Add a way to enable IncludeCleaner through config 2021-10-26 12:53:05 +02:00
ConfigCompile.cpp [clangd] Add a way to enable IncludeCleaner through config 2021-10-26 12:53:05 +02:00
ConfigFragment.h [clangd] Add a way to enable IncludeCleaner through config 2021-10-26 12:53:05 +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 [clangd] Add a way to enable IncludeCleaner through config 2021-10-26 12:53:05 +02:00
Diagnostics.cpp [clangd] Add a way to enable IncludeCleaner through config 2021-10-26 12:53:05 +02:00
Diagnostics.h [clangd] Add a way to enable IncludeCleaner through config 2021-10-26 12:53:05 +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 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
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 [clang-tools-extra] NFC: Fix trivial typo in documents and comments 2020-04-05 15:28:40 +09:00
FindTarget.cpp [clang] retain type sugar in auto / template argument deduction 2021-11-15 23:07:45 +01: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 [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][NFC] Use PathRef for getCorrespondingHeaderOrSource 2021-01-07 02:41:19 +00:00
Headers.cpp [clangd] Record information about non self-contained headers in IncludeStructure 2021-11-26 14:12:54 +01:00
Headers.h [clangd] Record information about non self-contained headers in IncludeStructure 2021-11-26 14:12:54 +01:00
HeuristicResolver.cpp Ensure newlines at the end of files (NFC) 2021-10-23 08:45:29 -07:00
HeuristicResolver.h [clangd] Parameter hints for dependent calls 2021-05-03 02:03:16 -04:00
Hover.cpp [NFC][clangd] cleanup llvm-else-after-return findings 2021-11-17 14:37:03 +00:00
Hover.h clangd: Provide hover info for include directives 2021-08-13 00:07:23 +02:00
IncludeCleaner.cpp [clangd] Move IncludeCleaner tracer to the actual computation 2021-11-25 13:19:01 +01:00
IncludeCleaner.h [clangd] IncludeCleaner: Skip non self-contained headers 2021-10-29 17:57:31 +02:00
IncludeFixer.cpp [clangd] Deduplicate scopes in IncludeFixer queries 2021-02-05 14:02:50 +01:00
IncludeFixer.h
InlayHints.cpp [clang] retain type sugar in auto / template argument deduction 2021-11-15 23:07:45 +01:00
InlayHints.h [clangd] Add support for inline parameter hints 2021-04-14 02:31:20 -04: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 information about non self-contained headers in IncludeStructure 2021-11-26 14:12:54 +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
Preamble.cpp [clangd] Record information about non self-contained headers in IncludeStructure 2021-11-26 14:12:54 +01:00
Preamble.h [clangd] Support `#pragma mark` in the outline 2021-09-23 17:13:30 -04:00
Protocol.cpp [NFC][clangd] cleanup llvm-else-after-return findings 2021-11-17 14:37:03 +00:00
Protocol.h [NFC] disabling clang-tidy check readability-identifier-naming in Protocol.h 2021-11-16 15:25:43 +00: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
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.