feat(lsp): rename_symbol: add checks to file uri decoding
This commit is contained in:
parent
00efee6c02
commit
f659fcf586
1 changed files with 7 additions and 0 deletions
|
@ -815,8 +815,15 @@ pub fn rename_symbol(self: *Self, from: tp.pid_ref, file_path: []const u8, row:
|
|||
try cbor.writeValue(w, "rename_symbol_item");
|
||||
try cbor.writeArrayHeader(w, renames.items.len);
|
||||
for (renames.items) |rename| {
|
||||
if (!std.mem.eql(u8, rename.uri[0..7], "file://")) return error.InvalidTargetURI;
|
||||
var file_path_buf: [std.fs.max_path_bytes]u8 = undefined;
|
||||
const file_path_ = std.Uri.percentDecodeBackwards(&file_path_buf, rename.uri[7..]);
|
||||
if (builtin.os.tag == .windows) {
|
||||
if (file_path[0] == '/') file_path = file_path[1..];
|
||||
for (file_path, 0..) |c, i| if (c == '/') {
|
||||
file_path[i] = '\\';
|
||||
};
|
||||
}
|
||||
const line = try self.get_line_of_file(self.allocator, file_path, rename.range.start.line);
|
||||
try cbor.writeValue(w, .{
|
||||
file_path_,
|
||||
|
|
Loading…
Add table
Reference in a new issue