Fixed integer overflow in semantic_tokens.Builder.handleComments
This commit is contained in:
parent
ab8c65eeda
commit
91643c04c9
@ -559,7 +559,7 @@ pub fn identifierFromPosition(pos_index: usize, handle: DocumentStore.Handle) []
|
|||||||
if (pos_index + 1 >= text.len) return &[0]u8{};
|
if (pos_index + 1 >= text.len) return &[0]u8{};
|
||||||
var start_idx = pos_index;
|
var start_idx = pos_index;
|
||||||
|
|
||||||
while (start_idx > 0 and isSymbolChar(text[start_idx-1])) {
|
while (start_idx > 0 and isSymbolChar(text[start_idx - 1])) {
|
||||||
start_idx -= 1;
|
start_idx -= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -569,7 +569,7 @@ pub fn identifierFromPosition(pos_index: usize, handle: DocumentStore.Handle) []
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (end_idx <= start_idx) return &[0]u8{};
|
if (end_idx <= start_idx) return &[0]u8{};
|
||||||
return text[start_idx .. end_idx];
|
return text[start_idx..end_idx];
|
||||||
}
|
}
|
||||||
fn isSymbolChar(char: u8) bool {
|
fn isSymbolChar(char: u8) bool {
|
||||||
return std.ascii.isAlNum(char) or char == '_';
|
return std.ascii.isAlNum(char) or char == '_';
|
||||||
|
@ -136,6 +136,9 @@ const Builder = struct {
|
|||||||
|
|
||||||
/// Highlight normal comments and doc comments.
|
/// Highlight normal comments and doc comments.
|
||||||
fn handleComments(self: *Builder, from: usize, to: usize) !void {
|
fn handleComments(self: *Builder, from: usize, to: usize) !void {
|
||||||
|
if (from == to) return;
|
||||||
|
std.debug.assert(from < to);
|
||||||
|
|
||||||
const source = self.handle.tree.source;
|
const source = self.handle.tree.source;
|
||||||
|
|
||||||
var i: usize = from;
|
var i: usize = from;
|
||||||
|
@ -73,7 +73,6 @@ const Server = struct {
|
|||||||
|
|
||||||
const result = ",\"result\":";
|
const result = ",\"result\":";
|
||||||
const msg = rest[id_end + result.len .. rest.len - 1];
|
const msg = rest[id_end + result.len .. rest.len - 1];
|
||||||
|
|
||||||
if (std.mem.eql(u8, msg, expected)) {
|
if (std.mem.eql(u8, msg, expected)) {
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
@ -108,7 +107,7 @@ const Server = struct {
|
|||||||
fn startZls() !*std.ChildProcess {
|
fn startZls() !*std.ChildProcess {
|
||||||
std.debug.print("\n", .{});
|
std.debug.print("\n", .{});
|
||||||
|
|
||||||
var process = try std.ChildProcess.init(&[_][]const u8{"zig-out/bin/zls" ++ suffix}, allocator);
|
var process = try std.ChildProcess.init(&[_][]const u8{"zig-cache/bin/zls" ++ suffix}, allocator);
|
||||||
process.stdin_behavior = .Pipe;
|
process.stdin_behavior = .Pipe;
|
||||||
process.stdout_behavior = .Pipe;
|
process.stdout_behavior = .Pipe;
|
||||||
process.stderr_behavior = .Pipe; //std.ChildProcess.StdIo.Inherit;
|
process.stderr_behavior = .Pipe; //std.ChildProcess.StdIo.Inherit;
|
||||||
|
Loading…
Reference in New Issue
Block a user