summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clangd/ClangdLSPServer.cpp
diff options
context:
space:
mode:
authorSam McCall <sam.mccall@gmail.com>2018-07-09 14:25:59 +0000
committerSam McCall <sam.mccall@gmail.com>2018-07-09 14:25:59 +0000
commitd20d7989c678f9458df7880f7644b3316ee5f1dd (patch)
tree78af542bf097f028e8fd6dfd98cce481c47e7860 /clang-tools-extra/clangd/ClangdLSPServer.cpp
parent3d76326d24310638fff26267e24b5473b543913d (diff)
downloadbcm5719-llvm-d20d7989c678f9458df7880f7644b3316ee5f1dd.tar.gz
bcm5719-llvm-d20d7989c678f9458df7880f7644b3316ee5f1dd.zip
[clangd] Remove JSON library in favor of llvm/Support/JSON
Summary: The library has graduated from clangd to llvm/Support. This is a mechanical change to move to the new API and remove the old one. Main API changes: - namespace clang::clangd::json --> llvm::json - json::Expr --> json::Value - Expr::asString() etc --> Value::getAsString() etc - unsigned longs need a cast (due to r336541 adding lossless integer support) Reviewers: ilya-biryukov Subscribers: mgorny, ioeric, MaskRay, jkorous, omtcyfz, cfe-commits Differential Revision: https://reviews.llvm.org/D49077 llvm-svn: 336549
Diffstat (limited to 'clang-tools-extra/clangd/ClangdLSPServer.cpp')
-rw-r--r--clang-tools-extra/clangd/ClangdLSPServer.cpp41
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)},
}},
OpenPOWER on IntegriCloud