diff --git a/src/tui/mainview.zig b/src/tui/mainview.zig index c713cab..5b7de73 100644 --- a/src/tui/mainview.zig +++ b/src/tui/mainview.zig @@ -456,6 +456,22 @@ const cmds = struct { if (self.file_list_type == .diagnostics and self.is_panel_view_showing(filelist_view)) try self.toggle_panel_view(filelist_view, false); } + + pub fn show_diagnostics(self: *Self, _: Ctx) Result { + const editor = self.editor orelse return; + for (editor.diagnostics.items) |diagnostic| { + try self.add_find_in_files_result( + .diagnostics, + editor.file_path orelse "", + diagnostic.sel.begin.row + 1, + diagnostic.sel.begin.col, + diagnostic.sel.end.row + 1, + diagnostic.sel.end.col, + diagnostic.message, + ed.Diagnostic.to_severity(diagnostic.severity), + ); + } + } }; pub fn handle_editor_event(self: *Self, _: tp.pid_ref, m: tp.message) tp.result { diff --git a/src/tui/mode/input/flow.zig b/src/tui/mode/input/flow.zig index 6b55d53..ee37edb 100644 --- a/src/tui/mode/input/flow.zig +++ b/src/tui/mode/input/flow.zig @@ -129,6 +129,7 @@ fn mapPress(self: *Self, keypress: u32, egc: u32, modifiers: u32) !void { 'F' => self.cmd("enter_find_in_files_mode", .{}), 'L' => self.cmd_async("add_cursor_all_matches"), 'I' => self.cmd_async("toggle_inspector_view"), + 'M' => self.cmd("show_diagnostics", .{}), key.ENTER => self.cmd("smart_insert_line_before", .{}), key.END => self.cmd("select_buffer_end", .{}), key.HOME => self.cmd("select_buffer_begin", .{}), @@ -396,6 +397,7 @@ const hints = tui.KeybindHints.initComptime(.{ .{ "select_up", "S-up" }, .{ "select_word_left", "C-S-left" }, .{ "select_word_right", "C-S-right" }, + .{ "show_diagnostics", "C-S-m" }, .{ "smart_insert_line_after", "C-enter" }, .{ "smart_insert_line_before", "S-enter, C-S-enter" }, .{ "smart_insert_line", "enter" }, diff --git a/src/tui/status/diagstate.zig b/src/tui/status/diagstate.zig index 37c6322..e7bee3e 100644 --- a/src/tui/status/diagstate.zig +++ b/src/tui/status/diagstate.zig @@ -32,7 +32,7 @@ pub fn create(a: Allocator, parent: Plane, event_handler: ?Widget.EventHandler) } fn on_click(_: *Self, _: *Button.State(Self)) void { - command.executeName("goto_next_diagnostic", .{}) catch {}; + command.executeName("show_diagnostics", .{}) catch {}; } pub fn layout(self: *Self, _: *Button.State(Self)) Widget.Layout {