diff --git a/clang-tools-extra/clangd/ClangdLSPServer.h b/clang-tools-extra/clangd/ClangdLSPServer.h --- a/clang-tools-extra/clangd/ClangdLSPServer.h +++ b/clang-tools-extra/clangd/ClangdLSPServer.h @@ -62,6 +62,9 @@ std::function TweakFilter = [](const Tweak &T) { return !T.hidden(); // only enable non-hidden tweaks. }; + + /// Enable preview of InlayHints feature. + bool InlayHints = false; }; ClangdLSPServer(Transport &Transp, const ThreadsafeFS &TFS, diff --git a/clang-tools-extra/clangd/ClangdLSPServer.cpp b/clang-tools-extra/clangd/ClangdLSPServer.cpp --- a/clang-tools-extra/clangd/ClangdLSPServer.cpp +++ b/clang-tools-extra/clangd/ClangdLSPServer.cpp @@ -571,7 +571,6 @@ {"referencesProvider", true}, {"astProvider", true}, // clangd extension {"typeHierarchyProvider", true}, - {"clangdInlayHintsProvider", true}, {"memoryUsageProvider", true}, // clangd extension {"compilationDatabase", // clangd extension llvm::json::Object{{"automaticReload", true}}}, @@ -608,6 +607,9 @@ if (Opts.FoldingRanges) ServerCaps["foldingRangeProvider"] = true; + if (Opts.InlayHints) + ServerCaps["clangdInlayHintsProvider"] = true; + std::vector Commands; for (llvm::StringRef Command : Handlers.CommandHandlers.keys()) Commands.push_back(Command); diff --git a/clang-tools-extra/clangd/tool/ClangdMain.cpp b/clang-tools-extra/clangd/tool/ClangdMain.cpp --- a/clang-tools-extra/clangd/tool/ClangdMain.cpp +++ b/clang-tools-extra/clangd/tool/ClangdMain.cpp @@ -308,6 +308,9 @@ Hidden, }; +opt InlayHints{"inlay-hints", cat(Features), + desc("Enable preview of InlayHints feature"), init(false)}; + opt WorkerThreadsCount{ "j", cat(Misc), @@ -829,6 +832,7 @@ } Opts.AsyncThreadsCount = WorkerThreadsCount; Opts.FoldingRanges = FoldingRanges; + Opts.InlayHints = InlayHints; Opts.MemoryCleanup = getMemoryCleanupFunction(); Opts.CodeComplete.IncludeIneligibleResults = IncludeIneligibleResults;