diff options
Diffstat (limited to 'clang-tools-extra/clangd/ClangdLSPServer.cpp')
| -rw-r--r-- | clang-tools-extra/clangd/ClangdLSPServer.cpp | 41 |
1 files changed, 21 insertions, 20 deletions
diff --git a/clang-tools-extra/clangd/ClangdLSPServer.cpp b/clang-tools-extra/clangd/ClangdLSPServer.cpp index 385768a14b0..5ea1f793ba0 100644 --- a/clang-tools-extra/clangd/ClangdLSPServer.cpp +++ b/clang-tools-extra/clangd/ClangdLSPServer.cpp @@ -18,6 +18,7 @@ using namespace clang::clangd; using namespace clang; +using namespace llvm; namespace { @@ -87,25 +88,25 @@ void ClangdLSPServer::onInitialize(InitializeParams &Params) { } } - reply(json::obj{ + reply(json::Object{ {{"capabilities", - json::obj{ + json::Object{ {"textDocumentSync", (int)TextDocumentSyncKind::Incremental}, {"documentFormattingProvider", true}, {"documentRangeFormattingProvider", true}, {"documentOnTypeFormattingProvider", - json::obj{ + json::Object{ {"firstTriggerCharacter", "}"}, {"moreTriggerCharacter", {}}, }}, {"codeActionProvider", true}, {"completionProvider", - json::obj{ + json::Object{ {"resolveProvider", false}, {"triggerCharacters", {".", ">", ":"}}, }}, {"signatureHelpProvider", - json::obj{ + json::Object{ {"triggerCharacters", {"(", ","}}, }}, {"definitionProvider", true}, @@ -115,7 +116,7 @@ void ClangdLSPServer::onInitialize(InitializeParams &Params) { {"documentSymbolProvider", true}, {"workspaceSymbolProvider", true}, {"executeCommandProvider", - json::obj{ + json::Object{ {"commands", {ExecuteCommandParams::CLANGD_APPLY_FIX_COMMAND}}, }}, }}}}); @@ -212,7 +213,7 @@ void ClangdLSPServer::onWorkspaceSymbol(WorkspaceSymbolParams &Params) { for (auto &Sym : *Items) Sym.kind = adjustKindToCapability(Sym.kind, SupportedSymbolKinds); - reply(json::ary(*Items)); + reply(json::Array(*Items)); }); } @@ -258,7 +259,7 @@ void ClangdLSPServer::onDocumentOnTypeFormatting( auto ReplacementsOrError = Server.formatOnType(*Code, File, Params.position); if (ReplacementsOrError) - reply(json::ary(replacementsToEdits(*Code, ReplacementsOrError.get()))); + reply(json::Array(replacementsToEdits(*Code, ReplacementsOrError.get()))); else replyError(ErrorCode::UnknownErrorCode, llvm::toString(ReplacementsOrError.takeError())); @@ -274,7 +275,7 @@ void ClangdLSPServer::onDocumentRangeFormatting( auto ReplacementsOrError = Server.formatRange(*Code, File, Params.range); if (ReplacementsOrError) - reply(json::ary(replacementsToEdits(*Code, ReplacementsOrError.get()))); + reply(json::Array(replacementsToEdits(*Code, ReplacementsOrError.get()))); else replyError(ErrorCode::UnknownErrorCode, llvm::toString(ReplacementsOrError.takeError())); @@ -289,7 +290,7 @@ void ClangdLSPServer::onDocumentFormatting(DocumentFormattingParams &Params) { auto ReplacementsOrError = Server.formatFile(*Code, File); if (ReplacementsOrError) - reply(json::ary(replacementsToEdits(*Code, ReplacementsOrError.get()))); + reply(json::Array(replacementsToEdits(*Code, ReplacementsOrError.get()))); else replyError(ErrorCode::UnknownErrorCode, llvm::toString(ReplacementsOrError.takeError())); @@ -304,7 +305,7 @@ void ClangdLSPServer::onDocumentSymbol(DocumentSymbolParams &Params) { llvm::toString(Items.takeError())); for (auto &Sym : *Items) Sym.kind = adjustKindToCapability(Sym.kind, SupportedSymbolKinds); - reply(json::ary(*Items)); + reply(json::Array(*Items)); }); } @@ -316,13 +317,13 @@ void ClangdLSPServer::onCodeAction(CodeActionParams &Params) { return replyError(ErrorCode::InvalidParams, "onCodeAction called for non-added file"); - json::ary Commands; + json::Array Commands; for (Diagnostic &D : Params.context.diagnostics) { for (auto &F : getFixes(Params.textDocument.uri.file(), D)) { WorkspaceEdit WE; std::vector<TextEdit> Edits(F.Edits.begin(), F.Edits.end()); WE.changes = {{Params.textDocument.uri.uri(), std::move(Edits)}}; - Commands.push_back(json::obj{ + Commands.push_back(json::Object{ {"title", llvm::formatv("Apply fix: {0}", F.Message)}, {"command", ExecuteCommandParams::CLANGD_APPLY_FIX_COMMAND}, {"arguments", {WE}}, @@ -364,7 +365,7 @@ void ClangdLSPServer::onGoToDefinition(TextDocumentPositionParams &Params) { if (!Items) return replyError(ErrorCode::InvalidParams, llvm::toString(Items.takeError())); - reply(json::ary(*Items)); + reply(json::Array(*Items)); }); } @@ -380,7 +381,7 @@ void ClangdLSPServer::onDocumentHighlight(TextDocumentPositionParams &Params) { if (!Highlights) return replyError(ErrorCode::InternalError, llvm::toString(Highlights.takeError())); - reply(json::ary(*Highlights)); + reply(json::Array(*Highlights)); }); } @@ -424,7 +425,7 @@ bool ClangdLSPServer::run(std::FILE *In, JSONStreamStyle InputStyle) { assert(!IsDone && "Run was called before"); // Set up JSONRPCDispatcher. - JSONRPCDispatcher Dispatcher([](const json::Expr &Params) { + JSONRPCDispatcher Dispatcher([](const json::Value &Params) { replyError(ErrorCode::MethodNotFound, "method not found"); }); registerCallbackHandlers(Dispatcher, /*Callbacks=*/*this); @@ -456,12 +457,12 @@ std::vector<Fix> ClangdLSPServer::getFixes(StringRef File, void ClangdLSPServer::onDiagnosticsReady(PathRef File, std::vector<Diag> Diagnostics) { - json::ary DiagnosticsJSON; + json::Array DiagnosticsJSON; DiagnosticToReplacementMap LocalFixIts; // Temporary storage for (auto &Diag : Diagnostics) { toLSPDiags(Diag, [&](clangd::Diagnostic Diag, llvm::ArrayRef<Fix> Fixes) { - DiagnosticsJSON.push_back(json::obj{ + DiagnosticsJSON.push_back(json::Object{ {"range", Diag.range}, {"severity", Diag.severity}, {"message", Diag.message}, @@ -481,11 +482,11 @@ void ClangdLSPServer::onDiagnosticsReady(PathRef File, } // Publish diagnostics. - Out.writeMessage(json::obj{ + Out.writeMessage(json::Object{ {"jsonrpc", "2.0"}, {"method", "textDocument/publishDiagnostics"}, {"params", - json::obj{ + json::Object{ {"uri", URIForFile{File}}, {"diagnostics", std::move(DiagnosticsJSON)}, }}, |

