{ pkgs, ... }: { programs.nixvim = { extraPlugins = with pkgs.vimPlugins; [ hover-nvim ]; extraConfigLua = # lua '' require("hover").setup({ init = function() require("hover.providers.lsp") require("hover.providers.diagnostic") require("hover.providers.man") require("hover.providers.dictionary") end, preview_opts = { border = 'single', }, preview_window = true, title = true, mouse_providers = { 'LSP', }, mouse_delay = 100 }) vim.o.mousemoveevent = true ''; # autoCmd = [ # { # desc = "Open Hover window when hovering over a word"; # event = "CursorHold"; # pattern = "*"; # callback.__raw = '' # function(_) # local word = vim.fn.expand("") # if word ~= "" then # require('hover').hover() # end # end # ''; # } # ]; keymaps = [ { mode = "n"; key = "K"; action = "lua require('hover').hover()"; options = { desc = "Open Hover Window"; silent = true; }; } { mode = "n"; key = "gK"; action = "lua require('hover').hover()"; options = { desc = "Select Hover Source"; silent = true; }; } { mode = "n"; key = ""; action = "lua require('hover').hover_switch('previous')"; options = { desc = "Previous Hover Source"; silent = true; }; } { mode = "n"; key = ""; action = "lua require('hover').hover_switch('next')"; options = { desc = "Next Hover Source"; silent = true; }; } { mode = "n"; key = ""; action = "lua require('hover').hover_mouse()"; options = { desc = "Hover Mouse Support"; silent = true; }; } ]; }; }