Merge branch 'master' into zig-0.14

This commit is contained in:
CJ van den Berg 2025-02-21 22:06:54 +01:00
commit 9b197e7209
Signed by: neurocyte
GPG key ID: 8EB1E1BB660E3FB9
3 changed files with 17 additions and 3 deletions

View file

@ -3994,6 +3994,20 @@ pub const Editor = struct {
} }
pub const smart_insert_line_after_meta: Meta = .{ .description = "Insert line after (smart)" }; pub const smart_insert_line_after_meta: Meta = .{ .description = "Insert line after (smart)" };
pub fn smart_buffer_append(self: *Self, ctx: Context) Result {
var chars: []const u8 = undefined;
if (!try ctx.args.match(.{tp.extract(&chars)}))
return error.InvalidInsertCharsArgument;
const b = try self.buf_for_update();
var root = b.root;
var cursel: CurSel = .{};
cursel.cursor.move_buffer_end(root, self.metrics);
root = try self.insert(root, &cursel, chars, b.allocator);
try self.update_buf(root);
self.clamp();
}
pub const smart_buffer_append_meta: Meta = .{ .arguments = &.{.string} };
pub fn enable_fast_scroll(self: *Self, _: Context) Result { pub fn enable_fast_scroll(self: *Self, _: Context) Result {
self.fast_scroll = true; self.fast_scroll = true;
} }

View file

@ -266,6 +266,7 @@ inline fn render_diff_symbols(self: *Self, diff_symbols: *[]Symbol, pos: usize,
} }
fn render_diagnostics(self: *Self, theme: *const Widget.Theme) void { fn render_diagnostics(self: *Self, theme: *const Widget.Theme) void {
if (tui.config().inline_diagnostics)
for (self.editor.diagnostics.items) |*diag| self.render_diagnostic(diag, theme); for (self.editor.diagnostics.items) |*diag| self.render_diagnostic(diag, theme);
} }

View file

@ -847,8 +847,7 @@ const cmds = struct {
return error.InvalidShellOutputArgument; return error.InvalidShellOutputArgument;
const buffer = self.buffer_manager.buffer_from_ref(buffer_ref) orelse return; const buffer = self.buffer_manager.buffer_from_ref(buffer_ref) orelse return;
if (self.get_active_editor()) |editor| if (editor.buffer) |eb| if (eb == buffer) { if (self.get_active_editor()) |editor| if (editor.buffer) |eb| if (eb == buffer) {
editor.move_buffer_end(.{}) catch {}; editor.smart_buffer_append(command.fmt(.{output})) catch {};
editor.insert_chars(command.fmt(.{output})) catch {};
tui.need_render(); tui.need_render();
return; return;
}; };