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