[clangd] Fix missing "message" key when responding with unsupported method
The language server protocol dictates that a ResponseError should have a [message string][1] describing the error. This adds a simple message to the error and a simple test. [1]: https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md#response-message Patch by Raoul Wols! Differential Revision: https://reviews.llvm.org/D38225 llvm-svn: 314119
This commit is contained in:
parent
aa7f750bec
commit
9297af60db
|
@ -42,7 +42,7 @@ void Handler::handleMethod(llvm::yaml::MappingNode *Params, StringRef ID) {
|
|||
// Return that this method is unsupported.
|
||||
writeMessage(
|
||||
R"({"jsonrpc":"2.0","id":)" + ID +
|
||||
R"(,"error":{"code":-32601}})");
|
||||
R"(,"error":{"code":-32601,"message":"method not found"}})");
|
||||
}
|
||||
|
||||
void Handler::handleNotification(llvm::yaml::MappingNode *Params) {
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
# RUN: clangd -run-synchronously < %s | FileCheck %s
|
||||
# It is absolutely vital that this file has CRLF line endings.
|
||||
#
|
||||
Content-Length: 125
|
||||
|
||||
{"jsonrpc":"2.0","id":0,"method":"initialize","params":{"processId":123,"rootPath":"clangd","capabilities":{},"trace":"off"}}
|
||||
|
||||
Content-Length: 143
|
||||
|
||||
{"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"uri":"file:///main.cpp","languageId":"cpp","version":1,"text":""}}}
|
||||
|
||||
Content-Length: 92
|
||||
|
||||
{"jsonrpc":"2.0","id":1,"method":"textDocument/jumpInTheAirLikeYouJustDontCare","params":{}}
|
||||
# CHECK: {"jsonrpc":"2.0","id":1,"error":{"code":-32601,"message":"method not found"}}
|
||||
|
||||
Content-Length: 44
|
||||
|
||||
{"jsonrpc":"2.0","id":2,"method":"shutdown"}
|
Loading…
Reference in New Issue