llvm-project/clang-tools-extra/clangd
Aleksandr Platonov cc4b86cfc0 [clangd] Fix tests for implicit C function declaration
clangd code fixes at D122983 were not right.
We need to check that clangd provides IncludeFixer fixits for implicit function declaration even if this is not an error (e.g. implicit function declaration in C89).

Reviewed By: sammccall

Differential Revision: https://reviews.llvm.org/D133043
2022-09-01 23:46:20 +03:00
..
benchmarks [clang-tools-extra] Fixed a number of typos 2022-08-01 15:32:25 +02:00
fuzzer Reland "[FuzzMutate] Split out FuzzerCLI library that doesn't depend on IR." 2022-05-07 13:49:54 +02:00
index [clangd] Use llvm::any_of (NFC) 2022-08-14 16:25:38 -07:00
indexer [clangd] Clean up unused includes. NFCI 2022-02-26 12:00:16 +01:00
quality Make clangd CompletionModel not depend on directory layout. 2021-05-05 19:25:34 +01:00
refactor Revert "Use std::is_same_v instead of std::is_same (NFC)" 2022-08-20 23:00:39 -07:00
support Revert "Use std::is_same_v instead of std::is_same (NFC)" 2022-08-20 23:00:39 -07:00
test [clangd] Enable folding ranges by default. 2022-08-30 12:04:59 +02:00
tool [clangd] Enable folding ranges by default. 2022-08-30 12:04:59 +02:00
unittests [clangd] Fix tests for implicit C function declaration 2022-09-01 23:46:20 +03:00
xpc Use value_or instead of getValueOr. NFC 2022-06-29 21:55:02 -07:00
AST.cpp [clangd] Add decl/def support to SymbolDetails 2022-08-01 14:42:19 -04:00
AST.h AST.h - fix Wdocumentation warnings. NFC. 2022-08-01 15:38:06 +01:00
ASTSignals.cpp [clangd] Record latency for ASTSignal derivation 2022-04-28 14:34:39 +02:00
ASTSignals.h [clangd] Trivial: Documentation fix in ASTSignals. 2021-01-14 18:38:42 +01:00
CMakeLists.txt Use pseudo parser for folding ranges 2022-07-18 11:35:34 +02:00
ClangdLSPServer.cpp [clangd] Enable folding ranges by default. 2022-08-30 12:04:59 +02:00
ClangdLSPServer.h [clangd] Support for standard type hierarchy 2022-08-17 09:29:15 +02:00
ClangdServer.cpp FoldingRanges: Handle LineFoldingsOnly clients. 2022-08-29 19:03:48 +02:00
ClangdServer.h [clangd] Enable folding ranges by default. 2022-08-30 12:04:59 +02:00
CodeComplete.cpp LLVM_FALLTHROUGH => [[fallthrough]]. NFC 2022-08-09 04:06:52 +00:00
CodeComplete.h [clang-tools-extra] Fixed a number of typos 2022-08-01 15:32:25 +02:00
CodeCompletionStrings.cpp [clangd] Do not try to use $0 as a placeholder in completion snippets 2022-07-24 03:01:18 -04:00
CodeCompletionStrings.h
CollectMacros.cpp [clangd] Clean up unused includes. NFCI 2022-02-26 12:00:16 +01:00
CollectMacros.h [clangd] Clean up unused includes. NFCI 2022-02-26 12:00:16 +01:00
CompileCommands.cpp [clangd] Drop unnecessary const from return types (NFC) 2022-08-13 12:55:44 -07:00
CompileCommands.h [clangd] Clean up unused includes. NFCI 2022-02-26 12:00:16 +01:00
Compiler.cpp [clangd] Skip extra round-trip in parsing args in debug builds. NFC 2022-05-09 14:45:35 +02:00
Compiler.h [clangd] parse all make_unique-like functions in preamble 2022-05-16 11:17:25 +02:00
Config.cpp
Config.h [clangd] Enable designator inlay hints by default. 2022-07-13 16:31:45 +02:00
ConfigCompile.cpp [clang, clang-tools-extra] Use has_value instead of hasValue (NFC) 2022-07-12 22:47:41 -07:00
ConfigFragment.h [clang-tools-extra] Fixed a number of typos 2022-08-01 15:32:25 +02:00
ConfigProvider.cpp [clangd] Clean up unused includes. NFCI 2022-02-26 12:00:16 +01:00
ConfigProvider.h [clangd] Clean up unused includes. NFCI 2022-02-26 12:00:16 +01:00
ConfigYAML.cpp Don't use Optional::getValue (NFC) 2022-06-20 23:35:53 -07:00
Diagnostics.cpp [clangd] Change the url for clang-tidy check documentation 2022-08-05 08:42:52 +01:00
Diagnostics.h Avoid uninitialized Diag.ID (which we pass but never read) 2022-05-20 20:29:47 +02:00
DraftStore.cpp [clangd] Clean up unused includes. NFCI 2022-02-26 12:00:16 +01:00
DraftStore.h [clangd] Clean up unused includes. NFCI 2022-02-26 12:00:16 +01:00
DumpAST.cpp [clang-tools-extra] Fixed a number of typos 2022-08-01 15:32:25 +02:00
DumpAST.h [clang] Forward-declare DynTypedNode (NFC) 2022-01-23 13:28:04 -08:00
ExpectedTypes.cpp [clangd] Clean up unused includes. NFCI 2022-02-26 12:00:16 +01: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 Don't use Optional::hasValue (NFC) 2022-06-26 19:54:41 -07:00
FeatureModule.h [clangd] Add beforeExecute() callback to FeatureModules. 2022-04-21 18:03:39 +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] Clean up unused includes. NFCI 2022-02-26 12:00:16 +01:00
FileDistance.h [clangd] Clean up unused includes. NFCI 2022-02-26 12:00:16 +01:00
FindSymbols.cpp [clangd] Clean up unused includes. NFCI 2022-02-26 12:00:16 +01:00
FindSymbols.h
FindTarget.cpp [clang] Implement ElaboratedType sugaring for types written bare 2022-07-27 11:10:54 +02:00
FindTarget.h [clangd] Clean up unused includes. NFCI 2022-02-26 12:00:16 +01:00
Format.cpp [clangd] Handle tabs in getIncrementalChangesAfterNewline() 2022-03-29 01:43:09 -04:00
Format.h [clangd] Clean up unused includes. NFCI 2022-02-26 12:00:16 +01:00
FuzzyMatch.cpp [NFC][clangd] cleanup llvm-else-after-return findings 2021-11-17 14:37:03 +00:00
FuzzyMatch.h
GlobalCompilationDatabase.cpp Don't use Optional::getValue (NFC) 2022-06-20 23:35:53 -07:00
GlobalCompilationDatabase.h [clangd] Clean up unused includes. NFCI 2022-02-26 12:00:16 +01:00
HeaderSourceSwitch.cpp Use any_of (NFC) 2022-07-30 10:35:56 -07:00
HeaderSourceSwitch.h [clangd] cleanup of header guard names 2021-12-02 15:58:35 +00:00
Headers.cpp Remove redundant initialization of Optional (NFC) 2022-08-20 21:18:28 -07:00
Headers.h [clangd] NFC: Rename field to be compatible with the function name 2022-05-16 10:18:08 +02:00
HeuristicResolver.cpp [clang-tools-extra] Fixed a number of typos 2022-08-01 15:32:25 +02:00
HeuristicResolver.h Go-to-type on smart_ptr<Foo> now also shows Foo 2022-07-11 12:13:47 +02:00
Hover.cpp [clangd] Support hover on __func__ etc (PredefinedExpr) 2022-08-19 14:51:46 +02:00
Hover.h [clangd] getHover - pass FormatStyle argument by const reference 2022-02-18 17:27:45 +00:00
IncludeCleaner.cpp [clangd] Disable IncludeCleaner for ObjC 2022-08-22 11:28:06 +02:00
IncludeCleaner.h Reland "[clangd] IncludeCleaner: Add support for IWYU pragma private" 2022-04-05 16:57:39 +02:00
IncludeFixer.cpp Use llvm::sort instead of std::sort where possible 2022-07-23 15:19:05 +02:00
IncludeFixer.h [clangd] Clean up unused includes. NFCI 2022-02-26 12:00:16 +01:00
InlayHints.cpp [clangd] Fix an inlay-hint crash on a broken designator. 2022-08-12 14:37:46 +02:00
InlayHints.h [clangd] Polish clangd/inlayHints and expose them by default. 2022-01-07 15:12:43 +01:00
JSONTransport.cpp [clang-tools-extra] Use value_or instead of getValueOr (NFC) 2022-06-19 00:13:38 -07:00
LSPBinder.h [clangd] Bind outgoing calls through LSPBinder too. NFC 2021-02-17 10:56:06 +01:00
ParsedAST.cpp [clangd] Fix tests for implicit C function declaration 2022-09-01 23:46:20 +03:00
ParsedAST.h [clangd][NFCI] Store TUPath inside ParsedAST 2022-07-29 13:23:42 +02:00
PathMapping.cpp [clangd] Clean up unused includes. NFCI 2022-02-26 12:00:16 +01:00
PathMapping.h [clangd] cleanup of header guard names 2021-12-02 15:58:35 +00:00
Preamble.cpp [clangd] Upgrade vlog() to log() for preamble build stats 2022-08-01 15:08:21 +02:00
Preamble.h [clangd] Export preamble AST and serialized size as metrics 2022-04-13 14:43:06 +02:00
Protocol.cpp FoldingRanges: Handle LineFoldingsOnly clients. 2022-08-29 19:03:48 +02:00
Protocol.h FoldingRanges: Handle LineFoldingsOnly clients. 2022-08-29 19:03:48 +02:00
Quality.cpp [clang-tools-extra] Fixed a number of typos 2022-08-01 15:32:25 +02:00
Quality.h [clangd] Clean up unused includes. NFCI 2022-02-26 12:00:16 +01:00
QueryDriverDatabase.cpp [clangd] Fail more gracefully if QueryDriverDatabase cannot determine file type 2022-08-29 12:59:05 -04:00
README.md [Branch-Rename] Fix some links 2021-02-01 16:43:21 +05:30
RIFF.cpp
RIFF.h [clangd] Clean up unused includes. NFCI 2022-02-26 12:00:16 +01:00
Selection.cpp [clangd] Support hover on __func__ etc (PredefinedExpr) 2022-08-19 14:51:46 +02:00
Selection.h [clangd] SelectionTree should prefer lexical declcontext 2021-10-28 17:39:35 +02:00
SemanticHighlighting.cpp [clangd] Use the "macro" semantic token for pre-defined identifiers 2022-08-18 16:12:55 +02:00
SemanticHighlighting.h [clangd] Support multiline semantic tokens 2022-06-29 13:49:03 +02:00
SemanticSelection.cpp FoldingRanges: Handle LineFoldingsOnly clients. 2022-08-29 19:03:48 +02:00
SemanticSelection.h FoldingRanges: Handle LineFoldingsOnly clients. 2022-08-29 19:03:48 +02:00
SourceCode.cpp LLVM_FALLTHROUGH => [[fallthrough]]. NFC 2022-08-09 04:06:52 +00:00
SourceCode.h [clangd] Don't index __reserved_names in headers. 2022-01-05 16:34:04 +01:00
TUScheduler.cpp [clangd] Fix flaky throttler test 2022-07-07 18:09:54 +02:00
TUScheduler.h [clangd] Fix missing key function in PreambleThrottler 2022-07-06 18:27:09 +02:00
TidyProvider.cpp [clang-tools-extra] Use value_or instead of getValueOr (NFC) 2022-06-19 00:13:38 -07:00
TidyProvider.h [clangd] Clean up unused includes. NFCI 2022-02-26 12:00:16 +01:00
Transport.h [clangd] Rename Features.h -> Feature.h to avoid confilct with libstdc++ 2021-08-06 18:56:41 +02:00
URI.cpp Use llvm::all_of (NFC) 2022-08-14 16:25:36 -07:00
URI.h [clangd] cleanup of header guard names 2021-12-02 15:58:35 +00:00
XRefs.cpp [clangd] Support for standard type hierarchy 2022-08-17 09:29:15 +02:00
XRefs.h [clangd] Support for standard type hierarchy 2022-08-17 09:29:15 +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.