From ca3b35afc020e01809efe9ae0da4763c47e2deb6 Mon Sep 17 00:00:00 2001 From: Yorick Barbanneau Date: Fri, 25 Apr 2025 16:54:33 +0200 Subject: [PATCH] chore(honme-manager): rework neovim cmp plugin configuration --- modules/home-manager/cli/neovim/default.nix | 14 -------- .../home-manager/cli/neovim/files/options.lua | 17 ++++----- .../cli/neovim/files/plugins/blink-cmp.lua | 36 ++++++++++++++++++- 3 files changed, 44 insertions(+), 23 deletions(-) diff --git a/modules/home-manager/cli/neovim/default.nix b/modules/home-manager/cli/neovim/default.nix index 507e21f..1932b2e 100644 --- a/modules/home-manager/cli/neovim/default.nix +++ b/modules/home-manager/cli/neovim/default.nix @@ -177,20 +177,6 @@ in config = ( builtins.readFile ./files/plugins/treesitter_context.lua); } - { - plugin = lspsaga-nvim; - type = "lua"; - config = '' - require('lspsaga').setup { - ui = { - code_action = '' - }, - lightbulb = { - virtual_text = false - } - } - ''; - } { plugin = which-key-nvim; type = "lua"; diff --git a/modules/home-manager/cli/neovim/files/options.lua b/modules/home-manager/cli/neovim/files/options.lua index bee83db..b683e0a 100644 --- a/modules/home-manager/cli/neovim/files/options.lua +++ b/modules/home-manager/cli/neovim/files/options.lua @@ -66,16 +66,16 @@ vim.opt.completeopt = {'menu', 'menuone', 'noselect'} vim.cmd('au BufWinLeave *.* mkview') vim.cmd('au BufWinEnter *.* silent! loadview') -local signs = { Error = "", Warn = "", Hint = "󰌶", Info = "" } -for type, icon in pairs(signs) do - local hl = "DiagnosticSign" .. type - vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = hl }) -end +-- local signs = { Error = "", Warn = "", Hint = "󰌶", Info = "" } +-- for type, icon in pairs(signs) do +-- local hl = "DiagnosticSign" .. type +-- vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = hl }) +-- end -- You will likely want to reduce updatetime which affects CursorHold -- note: this setting is global and should be set only once vim.o.updatetime = 250 -vim.cmd [[autocmd! CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {scope='cursor', header = "", prefix = "", focus=false})]] +-- vim.cmd [[autocmd! CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {scope='cursor', header = "", prefix = "", focus=false})]] -- Autotype vim.cmd('au BufRead,BufNewFile *.nix setlocal tabstop=2 shiftwidth=2 ') @@ -124,12 +124,13 @@ vim.g.matchparen_insert_timeout = 2 -- activate virtual lines for diagnistics -- no more plugins needed +local x = vim.diagnostic.severity vim.diagnostic.config({ - virtual_lines = true - + virtual_lines = true, -- Alternatively, customize specific options -- virtual_lines = { -- -- Only show virtual line diagnostics for the current cursor line -- current_line = true, -- }, + signs = { text = { [x.ERROR] = "󰅙", [x.WARN] = "", [x.INFO] = "󰋼", [x.HINT] = "󰌵" } }, }) diff --git a/modules/home-manager/cli/neovim/files/plugins/blink-cmp.lua b/modules/home-manager/cli/neovim/files/plugins/blink-cmp.lua index 1d42f63..f5aad60 100644 --- a/modules/home-manager/cli/neovim/files/plugins/blink-cmp.lua +++ b/modules/home-manager/cli/neovim/files/plugins/blink-cmp.lua @@ -1,8 +1,14 @@ require("blink.cmp").setup({ keymap = { - preset = "cmdline", + preset = "none", [''] = { 'scroll_documentation_up', 'fallback' }, [''] = { 'scroll_documentation_down', 'fallback' }, + [''] = { 'select_next', 'fallback' }, + [''] = { 'select_prev', 'fallback' }, + [''] = { 'show', 'fallback' }, + [''] = { 'select_and_accept' }, + [''] = { 'cancel' }, + }, completion = { menu = { @@ -38,6 +44,16 @@ require("blink.cmp").setup({ "dictionary", }, providers = { + path = { + module = 'blink.cmp.sources.path', + score_offset = 3, + opts = { + trailing_slash = false, + label_trailing_slash = false, + get_cwd = function(context) return vim.fn.expand(('#%d:p:h'):format(context.bufnr)) end, + show_hidden_files_by_default = true, + } + }, emoji = { module = "blink-emoji", name = "Emoji", @@ -61,8 +77,26 @@ require("blink.cmp").setup({ end, }, }, + buffer = { + module = 'blink.cmp.sources.buffer', + score_offset = -3, + min_keyword_length = 4, + opts = { + -- default to all visible buffers + get_bufnrs = function() + return vim + .iter(vim.api.nvim_list_wins()) + :map(function(win) return vim.api.nvim_win_get_buf(win) end) + :filter(function(buf) return vim.bo[buf].buftype ~= 'nofile' end) + :totable() + end, + } + }, }, }, + fuzzy = { + max_typos = function() return 0 end, + }, cmdline = { enabled = false, },