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;
|
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 {
|
pub fn delete_range(self: *const Node, sel: Selection, a: Allocator, size: ?*usize, metrics: Metrics) error{Stop}!Root {
|
||||||
var wcwidth: usize = 0;
|
var wcwidth: usize = 0;
|
||||||
_ = self.get_range(sel, null, size, &wcwidth, metrics) catch return error.Stop;
|
_ = 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)
|
syn.refresh_full(content.items)
|
||||||
else
|
else
|
||||||
syn.refresh(content.items);
|
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_refresh_full = false;
|
||||||
self.syntax_token = token;
|
self.syntax_token = token;
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Add table
Reference in a new issue