diff --git a/src/header.zig b/src/header.zig index 13b8b25..80577bc 100644 --- a/src/header.zig +++ b/src/header.zig @@ -1,5 +1,4 @@ const std = @import("std"); -const mem = std.mem; const RequestHeader = struct { content_length: usize, @@ -7,12 +6,12 @@ const RequestHeader = struct { /// null implies "application/vscode-jsonrpc; charset=utf-8" content_type: ?[]const u8, - pub fn deinit(self: @This(), allocator: *mem.Allocator) void { + pub fn deinit(self: @This(), allocator: *std.mem.Allocator) void { if (self.content_type) |ct| allocator.free(ct); } }; -pub fn readRequestHeader(allocator: *mem.Allocator, instream: anytype) !RequestHeader { +pub fn readRequestHeader(allocator: *std.mem.Allocator, instream: anytype) !RequestHeader { var r = RequestHeader{ .content_length = undefined, .content_type = null, @@ -26,14 +25,14 @@ pub fn readRequestHeader(allocator: *mem.Allocator, instream: anytype) !RequestH if (header.len == 0 or header[header.len - 1] != '\r') return error.MissingCarriageReturn; if (header.len == 1) break; - const header_name = header[0 .. mem.indexOf(u8, header, ": ") orelse return error.MissingColon]; + const header_name = header[0 .. std.mem.indexOf(u8, header, ": ") orelse return error.MissingColon]; const header_value = header[header_name.len + 2 .. header.len - 1]; - if (mem.eql(u8, header_name, "Content-Length")) { + if (std.mem.eql(u8, header_name, "Content-Length")) { if (header_value.len == 0) return error.MissingHeaderValue; r.content_length = std.fmt.parseInt(usize, header_value, 10) catch return error.InvalidContentLength; has_content_length = true; - } else if (mem.eql(u8, header_name, "Content-Type")) { - r.content_type = try mem.dupe(allocator, u8, header_value); + } else if (std.mem.eql(u8, header_name, "Content-Type")) { + r.content_type = try std.mem.dupe(allocator, u8, header_value); } else { return error.UnknownHeader; } diff --git a/src/types.zig b/src/types.zig index b336383..a39f43e 100644 --- a/src/types.zig +++ b/src/types.zig @@ -1,6 +1,5 @@ const std = @import("std"); // LSP types -const json = std.json; pub const Position = struct { line: i64, @@ -90,8 +89,8 @@ pub const DiagnosticSeverity = enum(i64) { Information = 3, Hint = 4, - pub fn jsonStringify(value: DiagnosticSeverity, options: json.StringifyOptions, out_stream: anytype) !void { - try json.stringify(@enumToInt(value), options, out_stream); + pub fn jsonStringify(value: DiagnosticSeverity, options: std.json.StringifyOptions, out_stream: anytype) !void { + try std.json.stringify(@enumToInt(value), options, out_stream); } }; @@ -193,8 +192,8 @@ pub const InsertTextFormat = enum(i64) { PlainText = 1, Snippet = 2, - pub fn jsonStringify(value: InsertTextFormat, options: json.StringifyOptions, out_stream: anytype) !void { - try json.stringify(@enumToInt(value), options, out_stream); + pub fn jsonStringify(value: InsertTextFormat, options: std.json.StringifyOptions, out_stream: anytype) !void { + try std.json.stringify(@enumToInt(value), options, out_stream); } }; @@ -226,8 +225,8 @@ pub const CompletionItem = struct { Operator = 24, TypeParameter = 25, - pub fn jsonStringify(value: Kind, options: json.StringifyOptions, out_stream: anytype) !void { - try json.stringify(@enumToInt(value), options, out_stream); + pub fn jsonStringify(value: Kind, options: std.json.StringifyOptions, out_stream: anytype) !void { + try std.json.stringify(@enumToInt(value), options, out_stream); } }; @@ -270,8 +269,8 @@ pub const DocumentSymbol = struct { Operator = 25, TypeParameter = 26, - pub fn jsonStringify(value: Kind, options: json.StringifyOptions, out_stream: anytype) !void { - try json.stringify(@enumToInt(value), options, out_stream); + pub fn jsonStringify(value: Kind, options: std.json.StringifyOptions, out_stream: anytype) !void { + try std.json.stringify(@enumToInt(value), options, out_stream); } }; diff --git a/src/uri.zig b/src/uri.zig index 9b565bf..f9ad498 100644 --- a/src/uri.zig +++ b/src/uri.zig @@ -1,5 +1,4 @@ const std = @import("std"); -const mem = std.mem; // http://tools.ietf.org/html/rfc3986#section-2.2 const reserved_chars = &[_]u8{ @@ -19,7 +18,7 @@ const reserved_escapes = blk: { }; /// Returns a URI from a path, caller owns the memory allocated with `allocator` -pub fn fromPath(allocator: *mem.Allocator, path: []const u8) ![]const u8 { +pub fn fromPath(allocator: *std.mem.Allocator, path: []const u8) ![]const u8 { if (path.len == 0) return ""; const prefix = if (std.builtin.os.tag == .windows) "file:///" else "file://"; @@ -29,7 +28,7 @@ pub fn fromPath(allocator: *mem.Allocator, path: []const u8) ![]const u8 { for (path) |char| { if (char == std.fs.path.sep) { try buf.append('/'); - } else if (mem.indexOfScalar(u8, reserved_chars, char)) |reserved| { + } else if (std.mem.indexOfScalar(u8, reserved_chars, char)) |reserved| { try buf.appendSlice(&reserved_escapes[reserved]); } else { try buf.append(char); @@ -40,7 +39,7 @@ pub fn fromPath(allocator: *mem.Allocator, path: []const u8) ![]const u8 { if (std.builtin.os.tag == .windows) { if (buf.items.len > prefix.len + 1 and std.ascii.isAlpha(buf.items[prefix.len]) and - mem.startsWith(u8, buf.items[prefix.len + 1 ..], "%3A")) + std.mem.startsWith(u8, buf.items[prefix.len + 1 ..], "%3A")) { buf.items[prefix.len] = std.ascii.toLower(buf.items[prefix.len]); } @@ -51,19 +50,19 @@ pub fn fromPath(allocator: *mem.Allocator, path: []const u8) ![]const u8 { /// Move along `rel` from `base` with a single allocation. /// `base` is a URI of a folder, `rel` is a raw relative path. -pub fn pathRelative(allocator: *mem.Allocator, base: []const u8, rel: []const u8) ![]const u8 { +pub fn pathRelative(allocator: *std.mem.Allocator, base: []const u8, rel: []const u8) ![]const u8 { const max_size = base.len + rel.len * 3 + 1; var result = try allocator.alloc(u8, max_size); errdefer allocator.free(result); - mem.copy(u8, result, base); + std.mem.copy(u8, result, base); var result_index: usize = base.len; - var it = mem.tokenize(u8, rel, "/"); + var it = std.mem.tokenize(u8, rel, "/"); while (it.next()) |component| { - if (mem.eql(u8, component, ".")) { + if (std.mem.eql(u8, component, ".")) { continue; - } else if (mem.eql(u8, component, "..")) { + } else if (std.mem.eql(u8, component, "..")) { while (true) { if (result_index == 0) return error.UriBadScheme; @@ -75,9 +74,9 @@ pub fn pathRelative(allocator: *mem.Allocator, base: []const u8, rel: []const u8 result[result_index] = '/'; result_index += 1; for (component) |char| { - if (mem.indexOfScalar(u8, reserved_chars, char)) |reserved| { + if (std.mem.indexOfScalar(u8, reserved_chars, char)) |reserved| { const escape = &reserved_escapes[reserved]; - mem.copy(u8, result[result_index..], escape); + std.mem.copy(u8, result[result_index..], escape); result_index += escape.len; } else { result[result_index] = char; @@ -108,8 +107,8 @@ fn parseHex(c: u8) !u8 { } /// Caller should free memory -pub fn parse(allocator: *mem.Allocator, str: []const u8) ![]u8 { - if (str.len < 7 or !mem.eql(u8, "file://", str[0..7])) return error.UriBadScheme; +pub fn parse(allocator: *std.mem.Allocator, str: []const u8) ![]u8 { + if (str.len < 7 or !std.mem.eql(u8, "file://", str[0..7])) return error.UriBadScheme; const uri = try allocator.alloc(u8, str.len - (if (std.fs.path.sep == '\\') 8 else 7)); errdefer allocator.free(uri);