refactor: add mainview.get_editor_for_buffer

This commit is contained in:
CJ van den Berg 2025-12-17 22:06:49 +01:00
parent d08749123f
commit 3fb4bd6510
Signed by: neurocyte
GPG key ID: 8EB1E1BB660E3FB9

View file

@ -1347,7 +1347,7 @@ const cmds = struct {
if (!try ctx.args.match(.{ tp.extract(&buffer_ref), tp.extract(&output) }))
return error.InvalidShellOutputArgument;
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_editor_for_buffer(buffer)) |editor| if (editor.buffer) |eb| if (eb == buffer) {
editor.smart_buffer_append(command.fmt(.{output})) catch {};
tui.need_render();
return;
@ -1574,6 +1574,16 @@ pub fn get_active_editor(self: *Self) ?*ed.Editor {
return null;
}
pub fn get_editor_for_buffer(self: *Self, buffer: *Buffer) ?*ed.Editor {
for (self.views.widgets.items) |*view| {
const editor = view.widget.get("editor") orelse continue;
if (editor.dynamic_cast(ed.EditorWidget)) |p|
if (p.editor.buffer == buffer)
return &p.editor;
}
return null;
}
pub fn get_view_for_file(self: *Self, file_path: []const u8) ?usize {
for (self.views.widgets.items, 0..) |*view, n| {
const editor = view.widget.get("editor") orelse continue;