summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/nvim/.config/nvim/lazy-lock.json1
-rw-r--r--arch/nvim/.config/nvim/lua/plugins/completion.lua25
-rw-r--r--arch/nvim/.config/nvim/lua/plugins/formatting.lua1
-rw-r--r--arch/nvim/.config/nvim/lua/plugins/lsp.lua20
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,
+ },
}