diff --git a/home/apps/neovim/lua/lsp/init.lua b/home/apps/neovim/lua/lsp/init.lua index 2c53caa..fa46d3b 100644 --- a/home/apps/neovim/lua/lsp/init.lua +++ b/home/apps/neovim/lua/lsp/init.lua @@ -83,7 +83,6 @@ cmp.setup({ { name = "nvim_lsp" }, { name = "luasnip" }, { name = "vim-dadbod-completion" }, - }, { { name = "buffer" }, }), formatting = { @@ -95,6 +94,14 @@ cmp.setup({ }, }) +vim.api.nvim_create_autocmd("BufRead", { + group = vim.api.nvim_create_augroup("CmpSourceCargo", { clear = true }), + pattern = "Cargo.toml", + callback = function() + cmp.setup.buffer({ sources = { { name = "crates" } } }) + end, +}) + local git_ft = { "gitcommit", "NeogitCommitMessage", "Octo" } cmp.setup.filetype(git_ft, { sources = cmp.config.sources({ @@ -171,7 +178,24 @@ require("lsp.validation").setup(common) require("lsp.webdev").setup(common) -- external dependencies pcall(require("py_lsp").setup, common) -pcall(require("rust-tools").setup, { server = common }) +pcall(require("rust-tools").setup, { + server = { + settings = { + ["rust-analyzer"] = { + cargo = { + autoReload = true, + target = "wasm32-unknown-unknown", + }, + checkOnSave = { + allTargets = true, + }, + }, + }, + }, + tools = { + executor = require("rust-tools.executors").toggleterm, + }, +}) lspconfig.nil_ls.setup(vim.tbl_extend("keep", { settings = { diff --git a/home/apps/neovim/lua/plugins/catppuccin.lua b/home/apps/neovim/lua/plugins/catppuccin.lua index 1fd407d..9e68c58 100644 --- a/home/apps/neovim/lua/plugins/catppuccin.lua +++ b/home/apps/neovim/lua/plugins/catppuccin.lua @@ -18,6 +18,7 @@ return { term_colors = true, integrations = { treesitter = true, + treesitter_context = true, native_lsp = { enabled = true, virtual_text = { diff --git a/home/apps/neovim/lua/plugins/lsp.lua b/home/apps/neovim/lua/plugins/lsp.lua index 72a0c51..1602a46 100644 --- a/home/apps/neovim/lua/plugins/lsp.lua +++ b/home/apps/neovim/lua/plugins/lsp.lua @@ -19,20 +19,36 @@ return { "folke/trouble.nvim", opts = { padding = false }, }, - { "folke/neodev.nvim", opts = {} }, + { "folke/neodev.nvim", opts = true }, "nvim-lua/lsp-status.nvim", "barreiroleo/ltex-extra.nvim", "b0o/schemastore.nvim", "hallerpatrick/py_lsp.nvim", + -- rust lsp, dap, dependency management + { "saecki/crates.nvim", opts = true }, "simrat39/rust-tools.nvim", + -- lua native typescript lsp plugin "pmizio/typescript-tools.nvim", { "ray-x/go.nvim", dependencies = { "ray-x/guihua.lua" } }, { - "rcarriga/nvim-dap-ui", + "mfussenegger/nvim-dap", dependencies = { - "mfussenegger/nvim-dap", + { "rcarriga/nvim-dap-ui" }, "theHamsta/nvim-dap-virtual-text", }, + config = function() + local dap, dapui = require("dap"), require("dapui") + + dap.listeners.after.event_initialized["dapui_config"] = function() + dapui.open() + end + dap.listeners.before.event_terminated["dapui_config"] = function() + dapui.close() + end + dap.listeners.before.event_exited["dapui_config"] = function() + dapui.close() + end + end, }, }, config = function() diff --git a/home/apps/neovim/lua/plugins/nvim-tree.lua b/home/apps/neovim/lua/plugins/nvim-tree.lua index c11f7df..4a6b4af 100644 --- a/home/apps/neovim/lua/plugins/nvim-tree.lua +++ b/home/apps/neovim/lua/plugins/nvim-tree.lua @@ -41,6 +41,11 @@ return { name = "Astro", color = C.red, }, + ["dt"] = { + icon = "", + name = "Diet", + color = "#427819", + }, ["norg"] = { icon = "", name = "Neorg", diff --git a/home/apps/neovim/lua/plugins/tree-sitter.lua b/home/apps/neovim/lua/plugins/tree-sitter.lua index 6179c1d..682159c 100644 --- a/home/apps/neovim/lua/plugins/tree-sitter.lua +++ b/home/apps/neovim/lua/plugins/tree-sitter.lua @@ -44,6 +44,10 @@ return { vim.o.foldenable = false end, }, + { + "nvim-treesitter/nvim-treesitter-context", + config = { mode = "topline" }, + }, "nvim-treesitter/playground", "nvim-treesitter/nvim-treesitter-textobjects", "windwp/nvim-ts-autotag",