llvm-project/clang-tools-extra/clangd
Christian Kandeler bd6c6974f5
clangd: Set a diagnostic on a code action resulting from a tweak
... if there is a match.
This is needed to that clients can can make a connection between a
diagnostic and an associated quickfix-tweak.
Ideally, quickfix-kind tweak code actions would be provided inline along
with the non-tweak fixes, but this doesn't seem easily achievable.

Reviewed By: sammccall

Differential Revision: https://reviews.llvm.org/D118976
2022-02-10 15:58:12 +01:00
..
benchmarks [clangd] Cleanup of readability-identifier-naming 2022-02-01 13:31:52 +00:00
fuzzer [clangd] Cleanup of readability-identifier-naming 2022-02-01 13:31:52 +00:00
index [clangd] NFC: Move stdlib headers handling to Clang 2022-02-09 11:05:39 +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 [clangd][nfc] cleanup of remaining clang-tidy findings 2022-02-03 12:05:25 +00:00
support [clangd] Attempt to fix buildbots 2021-10-25 20:16:59 -07:00
test [clangd] Implement textDocument/typeDefinition 2022-01-13 22:15:10 +01:00
tool [clangd] Add option to use dirty file contents when building preambles. 2022-01-17 10:55:35 +00:00
unittests [clangd] NFC: Move stdlib headers handling to Clang 2022-02-09 11:05:39 +01:00
xpc [NFC][clangd] fix llvm-namespace-comment finding 2021-11-16 15:10:32 +00:00
AST.cpp [NFC][clangd] cleaning up llvm-qualified-auto 2022-01-25 13:26:33 +00:00
AST.h [clangd] Don't index __reserved_names in headers. 2022-01-05 16:34:04 +01: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] Helper for determining member insertion point. 2022-01-03 17:59:45 +01:00
ClangdLSPServer.cpp clangd: Set a diagnostic on a code action resulting from a tweak 2022-02-10 15:58:12 +01:00
ClangdLSPServer.h [clang-tools-extra] Remove unused forward declarations (NFC) 2022-01-30 16:05:00 -08:00
ClangdServer.cpp [clangd] Fail inlayHints requests on content changes 2022-01-21 12:40:49 +01:00
ClangdServer.h [clangd] Add option to use dirty file contents when building preambles. 2022-01-17 10:55:35 +00:00
CodeComplete.cpp [NFC][clangd] cleaning up llvm-qualified-auto 2022-01-25 13:26:33 +00:00
CodeComplete.h [clangd] Provide documentation as MarkupContent in signaturehelp 2021-12-10 12:58:08 +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] cleanup of header guard names 2021-12-02 15:58:35 +00:00
CompileCommands.cpp NFC: fix GCC warning -Wcast-qual 2022-02-09 18:03:25 -08: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 designator inlay hints for initializer lists. 2022-01-26 00:35:29 +01:00
ConfigCompile.cpp [clangd] Add designator inlay hints for initializer lists. 2022-01-26 00:35:29 +01:00
ConfigFragment.h [clangd] Add designator inlay hints for initializer lists. 2022-01-26 00:35:29 +01: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][nfc] cleanup of remaining clang-tidy findings 2022-02-03 12:05:25 +00:00
Diagnostics.cpp [clangd] Better handling `\n` in the synthesized diagnostic message. 2022-01-17 09:27:58 +01:00
Diagnostics.h [clangd] Suppress warning about system_header pragma when editing headers 2022-01-13 22:24:05 +01: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 [clang] Forward-declare DynTypedNode (NFC) 2022-01-23 13:28:04 -08:00
ExpectedTypes.cpp [NFC][clangd] cleaning up llvm-qualified-auto 2022-01-25 13:26:33 +00:00
ExpectedTypes.h [clangd] cleanup of header guard names 2021-12-02 15:58:35 +00:00
FS.cpp
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 [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 [NFC][clangd] cleaning up llvm-qualified-auto 2022-01-25 13:26:33 +00:00
FindSymbols.h
FindTarget.cpp [clangd] Sort targets before printing for tests 2022-01-19 14:06:53 +01:00
FindTarget.h [clangd] cleanup of header guard names 2021-12-02 15:58:35 +00: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 [clang-tools-extra] Remove unused forward declarations (NFC) 2022-01-30 16:05:00 -08:00
HeaderSourceSwitch.cpp [NFC][clangd] cleaning up llvm-qualified-auto 2022-01-25 13:26:33 +00:00
HeaderSourceSwitch.h [clangd] cleanup of header guard names 2021-12-02 15:58:35 +00:00
Headers.cpp [clangd] NFC: Move stdlib headers handling to Clang 2022-02-09 11:05:39 +01:00
Headers.h [clangd] NFC: Move stdlib headers handling to Clang 2022-02-09 11:05:39 +01:00
HeuristicResolver.cpp [clangd] Use castAs<> instead of getAs<> to avoid dereference of nullptr 2022-01-23 13:24:36 +00:00
HeuristicResolver.h [clangd] cleanup of header guard names 2021-12-02 15:58:35 +00:00
Hover.cpp [clangd] NFC, remove an unused local varaiable. 2022-02-03 12:52:24 +01:00
Hover.h [clangd] Add desugared type to hover 2021-12-08 13:28:12 +08:00
IncludeCleaner.cpp [clangd] NFC: Move stdlib headers handling to Clang 2022-02-09 11:05:39 +01:00
IncludeCleaner.h [clangd] NFC: Move stdlib headers handling to Clang 2022-02-09 11:05:39 +01:00
IncludeFixer.cpp [clangd] Include fixer for missing functions in C 2022-01-10 12:17:19 +01:00
IncludeFixer.h [clangd] Add fixes for clang "include <foo.h>" diagnostics 2021-12-08 16:16:53 +01:00
InlayHints.cpp [clangd] Add designator inlay hints for initializer lists. 2022-01-26 00:35:29 +01:00
InlayHints.h [clangd] Polish clangd/inlayHints and expose them by default. 2022-01-07 15:12:43 +01: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 Re-land "Cache the locations of NOLINTBEGIN/END blocks" with fix for build bot 2022-01-27 01:03:27 +13:00
ParsedAST.h [clang-tools-extra] Remove unused forward declarations (NFC) 2022-01-30 16:05:00 -08:00
PathMapping.cpp [NFC][clangd] cleanup llvm-else-after-return findings 2021-11-17 14:37:03 +00:00
PathMapping.h [clangd] cleanup of header guard names 2021-12-02 15:58:35 +00:00
Preamble.cpp [clangd] Suppress warning about system_header pragma when editing headers 2022-01-13 22:24:05 +01:00
Preamble.h [clangd] Cleanup unneeded use of shared_ptr. NFC 2021-12-15 02:13:50 +01:00
Protocol.cpp [clangd] Add designator inlay hints for initializer lists. 2022-01-26 00:35:29 +01:00
Protocol.h [clangd] Add designator inlay hints for initializer lists. 2022-01-26 00:35:29 +01:00
Quality.cpp [clangd] Don't index __reserved_names in headers. 2022-01-05 16:34:04 +01: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 [clangd] Fix a selection tree crash for unmatched-bracket code. 2022-01-27 21:21:40 +01:00
Selection.h [clangd] SelectionTree should prefer lexical declcontext 2021-10-28 17:39:35 +02:00
SemanticHighlighting.cpp Initialize HighlightingsBuilder::Resolver 2022-01-07 15:21:22 -08: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] Cleanup of readability-identifier-naming 2022-02-01 13:31:52 +00:00
SourceCode.h [clangd] Don't index __reserved_names in headers. 2022-01-05 16:34:04 +01:00
TUScheduler.cpp [clangd] Cleanup of readability-identifier-naming 2022-02-01 13:31:52 +00:00
TUScheduler.h [clangd] Cleanup unneeded use of shared_ptr. NFC 2021-12-15 02:13:50 +01: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 [clangd] cleanup of header guard names 2021-12-02 15:58:35 +00:00
XRefs.cpp [clangd][nfc] cleanup of remaining clang-tidy findings 2022-02-03 12:05:25 +00:00
XRefs.h [clangd] Implement textDocument/typeDefinition 2022-01-13 22:15:10 +01: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.