diff options
| -rw-r--r-- | arch/nvim/.config/nvim/lazy-lock.json | 1 | ||||
| -rw-r--r-- | arch/nvim/.config/nvim/lua/plugins/completion.lua | 25 | ||||
| -rw-r--r-- | arch/nvim/.config/nvim/lua/plugins/formatting.lua | 1 | ||||
| -rw-r--r-- | arch/nvim/.config/nvim/lua/plugins/lsp.lua | 20 |
4 files changed, 44 insertions, 3 deletions
diff --git a/arch/nvim/.config/nvim/lazy-lock.json b/arch/nvim/.config/nvim/lazy-lock.json index 3a33ce2..30ba221 100644 --- a/arch/nvim/.config/nvim/lazy-lock.json +++ b/arch/nvim/.config/nvim/lazy-lock.json @@ -24,6 +24,7 @@ "nvim-web-devicons": { "branch": "master", "commit": "4fc505ac7bd7692824a142e96e5f529c133862f8" }, "oil.nvim": { "branch": "master", "commit": "0fcc83805ad11cf714a949c98c605ed717e0b83e" }, "promise-async": { "branch": "main", "commit": "119e8961014c9bfaf1487bf3c2a393d254f337e2" }, + "rustaceanvim": { "branch": "main", "commit": "a60811ae6054ba981cb4693aaecd715dea783327" }, "snacks.nvim": { "branch": "main", "commit": "ad9ede6a9cddf16cedbd31b8932d6dcdee9b716e" }, "undotree": { "branch": "master", "commit": "6fa6b57cda8459e1e4b2ca34df702f55242f4e4d" }, "vim-tmux-navigator": { "branch": "master", "commit": "e41c431a0c7b7388ae7ba341f01a0d217eb3a432" }, diff --git a/arch/nvim/.config/nvim/lua/plugins/completion.lua b/arch/nvim/.config/nvim/lua/plugins/completion.lua index 385cdb3..8fe2e26 100644 --- a/arch/nvim/.config/nvim/lua/plugins/completion.lua +++ b/arch/nvim/.config/nvim/lua/plugins/completion.lua @@ -1,3 +1,22 @@ +local function expand_menu() + local cfg = require("blink.cmp.config").completion + cfg.menu.max_height = 10 + cfg.documentation.auto_show = true + pcall(function() + require("blink.cmp.completion.windows.menu").update_position() + end) +end + +vim.api.nvim_create_autocmd("User", { + pattern = "BlinkCmpMenuClose", + callback = function() + local ok, cfg = pcall(function() return require("blink.cmp.config").completion end) + if not ok then return end + cfg.menu.max_height = 5 + cfg.documentation.auto_show = false + end, +}) + return { { "saghen/blink.cmp", @@ -9,7 +28,7 @@ return { ["<C-Space>"] = { "show", "show_documentation", "hide_documentation" }, ["<C-e>"] = { "hide" }, ["<CR>"] = { "accept", "fallback" }, - ["<Tab>"] = { "show", "select_next", "fallback" }, + ["<Tab>"] = { expand_menu, "select_next", "fallback" }, ["<S-Tab>"] = { "select_prev", "fallback" }, ["<C-b>"] = { "scroll_documentation_up", "fallback" }, ["<C-f>"] = { "scroll_documentation_down", "fallback" }, @@ -24,9 +43,9 @@ return { }, snippets = { preset = "luasnip" }, completion = { - documentation = { auto_show = true, auto_show_delay_ms = 200 }, + documentation = { auto_show = false, auto_show_delay_ms = 200 }, ghost_text = { enabled = false }, - menu = { auto_show = false }, + menu = { auto_show = true, max_height = 5 }, }, }, }, diff --git a/arch/nvim/.config/nvim/lua/plugins/formatting.lua b/arch/nvim/.config/nvim/lua/plugins/formatting.lua index 67143d5..4367c59 100644 --- a/arch/nvim/.config/nvim/lua/plugins/formatting.lua +++ b/arch/nvim/.config/nvim/lua/plugins/formatting.lua @@ -34,6 +34,7 @@ return { lua = { "stylua" }, haskell = { "ormolu" }, odin = { "odinfmt" }, + rust = { "rustfmt" }, }, format_on_save = function(bufnr) diff --git a/arch/nvim/.config/nvim/lua/plugins/lsp.lua b/arch/nvim/.config/nvim/lua/plugins/lsp.lua index d7b1b8d..76566d1 100644 --- a/arch/nvim/.config/nvim/lua/plugins/lsp.lua +++ b/arch/nvim/.config/nvim/lua/plugins/lsp.lua @@ -1,3 +1,15 @@ +vim.g.rustaceanvim = { + server = { + default_settings = { + ["rust-analyzer"] = { + cargo = { allFeatures = true }, + check = { command = "clippy" }, + inlayHints = { lifetimeElisionHints = { enable = "skip_trivial" } }, + }, + }, + }, +} + return { { "neovim/nvim-lspconfig", @@ -47,6 +59,9 @@ return { local map = function(keys, func, desc) vim.keymap.set("n", keys, func, { buffer = ev.buf, desc = "LSP: " .. desc }) end + if vim.lsp.inlay_hint then + vim.lsp.inlay_hint.enable(true, { bufnr = ev.buf }) + end map("gd", vim.lsp.buf.definition, "Goto definition") map("gD", vim.lsp.buf.declaration, "Goto declaration") map("gr", vim.lsp.buf.references, "Goto references") @@ -80,4 +95,9 @@ return { event = "LspAttach", opts = { notification = { window = { winblend = 0 } } }, }, + { + "mrcjkb/rustaceanvim", + version = "^9", + lazy = false, + }, } |