feat: add Buffer get_from_pos function
This commit is contained in:
parent
2db66a1369
commit
fb1d91585f
2 changed files with 11 additions and 0 deletions
|
@ -595,6 +595,16 @@ const Node = union(enum) {
|
|||
return if (copy_buf) |buf_| buf_[0..ctx.bytes] else null;
|
||||
}
|
||||
|
||||
pub fn get_from_pos(self: *const Node, start: Cursor, result_buf: []u8, metrics: Metrics) []const u8 {
|
||||
var end: Cursor = .{};
|
||||
end.move_buffer_end(self, metrics);
|
||||
const result = self.get_range(.{ .begin = start, .end = end }, result_buf, null, null, metrics) catch |e| switch (e) {
|
||||
error.NoSpaceLeft => result_buf[0..],
|
||||
else => @panic("buffer overflow in get_from_start_pos"),
|
||||
};
|
||||
return result orelse "";
|
||||
}
|
||||
|
||||
pub fn delete_range(self: *const Node, sel: Selection, a: Allocator, size: ?*usize, metrics: Metrics) error{Stop}!Root {
|
||||
var wcwidth: usize = 0;
|
||||
_ = self.get_range(sel, null, size, &wcwidth, metrics) catch return error.Stop;
|
||||
|
|
|
@ -2910,6 +2910,7 @@ pub const Editor = struct {
|
|||
syn.refresh_full(content.items)
|
||||
else
|
||||
syn.refresh(content.items);
|
||||
// syn.refresh_from_buffer(root, self.plane.metrics()); // TODO: partial refresh from buffer when treez PR is merged and flow-syntax is updated
|
||||
self.syntax_refresh_full = false;
|
||||
self.syntax_token = token;
|
||||
} else {
|
||||
|
|
Loading…
Add table
Reference in a new issue