tree: dfdbc321407166925fcb0dcdd7966b193180984e [path history] [tgz]
  1. benchmarks/
  2. fuzzer/
  3. include-mapping/
  4. index/
  5. indexer/
  6. quality/
  7. refactor/
  8. support/
  9. test/
  10. tool/
  11. unittests/
  12. xpc/
  13. AST.cpp
  14. AST.h
  15. ASTSignals.cpp
  16. ASTSignals.h
  17. ClangdLSPServer.cpp
  18. ClangdLSPServer.h
  19. ClangdServer.cpp
  20. ClangdServer.h
  21. CMakeLists.txt
  22. CodeComplete.cpp
  23. CodeComplete.h
  24. CodeCompletionStrings.cpp
  25. CodeCompletionStrings.h
  26. CollectMacros.cpp
  27. CollectMacros.h
  28. CompileCommands.cpp
  29. CompileCommands.h
  30. Compiler.cpp
  31. Compiler.h
  32. Config.cpp
  33. Config.h
  34. ConfigCompile.cpp
  35. ConfigFragment.h
  36. ConfigProvider.cpp
  37. ConfigProvider.h
  38. ConfigYAML.cpp
  39. CSymbolMap.inc
  40. Diagnostics.cpp
  41. Diagnostics.h
  42. DraftStore.cpp
  43. DraftStore.h
  44. DumpAST.cpp
  45. DumpAST.h
  46. ExpectedTypes.cpp
  47. ExpectedTypes.h
  48. Feature.cpp
  49. Feature.h
  50. FeatureModule.cpp
  51. FeatureModule.h
  52. Features.inc.in
  53. FileDistance.cpp
  54. FileDistance.h
  55. FindSymbols.cpp
  56. FindSymbols.h
  57. FindTarget.cpp
  58. FindTarget.h
  59. Format.cpp
  60. Format.h
  61. FS.cpp
  62. FS.h
  63. FuzzyMatch.cpp
  64. FuzzyMatch.h
  65. GlobalCompilationDatabase.cpp
  66. GlobalCompilationDatabase.h
  67. Headers.cpp
  68. Headers.h
  69. HeaderSourceSwitch.cpp
  70. HeaderSourceSwitch.h
  71. HeuristicResolver.cpp
  72. HeuristicResolver.h
  73. Hover.cpp
  74. Hover.h
  75. IncludeCleaner.cpp
  76. IncludeCleaner.h
  77. IncludeFixer.cpp
  78. IncludeFixer.h
  79. InlayHints.cpp
  80. InlayHints.h
  81. JSONTransport.cpp
  82. LSPBinder.h
  83. ParsedAST.cpp
  84. ParsedAST.h
  85. PathMapping.cpp
  86. PathMapping.h
  87. Preamble.cpp
  88. Preamble.h
  89. Protocol.cpp
  90. Protocol.h
  91. Quality.cpp
  92. Quality.h
  93. QueryDriverDatabase.cpp
  94. README.md
  95. RIFF.cpp
  96. RIFF.h
  97. Selection.cpp
  98. Selection.h
  99. SemanticHighlighting.cpp
  100. SemanticHighlighting.h
  101. SemanticSelection.cpp
  102. SemanticSelection.h
  103. SourceCode.cpp
  104. SourceCode.h
  105. StdSymbolMap.inc
  106. TidyProvider.cpp
  107. TidyProvider.h
  108. Transport.h
  109. TUScheduler.cpp
  110. TUScheduler.h
  111. URI.cpp
  112. URI.h
  113. XRefs.cpp
  114. XRefs.h
clang-tools-extra/clangd/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.