[PATCH] D43634: [clangd] Extend textDocument/didChange to specify whether diagnostics should be generated.
Eric Liu via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Feb 22 10:43:08 PST 2018
This revision was automatically updated to reflect the committed changes.
Closed by commit rCTE325813: [clangd] Extend textDocument/didChange to specify whether diagnostics should be… (authored by ioeric, committed by ).
Changed prior to commit:
https://reviews.llvm.org/D43634?vs=135463&id=135465#toc
Repository:
rCTE Clang Tools Extra
https://reviews.llvm.org/D43634
Files:
clangd/ClangdLSPServer.cpp
clangd/Protocol.cpp
clangd/Protocol.h
Index: clangd/Protocol.h
===================================================================
--- clangd/Protocol.h
+++ clangd/Protocol.h
@@ -297,6 +297,12 @@
/// The actual content changes.
std::vector<TextDocumentContentChangeEvent> contentChanges;
+
+ /// Forces diagnostics to be generated, or to not be generated, for this
+ /// version of the file. If not set, diagnostics are eventually consistent:
+ /// either they will be provided for this version or some subsequent one.
+ /// This is a clangd extension.
+ llvm::Optional<bool> wantDiagnostics;
};
bool fromJSON(const json::Expr &, DidChangeTextDocumentParams &);
Index: clangd/ClangdLSPServer.cpp
===================================================================
--- clangd/ClangdLSPServer.cpp
+++ clangd/ClangdLSPServer.cpp
@@ -149,9 +149,13 @@
if (Params.contentChanges.size() != 1)
return replyError(ErrorCode::InvalidParams,
"can only apply one change at a time");
+ auto WantDiags = WantDiagnostics::Auto;
+ if (Params.wantDiagnostics.hasValue())
+ WantDiags = Params.wantDiagnostics.getValue() ? WantDiagnostics::Yes
+ : WantDiagnostics::No;
// We only support full syncing right now.
Server.addDocument(Params.textDocument.uri.file(),
- Params.contentChanges[0].text, WantDiagnostics::Auto);
+ Params.contentChanges[0].text, WantDiags);
}
void ClangdLSPServer::onFileEvent(DidChangeWatchedFilesParams &Params) {
Index: clangd/Protocol.cpp
===================================================================
--- clangd/Protocol.cpp
+++ clangd/Protocol.cpp
@@ -221,7 +221,8 @@
bool fromJSON(const json::Expr &Params, DidChangeTextDocumentParams &R) {
json::ObjectMapper O(Params);
return O && O.map("textDocument", R.textDocument) &&
- O.map("contentChanges", R.contentChanges);
+ O.map("contentChanges", R.contentChanges) &&
+ O.map("wantDiagnostics", R.wantDiagnostics);
}
bool fromJSON(const json::Expr &E, FileChangeType &Out) {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D43634.135465.patch
Type: text/x-patch
Size: 2088 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180222/94ac1517/attachment.bin>
More information about the cfe-commits
mailing list