[clangd] capitalize diagnostic messages
The diagnostic messages that are sent to the client from Clangd are now always capitalized. Differential Revision: https://reviews.llvm.org/D50154 llvm-svn: 338919
This commit is contained in:
parent
bfd9cfdeeb
commit
b411cf3275
|
@ -145,6 +145,13 @@ void printDiag(llvm::raw_string_ostream &OS, const DiagBase &D) {
|
|||
OS << diagLeveltoString(D.Severity) << ": " << D.Message;
|
||||
}
|
||||
|
||||
/// Capitalizes the first word in the diagnostic's message.
|
||||
std::string capitalize(std::string Message) {
|
||||
if (!Message.empty())
|
||||
Message[0] = llvm::toUpper(Message[0]);
|
||||
return Message;
|
||||
}
|
||||
|
||||
/// Returns a message sent to LSP for the main diagnostic in \p D.
|
||||
/// The message includes all the notes with their corresponding locations.
|
||||
/// However, notes with fix-its are excluded as those usually only contain a
|
||||
|
@ -166,7 +173,7 @@ std::string mainMessage(const Diag &D) {
|
|||
printDiag(OS, Note);
|
||||
}
|
||||
OS.flush();
|
||||
return Result;
|
||||
return capitalize(std::move(Result));
|
||||
}
|
||||
|
||||
/// Returns a message sent to LSP for the note of the main diagnostic.
|
||||
|
@ -179,7 +186,7 @@ std::string noteMessage(const Diag &Main, const DiagBase &Note) {
|
|||
OS << "\n\n";
|
||||
printDiag(OS, Main);
|
||||
OS.flush();
|
||||
return Result;
|
||||
return capitalize(std::move(Result));
|
||||
}
|
||||
} // namespace
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
# CHECK-NEXT: "params": {
|
||||
# CHECK-NEXT: "diagnostics": [
|
||||
# CHECK-NEXT: {
|
||||
# CHECK-NEXT: "message": "return type of 'main' is not 'int'",
|
||||
# CHECK-NEXT: "message": "Return type of 'main' is not 'int'",
|
||||
# CHECK-NEXT: "range": {
|
||||
# CHECK-NEXT: "end": {
|
||||
# CHECK-NEXT: "character": 4,
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
# CHECK-NEXT: "params": {
|
||||
# CHECK-NEXT: "diagnostics": [
|
||||
# CHECK-NEXT: {
|
||||
# CHECK-NEXT: "message": "variable 'i' is uninitialized when used here",
|
||||
# CHECK-NEXT: "message": "Variable 'i' is uninitialized when used here",
|
||||
# CHECK-NEXT: "range": {
|
||||
# CHECK-NEXT: "end": {
|
||||
# CHECK-NEXT: "character": 28,
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
# CHECK-NEXT: "params": {
|
||||
# CHECK-NEXT: "diagnostics": [
|
||||
# CHECK-NEXT: {
|
||||
# CHECK-NEXT: "message": "using the result of an assignment as a condition without parentheses",
|
||||
# CHECK-NEXT: "message": "Using the result of an assignment as a condition without parentheses",
|
||||
# CHECK-NEXT: "range": {
|
||||
# CHECK-NEXT: "end": {
|
||||
# CHECK-NEXT: "character": 37,
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
# CHECK-NEXT: "params": {
|
||||
# CHECK-NEXT: "diagnostics": [
|
||||
# CHECK-NEXT: {
|
||||
# CHECK-NEXT: "message": "variable 'i' is uninitialized when used here",
|
||||
# CHECK-NEXT: "message": "Variable 'i' is uninitialized when used here",
|
||||
# CHECK-NEXT: "range": {
|
||||
# CHECK-NEXT: "end": {
|
||||
# CHECK-NEXT: "character": 28,
|
||||
|
@ -28,7 +28,7 @@
|
|||
# CHECK-NEXT: "params": {
|
||||
# CHECK-NEXT: "diagnostics": [
|
||||
# CHECK-NEXT: {
|
||||
# CHECK-NEXT: "message": "variable 'i' is uninitialized when used here",
|
||||
# CHECK-NEXT: "message": "Variable 'i' is uninitialized when used here",
|
||||
# CHECK-NEXT: "range": {
|
||||
# CHECK-NEXT: "end": {
|
||||
# CHECK-NEXT: "character": 28,
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
# CHECK-NEXT: "params": {
|
||||
# CHECK-NEXT: "diagnostics": [
|
||||
# CHECK-NEXT: {
|
||||
# CHECK-NEXT: "message": "using the result of an assignment as a condition without parentheses",
|
||||
# CHECK-NEXT: "message": "Using the result of an assignment as a condition without parentheses",
|
||||
# CHECK-NEXT: "range": {
|
||||
# CHECK-NEXT: "end": {
|
||||
# CHECK-NEXT: "character": 37,
|
||||
|
@ -23,7 +23,7 @@
|
|||
# CHECK-NEXT: "uri": "file://{{.*}}/foo.c"
|
||||
# CHECK-NEXT: }
|
||||
---
|
||||
{"jsonrpc":"2.0","id":2,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"test:///foo.c"},"range":{"start":{"line":104,"character":13},"end":{"line":0,"character":35}},"context":{"diagnostics":[{"range":{"start": {"line": 0, "character": 32}, "end": {"line": 0, "character": 37}},"severity":2,"message":"using the result of an assignment as a condition without parentheses"}]}}}
|
||||
{"jsonrpc":"2.0","id":2,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"test:///foo.c"},"range":{"start":{"line":104,"character":13},"end":{"line":0,"character":35}},"context":{"diagnostics":[{"range":{"start": {"line": 0, "character": 32}, "end": {"line": 0, "character": 37}},"severity":2,"message":"Using the result of an assignment as a condition without parentheses"}]}}}
|
||||
# CHECK: "id": 2,
|
||||
# CHECK-NEXT: "jsonrpc": "2.0",
|
||||
# CHECK-NEXT: "result": [
|
||||
|
@ -92,7 +92,7 @@
|
|||
# CHECK-NEXT: }
|
||||
# CHECK-NEXT: ]
|
||||
---
|
||||
{"jsonrpc":"2.0","id":3,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"test:///foo.c"},"range":{"start":{"line":104,"character":13},"end":{"line":0,"character":35}},"context":{"diagnostics":[{"range":{"start": {"line": 0, "character": 32}, "end": {"line": 0, "character": 37}},"severity":2,"message":"using the result of an assignment as a condition without parentheses"}]}}}
|
||||
{"jsonrpc":"2.0","id":3,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"test:///foo.c"},"range":{"start":{"line":104,"character":13},"end":{"line":0,"character":35}},"context":{"diagnostics":[{"range":{"start": {"line": 0, "character": 32}, "end": {"line": 0, "character": 37}},"severity":2,"message":"Using the result of an assignment as a condition without parentheses"}]}}}
|
||||
# Make sure unused "code" and "source" fields ignored gracefully
|
||||
# CHECK: "id": 3,
|
||||
# CHECK-NEXT: "jsonrpc": "2.0",
|
||||
|
|
|
@ -172,7 +172,7 @@ TEST(DiagnosticsTest, ToLSP) {
|
|||
};
|
||||
|
||||
// Diagnostics should turn into these:
|
||||
clangd::Diagnostic MainLSP = MatchingLSP(D, R"(something terrible happened
|
||||
clangd::Diagnostic MainLSP = MatchingLSP(D, R"(Something terrible happened
|
||||
|
||||
main.cpp:6:7: remark: declared somewhere in the main file
|
||||
|
||||
|
@ -180,7 +180,7 @@ main.cpp:6:7: remark: declared somewhere in the main file
|
|||
note: declared somewhere in the header file)");
|
||||
|
||||
clangd::Diagnostic NoteInMainLSP =
|
||||
MatchingLSP(NoteInMain, R"(declared somewhere in the main file
|
||||
MatchingLSP(NoteInMain, R"(Declared somewhere in the main file
|
||||
|
||||
main.cpp:2:3: error: something terrible happened)");
|
||||
|
||||
|
|
Loading…
Reference in New Issue