collapse some std imports
This commit is contained in:
parent
86e370add0
commit
164e078dbb
@ -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;
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
};
|
||||
|
||||
|
25
src/uri.zig
25
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);
|
||||
|
Loading…
Reference in New Issue
Block a user