refactor: don't pass ownership to project_manager.did_open
This commit is contained in:
parent
111e9dbe1f
commit
8bc374f110
2 changed files with 3 additions and 7 deletions
|
|
@ -796,7 +796,6 @@ pub fn delete_task(self: *Self, command: []const u8) error{}!void {
|
|||
}
|
||||
|
||||
pub fn did_open(self: *Self, from: tp.pid_ref, file_path: []const u8, file_type: []const u8, language_server: []const u8, language_server_options: []const u8, version: usize, text: []const u8) StartLspError!void {
|
||||
defer std.heap.c_allocator.free(text);
|
||||
self.update_mru(file_path, 0, 0) catch {};
|
||||
const lsp = try self.get_or_start_language_server(from, file_path, language_server, language_server_options);
|
||||
const uri = try self.make_URI(file_path);
|
||||
|
|
|
|||
|
|
@ -212,11 +212,10 @@ pub fn did_open(file_path: []const u8, file_type: file_type_config, version: usi
|
|||
const project = tp.env.get().str("project");
|
||||
if (project.len == 0)
|
||||
return error.NoProject;
|
||||
const text_ptr: usize = if (text.len > 0) @intFromPtr(text.ptr) else 0;
|
||||
const language_server = file_type.language_server orelse return;
|
||||
const language_server_options = if (file_type.language_server) |lsp| lsp_config.get(project, lsp[0]) orelse &.{} else &.{};
|
||||
defer lsp_config.allocator.free(language_server_options);
|
||||
return send(.{ "did_open", project, file_path, file_type.name, language_server, language_server_options, version, text_ptr, text.len });
|
||||
return send(.{ "did_open", project, file_path, file_type.name, language_server, language_server_options, version, text });
|
||||
}
|
||||
|
||||
pub fn did_change(file_path: []const u8, version: usize, text_dst: []const u8, text_src: []const u8, eol_mode: Buffer.EolMode) (ProjectManagerError || ProjectError)!void {
|
||||
|
|
@ -408,8 +407,7 @@ const Process = struct {
|
|||
var row: usize = 0;
|
||||
var col: usize = 0;
|
||||
var version: usize = 0;
|
||||
var text_ptr: usize = 0;
|
||||
var text_len: usize = 0;
|
||||
var text: []const u8 = undefined;
|
||||
var text_dst_ptr: usize = 0;
|
||||
var text_dst_len: usize = 0;
|
||||
var text_src_ptr: usize = 0;
|
||||
|
|
@ -483,8 +481,7 @@ const Process = struct {
|
|||
self.add_task(project_directory, task) catch |e| return from.forward_error(e, @errorReturnTrace()) catch error.ClientFailed;
|
||||
} else if (try cbor.match(m.buf, .{ "delete_task", tp.extract(&project_directory), tp.extract(&task) })) {
|
||||
self.delete_task(project_directory, task) catch |e| return from.forward_error(e, @errorReturnTrace()) catch error.ClientFailed;
|
||||
} else if (try cbor.match(m.buf, .{ "did_open", tp.extract(&project_directory), tp.extract(&path), tp.extract(&file_type), tp.extract_cbor(&language_server), tp.extract(&language_server_options), tp.extract(&version), tp.extract(&text_ptr), tp.extract(&text_len) })) {
|
||||
const text = if (text_len > 0) @as([*]const u8, @ptrFromInt(text_ptr))[0..text_len] else "";
|
||||
} else if (try cbor.match(m.buf, .{ "did_open", tp.extract(&project_directory), tp.extract(&path), tp.extract(&file_type), tp.extract_cbor(&language_server), tp.extract(&language_server_options), tp.extract(&version), tp.extract(&text) })) {
|
||||
self.did_open(project_directory, path, file_type, language_server, language_server_options, version, text) catch |e| return from.forward_error(e, @errorReturnTrace()) catch error.ClientFailed;
|
||||
} else if (try cbor.match(m.buf, .{ "did_change", tp.extract(&project_directory), tp.extract(&path), tp.extract(&version), tp.extract(&text_dst_ptr), tp.extract(&text_dst_len), tp.extract(&text_src_ptr), tp.extract(&text_src_len), tp.extract(&eol_mode) })) {
|
||||
const text_dst = if (text_dst_len > 0) @as([*]const u8, @ptrFromInt(text_dst_ptr))[0..text_dst_len] else "";
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue