refactor: change a -> allocator
This commit is contained in:
parent
ad58b1868d
commit
7b812d73ea
63 changed files with 896 additions and 896 deletions
|
@ -45,14 +45,14 @@ pub fn open(rel_project_directory: []const u8) !void {
|
|||
return (try get()).pid.send(.{ "open", project_directory });
|
||||
}
|
||||
|
||||
pub fn request_most_recent_file(a: std.mem.Allocator) !?[]const u8 {
|
||||
pub fn request_most_recent_file(allocator: std.mem.Allocator) !?[]const u8 {
|
||||
const project = tp.env.get().str("project");
|
||||
if (project.len == 0)
|
||||
return tp.exit("No project");
|
||||
const rsp = try (try get()).pid.call(a, request_timeout, .{ "request_most_recent_file", project });
|
||||
defer a.free(rsp.buf);
|
||||
const rsp = try (try get()).pid.call(allocator, request_timeout, .{ "request_most_recent_file", project });
|
||||
defer allocator.free(rsp.buf);
|
||||
var file_path: []const u8 = undefined;
|
||||
return if (try rsp.match(.{tp.extract(&file_path)})) try a.dupe(u8, file_path) else null;
|
||||
return if (try rsp.match(.{tp.extract(&file_path)})) try allocator.dupe(u8, file_path) else null;
|
||||
}
|
||||
|
||||
pub fn request_recent_files(max: usize) !void {
|
||||
|
@ -62,9 +62,9 @@ pub fn request_recent_files(max: usize) !void {
|
|||
return (try get()).pid.send(.{ "request_recent_files", project, max });
|
||||
}
|
||||
|
||||
pub fn request_recent_projects(a: std.mem.Allocator) !tp.message {
|
||||
pub fn request_recent_projects(allocator: std.mem.Allocator) !tp.message {
|
||||
const project = tp.env.get().str("project");
|
||||
return (try get()).pid.call(a, request_timeout, .{ "request_recent_projects", project });
|
||||
return (try get()).pid.call(allocator, request_timeout, .{ "request_recent_projects", project });
|
||||
}
|
||||
|
||||
pub fn query_recent_files(max: usize, query: []const u8) !void {
|
||||
|
@ -167,7 +167,7 @@ pub fn get_mru_position(file_path: []const u8) !void {
|
|||
}
|
||||
|
||||
const Process = struct {
|
||||
a: std.mem.Allocator,
|
||||
allocator: std.mem.Allocator,
|
||||
parent: tp.pid,
|
||||
logger: log.Logger,
|
||||
receiver: Receiver,
|
||||
|
@ -182,29 +182,29 @@ const Process = struct {
|
|||
};
|
||||
|
||||
fn create() !tp.pid {
|
||||
const a = std.heap.c_allocator;
|
||||
const self = try a.create(Process);
|
||||
const allocator = std.heap.c_allocator;
|
||||
const self = try allocator.create(Process);
|
||||
self.* = .{
|
||||
.a = a,
|
||||
.allocator = allocator,
|
||||
.parent = tp.self_pid().clone(),
|
||||
.logger = log.logger(module_name),
|
||||
.receiver = Receiver.init(Process.receive, self),
|
||||
.projects = ProjectsMap.init(a),
|
||||
.projects = ProjectsMap.init(allocator),
|
||||
};
|
||||
return tp.spawn_link(self.a, self, Process.start, module_name);
|
||||
return tp.spawn_link(self.allocator, self, Process.start, module_name);
|
||||
}
|
||||
|
||||
fn deinit(self: *Process) void {
|
||||
var i = self.projects.iterator();
|
||||
while (i.next()) |p| {
|
||||
self.a.free(p.key_ptr.*);
|
||||
self.allocator.free(p.key_ptr.*);
|
||||
p.value_ptr.*.deinit();
|
||||
self.a.destroy(p.value_ptr.*);
|
||||
self.allocator.destroy(p.value_ptr.*);
|
||||
}
|
||||
self.projects.deinit();
|
||||
self.parent.deinit();
|
||||
self.logger.deinit();
|
||||
self.a.destroy(self);
|
||||
self.allocator.destroy(self);
|
||||
}
|
||||
|
||||
fn start(self: *Process) tp.result {
|
||||
|
@ -313,10 +313,10 @@ const Process = struct {
|
|||
fn open(self: *Process, project_directory: []const u8) !void {
|
||||
if (self.projects.get(project_directory) == null) {
|
||||
self.logger.print("opening: {s}", .{project_directory});
|
||||
const project = try self.a.create(Project);
|
||||
project.* = try Project.init(self.a, project_directory);
|
||||
try self.projects.put(try self.a.dupe(u8, project_directory), project);
|
||||
self.walker = try walk_tree_async(self.a, project_directory);
|
||||
const project = try self.allocator.create(Project);
|
||||
project.* = try Project.init(self.allocator, project_directory);
|
||||
try self.projects.put(try self.allocator.dupe(u8, project_directory), project);
|
||||
self.walker = try walk_tree_async(self.allocator, project_directory);
|
||||
self.restore_project(project) catch |e| self.logger.err("restore_project", e);
|
||||
project.sort_files_by_mtime();
|
||||
} else {
|
||||
|
@ -347,11 +347,11 @@ const Process = struct {
|
|||
}
|
||||
|
||||
fn request_recent_projects(self: *Process, from: tp.pid_ref, project_directory: []const u8) error{ OutOfMemory, Exit }!void {
|
||||
var recent_projects = std.ArrayList(RecentProject).init(self.a);
|
||||
var recent_projects = std.ArrayList(RecentProject).init(self.allocator);
|
||||
defer recent_projects.deinit();
|
||||
self.load_recent_projects(&recent_projects, project_directory) catch {};
|
||||
self.sort_projects_by_last_used(&recent_projects);
|
||||
var message = std.ArrayList(u8).init(self.a);
|
||||
var message = std.ArrayList(u8).init(self.allocator);
|
||||
const writer = message.writer();
|
||||
try cbor.writeArrayHeader(writer, recent_projects.items.len);
|
||||
for (recent_projects.items) |project|
|
||||
|
@ -370,7 +370,7 @@ const Process = struct {
|
|||
|
||||
fn request_path_files(self: *Process, from: tp.pid_ref, project_directory: []const u8, max: usize, path: []const u8) error{ OutOfMemory, Exit }!void {
|
||||
const project = self.projects.get(project_directory) orelse return tp.exit("No project");
|
||||
request_path_files_async(self.a, from, project, max, path) catch |e| return tp.exit_error(e, @errorReturnTrace());
|
||||
request_path_files_async(self.allocator, from, project, max, path) catch |e| return tp.exit_error(e, @errorReturnTrace());
|
||||
}
|
||||
|
||||
fn did_open(self: *Process, project_directory: []const u8, file_path: []const u8, file_type: []const u8, language_server: []const u8, version: usize, text: []const u8) !void {
|
||||
|
@ -484,8 +484,8 @@ const Process = struct {
|
|||
|
||||
fn persist_project(self: *Process, project: *Project) !void {
|
||||
self.logger.print("saving: {s}", .{project.name});
|
||||
const file_name = try get_project_state_file_path(self.a, project);
|
||||
defer self.a.free(file_name);
|
||||
const file_name = try get_project_state_file_path(self.allocator, project);
|
||||
defer self.allocator.free(file_name);
|
||||
var file = try std.fs.createFileAbsolute(file_name, .{ .truncate = true });
|
||||
defer file.close();
|
||||
var buffer = std.io.bufferedWriter(file.writer());
|
||||
|
@ -494,23 +494,23 @@ const Process = struct {
|
|||
}
|
||||
|
||||
fn restore_project(self: *Process, project: *Project) !void {
|
||||
const file_name = try get_project_state_file_path(self.a, project);
|
||||
defer self.a.free(file_name);
|
||||
const file_name = try get_project_state_file_path(self.allocator, project);
|
||||
defer self.allocator.free(file_name);
|
||||
var file = std.fs.openFileAbsolute(file_name, .{ .mode = .read_only }) catch |e| switch (e) {
|
||||
error.FileNotFound => return,
|
||||
else => return e,
|
||||
};
|
||||
defer file.close();
|
||||
const stat = try file.stat();
|
||||
var buffer = try self.a.alloc(u8, @intCast(stat.size));
|
||||
defer self.a.free(buffer);
|
||||
var buffer = try self.allocator.alloc(u8, @intCast(stat.size));
|
||||
defer self.allocator.free(buffer);
|
||||
const size = try file.readAll(buffer);
|
||||
try project.restore_state(buffer[0..size]);
|
||||
}
|
||||
|
||||
fn get_project_state_file_path(a: std.mem.Allocator, project: *Project) ![]const u8 {
|
||||
fn get_project_state_file_path(allocator: std.mem.Allocator, project: *Project) ![]const u8 {
|
||||
const path = project.name;
|
||||
var stream = std.ArrayList(u8).init(a);
|
||||
var stream = std.ArrayList(u8).init(allocator);
|
||||
const writer = stream.writer();
|
||||
_ = try writer.write(try root.get_state_dir());
|
||||
_ = try writer.writeByte(std.fs.path.sep);
|
||||
|
@ -532,7 +532,7 @@ const Process = struct {
|
|||
}
|
||||
|
||||
fn load_recent_projects(self: *Process, recent_projects: *std.ArrayList(RecentProject), project_directory: []const u8) !void {
|
||||
var path = std.ArrayList(u8).init(self.a);
|
||||
var path = std.ArrayList(u8).init(self.allocator);
|
||||
defer path.deinit();
|
||||
const writer = path.writer();
|
||||
_ = try writer.write(try root.get_state_dir());
|
||||
|
@ -555,7 +555,7 @@ const Process = struct {
|
|||
recent_projects: *std.ArrayList(RecentProject),
|
||||
project_directory: []const u8,
|
||||
) !void {
|
||||
var path = std.ArrayList(u8).init(self.a);
|
||||
var path = std.ArrayList(u8).init(self.allocator);
|
||||
defer path.deinit();
|
||||
const writer = path.writer();
|
||||
_ = try writer.write(state_dir);
|
||||
|
@ -565,15 +565,15 @@ const Process = struct {
|
|||
var file = try std.fs.openFileAbsolute(path.items, .{ .mode = .read_only });
|
||||
defer file.close();
|
||||
const stat = try file.stat();
|
||||
const buffer = try self.a.alloc(u8, @intCast(stat.size));
|
||||
defer self.a.free(buffer);
|
||||
const buffer = try self.allocator.alloc(u8, @intCast(stat.size));
|
||||
defer self.allocator.free(buffer);
|
||||
_ = try file.readAll(buffer);
|
||||
|
||||
var iter: []const u8 = buffer;
|
||||
var name: []const u8 = undefined;
|
||||
if (cbor.matchValue(&iter, tp.extract(&name)) catch return) {
|
||||
const last_used = if (std.mem.eql(u8, project_directory, name)) std.math.maxInt(@TypeOf(stat.mtime)) else stat.mtime;
|
||||
(try recent_projects.addOne()).* = .{ .name = try self.a.dupe(u8, name), .last_used = last_used };
|
||||
(try recent_projects.addOne()).* = .{ .name = try self.allocator.dupe(u8, name), .last_used = last_used };
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -589,7 +589,7 @@ const Process = struct {
|
|||
|
||||
fn request_path_files_async(a_: std.mem.Allocator, parent_: tp.pid_ref, project_: *Project, max_: usize, path_: []const u8) !void {
|
||||
return struct {
|
||||
a: std.mem.Allocator,
|
||||
allocator: std.mem.Allocator,
|
||||
project_name: []const u8,
|
||||
path: []const u8,
|
||||
parent: tp.pid,
|
||||
|
@ -599,20 +599,20 @@ fn request_path_files_async(a_: std.mem.Allocator, parent_: tp.pid_ref, project_
|
|||
const path_files = @This();
|
||||
const Receiver = tp.Receiver(*path_files);
|
||||
|
||||
fn spawn_link(a: std.mem.Allocator, parent: tp.pid_ref, project: *Project, max: usize, path: []const u8) !void {
|
||||
const self = try a.create(path_files);
|
||||
fn spawn_link(allocator: std.mem.Allocator, parent: tp.pid_ref, project: *Project, max: usize, path: []const u8) !void {
|
||||
const self = try allocator.create(path_files);
|
||||
self.* = .{
|
||||
.a = a,
|
||||
.project_name = try a.dupe(u8, project.name),
|
||||
.allocator = allocator,
|
||||
.project_name = try allocator.dupe(u8, project.name),
|
||||
.path = try if (std.fs.path.isAbsolute(path))
|
||||
a.dupe(u8, path)
|
||||
allocator.dupe(u8, path)
|
||||
else
|
||||
std.fs.path.join(a, &[_][]const u8{ project.name, path }),
|
||||
std.fs.path.join(allocator, &[_][]const u8{ project.name, path }),
|
||||
.parent = parent.clone(),
|
||||
.max = max,
|
||||
.dir = try std.fs.cwd().openDir(self.path, .{ .iterate = true }),
|
||||
};
|
||||
const pid = try tp.spawn_link(a, self, path_files.start, module_name ++ ".path_files");
|
||||
const pid = try tp.spawn_link(allocator, self, path_files.start, module_name ++ ".path_files");
|
||||
pid.deinit();
|
||||
}
|
||||
|
||||
|
@ -627,8 +627,8 @@ fn request_path_files_async(a_: std.mem.Allocator, parent_: tp.pid_ref, project_
|
|||
|
||||
fn deinit(self: *path_files) void {
|
||||
self.dir.close();
|
||||
self.a.free(self.path);
|
||||
self.a.free(self.project_name);
|
||||
self.allocator.free(self.path);
|
||||
self.allocator.free(self.project_name);
|
||||
self.parent.deinit();
|
||||
}
|
||||
|
||||
|
@ -653,7 +653,7 @@ fn request_path_files_async(a_: std.mem.Allocator, parent_: tp.pid_ref, project_
|
|||
|
||||
fn walk_tree_async(a_: std.mem.Allocator, root_path_: []const u8) !tp.pid {
|
||||
return struct {
|
||||
a: std.mem.Allocator,
|
||||
allocator: std.mem.Allocator,
|
||||
root_path: []const u8,
|
||||
parent: tp.pid,
|
||||
receiver: Receiver,
|
||||
|
@ -663,17 +663,17 @@ fn walk_tree_async(a_: std.mem.Allocator, root_path_: []const u8) !tp.pid {
|
|||
const tree_walker = @This();
|
||||
const Receiver = tp.Receiver(*tree_walker);
|
||||
|
||||
fn spawn_link(a: std.mem.Allocator, root_path: []const u8) !tp.pid {
|
||||
const self = try a.create(tree_walker);
|
||||
fn spawn_link(allocator: std.mem.Allocator, root_path: []const u8) !tp.pid {
|
||||
const self = try allocator.create(tree_walker);
|
||||
self.* = .{
|
||||
.a = a,
|
||||
.root_path = try a.dupe(u8, root_path),
|
||||
.allocator = allocator,
|
||||
.root_path = try allocator.dupe(u8, root_path),
|
||||
.parent = tp.self_pid().clone(),
|
||||
.receiver = Receiver.init(tree_walker.receive, self),
|
||||
.dir = try std.fs.cwd().openDir(self.root_path, .{ .iterate = true }),
|
||||
.walker = try walk_filtered(self.dir, self.a),
|
||||
.walker = try walk_filtered(self.dir, self.allocator),
|
||||
};
|
||||
return tp.spawn_link(a, self, tree_walker.start, module_name ++ ".tree_walker");
|
||||
return tp.spawn_link(allocator, self, tree_walker.start, module_name ++ ".tree_walker");
|
||||
}
|
||||
|
||||
fn start(self: *tree_walker) tp.result {
|
||||
|
@ -687,7 +687,7 @@ fn walk_tree_async(a_: std.mem.Allocator, root_path_: []const u8) !tp.pid {
|
|||
fn deinit(self: *tree_walker) void {
|
||||
self.walker.deinit();
|
||||
self.dir.close();
|
||||
self.a.free(self.root_path);
|
||||
self.allocator.free(self.root_path);
|
||||
self.parent.deinit();
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue