Fix falsy value for filterText and insertText

'filterText' and 'insertText' fields of 'CompletionItem' can only have
"" or undefined as falsy value.

https://github.com/microsoft/language-server-protocol/issues/1222
This commit is contained in:
rhysd 2021-03-15 20:16:16 +09:00
parent 521b795201
commit 6057d290b4
3 changed files with 4 additions and 4 deletions

View File

@ -415,7 +415,7 @@ fn nodeToCompletion(
} else false; } else false;
break :blk try analysis.getFunctionSnippet(&arena.allocator, tree, func, skip_self_param); break :blk try analysis.getFunctionSnippet(&arena.allocator, tree, func, skip_self_param);
} else null; } else "";
const is_type_function = analysis.isTypeFunction(handle.tree, func); const is_type_function = analysis.isTypeFunction(handle.tree, func);

View File

@ -230,8 +230,8 @@ pub const CompletionItem = struct {
label: []const u8, label: []const u8,
kind: Kind, kind: Kind,
textEdit: ?TextEdit = null, textEdit: ?TextEdit = null,
filterText: ?[]const u8 = null, filterText: []const u8 = "",
insertText: ?[]const u8 = null, insertText: []const u8 = "",
insertTextFormat: ?InsertTextFormat = .PlainText, insertTextFormat: ?InsertTextFormat = .PlainText,
detail: ?[]const u8 = null, detail: ?[]const u8 = null,
documentation: ?MarkupContent = null, documentation: ?MarkupContent = null,

View File

@ -138,7 +138,7 @@ test "Requesting a completion with no trailing whitespace" {
try sendRequest(completion_req, process); try sendRequest(completion_req, process);
try sendRequest(shutdown_message, process); try sendRequest(shutdown_message, process);
try consumeOutputAndWait(process, .{ try consumeOutputAndWait(process, .{
\\{"jsonrpc":"2.0","id":2,"result":{"isIncomplete":false,"items":[{"label":"std","kind":21,"textEdit":null,"filterText":null,"insertText":null,"insertTextFormat":1,"detail":"const std = @import(\"std\")","documentation":null}]}} \\{"jsonrpc":"2.0","id":2,"result":{"isIncomplete":false,"items":[{"label":"std","kind":21,"textEdit":null,"filterText":"","insertText":"","insertTextFormat":1,"detail":"const std = @import(\"std\")","documentation":null}]}}
}); });
} }