diff --git a/home/config/nvim/nifoc/diagnostic.fnl b/home/config/nvim/nifoc/diagnostic.fnl index 89691c2..bc8ad61 100644 --- a/home/config/nvim/nifoc/diagnostic.fnl +++ b/home/config/nvim/nifoc/diagnostic.fnl @@ -12,7 +12,9 @@ (vim.diagnostic.config {:underline true :virtual_text false :signs true - :float {:border :rounded :source true} + :float {:border :rounded + :source true + :focusable false} :update_in_insert false :severity_sort true}) (sign "define DiagnosticSignError text= texthl=DiagnosticSignError linehl= numhl=") diff --git a/home/config/nvim/nifoc/keymap.fnl b/home/config/nvim/nifoc/keymap.fnl index 42a40de..7507c91 100644 --- a/home/config/nvim/nifoc/keymap.fnl +++ b/home/config/nvim/nifoc/keymap.fnl @@ -51,6 +51,8 @@ {:desc "Show Diagnostics"}) (keymap.set :n :dli :LspInfo {:desc "LSP Info"}) (keymap.set :n :dlr :LspRestart {:desc "Restart LSP"}) + (keymap.set :n :ds #(vim.diagnostic.open_float {:scope :line}) + {:desc "Show Diagnostics"}) (keymap.set :n :dtp :TSPlaygroundToggle {:desc "Toggle Treetsitter Playground"}) (keymap.set :n :dn #(noice.cmd :telescope) diff --git a/home/config/nvim/nifoc/statuscolumn.fnl b/home/config/nvim/nifoc/statuscolumn.fnl index d06db2d..9691452 100644 --- a/home/config/nvim/nifoc/statuscolumn.fnl +++ b/home/config/nvim/nifoc/statuscolumn.fnl @@ -61,11 +61,16 @@ $1.sign.name) :on_click {:name :heirline_statuscolumn_diagnostic :callback (fn [self] - (let [mouse (vim.fn.getmousepos)] - (vim.schedule #(vim.diagnostic.open_float {:bufnr self.bufnr - :pos (- mouse.line - 1) - :scope :line - :focusable false}))))}}) + (let [mouse (vim.fn.getmousepos) + line (- mouse.line 1) + cursor-pos [mouse.line 0]] + (api.nvim_win_set_cursor mouse.winid + cursor-pos) + (vim.schedule #(vim.diagnostic.goto_next {:win_id mouse.winid + :float false})) + (vim.defer_fn #(vim.diagnostic.open_float {:bufnr self.bufnr + :pos line + :scope :line}) + 200)))}}) mod)