fix crash with documentContext

This commit is contained in:
SuperAuguste 2020-05-08 09:17:32 -04:00
parent d368c84aa3
commit ffcdb886d9

View File

@ -308,6 +308,7 @@ const PositionContext = enum {
field_access, field_access,
var_access, var_access,
other, other,
empty
}; };
fn documentContext(doc: types.TextDocument, pos_index: usize) PositionContext { fn documentContext(doc: types.TextDocument, pos_index: usize) PositionContext {
@ -320,7 +321,8 @@ fn documentContext(doc: types.TextDocument, pos_index: usize) PositionContext {
var line = doc.text[curr_position .. pos_index + 1]; var line = doc.text[curr_position .. pos_index + 1];
// Strip any leading whitespace. // Strip any leading whitespace.
curr_position = 0; curr_position = 0;
while (line[curr_position] == ' ' or line[curr_position] == '\t') : (curr_position += 1) {} while (curr_position < line.len and (line[curr_position] == ' ' or line[curr_position] == '\t')) : (curr_position += 1) {}
if (curr_position >= line.len) return .empty;
line = line[curr_position .. ]; line = line[curr_position .. ];
// Quick exit for whole-comment lines. // Quick exit for whole-comment lines.
@ -526,7 +528,7 @@ fn processJsonRpc(parser: *std.json.Parser, json: []const u8) !void {
}, },
}, },
}); });
} else if (pos_context == .var_access) { } else if (pos_context == .var_access or pos_context == .empty) {
try completeGlobal(id, document); try completeGlobal(id, document);
} else { } else {
try respondGeneric(id, no_completions_response); try respondGeneric(id, no_completions_response);