From 87100b9fbfe0fa52ff6be17f03d3457f594ee6e4 Mon Sep 17 00:00:00 2001 From: 0xTux <0xtux@pm.me> Date: Tue, 19 Mar 2024 02:51:01 +0000 Subject: [PATCH] add rust and golang with debugger --- pkgs/nvchad/nvim/lua/configs/conform.lua | 1 + pkgs/nvchad/nvim/lua/configs/dap.lua | 16 +++++++ pkgs/nvchad/nvim/lua/configs/go.lua | 5 +++ pkgs/nvchad/nvim/lua/configs/overrides.lua | 13 +++--- pkgs/nvchad/nvim/lua/configs/rust.lua | 17 +++++++ pkgs/nvchad/nvim/lua/mappings.lua | 6 +++ pkgs/nvchad/nvim/lua/plugins/init.lua | 52 +++++++++++++++++++++- 7 files changed, 102 insertions(+), 8 deletions(-) create mode 100644 pkgs/nvchad/nvim/lua/configs/dap.lua create mode 100644 pkgs/nvchad/nvim/lua/configs/go.lua create mode 100644 pkgs/nvchad/nvim/lua/configs/rust.lua diff --git a/pkgs/nvchad/nvim/lua/configs/conform.lua b/pkgs/nvchad/nvim/lua/configs/conform.lua index 10e6851..7c4b9ec 100644 --- a/pkgs/nvchad/nvim/lua/configs/conform.lua +++ b/pkgs/nvchad/nvim/lua/configs/conform.lua @@ -16,6 +16,7 @@ local options = { markdown = { prettier }, nix = { "alejandra" }, go = { "goimports", "gofumpt" }, + rust = { "rust_analyzer" }, }, format_on_save = { diff --git a/pkgs/nvchad/nvim/lua/configs/dap.lua b/pkgs/nvchad/nvim/lua/configs/dap.lua new file mode 100644 index 0000000..352cc6f --- /dev/null +++ b/pkgs/nvchad/nvim/lua/configs/dap.lua @@ -0,0 +1,16 @@ +require("dapui").setup() + +local dap, dapui = require("dap"), require("dapui") + +dap.listeners.before.attach.dapui_config = function() + dapui.open() +end +dap.listeners.before.launch.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 diff --git a/pkgs/nvchad/nvim/lua/configs/go.lua b/pkgs/nvchad/nvim/lua/configs/go.lua new file mode 100644 index 0000000..384b129 --- /dev/null +++ b/pkgs/nvchad/nvim/lua/configs/go.lua @@ -0,0 +1,5 @@ +require("go").setup({ + trouble = true, + icons = { breakpoint = "", currentpos = "" }, + gocoverage_sign = "│", +}) diff --git a/pkgs/nvchad/nvim/lua/configs/overrides.lua b/pkgs/nvchad/nvim/lua/configs/overrides.lua index 044c551..f426cd7 100644 --- a/pkgs/nvchad/nvim/lua/configs/overrides.lua +++ b/pkgs/nvchad/nvim/lua/configs/overrides.lua @@ -21,6 +21,9 @@ M.treesitter = { "gomod", "gowork", "gosum", + + -- rust + "rust", }, } @@ -44,13 +47,9 @@ M.mason = { -- go "gopls", - "goimports", - "gofumpt", - "gomodifytags", - "impl", - "iferr", - "staticcheck", - "delve", + + -- rust + "codelldb", }, } diff --git a/pkgs/nvchad/nvim/lua/configs/rust.lua b/pkgs/nvchad/nvim/lua/configs/rust.lua new file mode 100644 index 0000000..52ce836 --- /dev/null +++ b/pkgs/nvchad/nvim/lua/configs/rust.lua @@ -0,0 +1,17 @@ +local configs = require("nvchad.configs.lspconfig") +local on_attach = configs.on_attach +local capabilities = configs.capabilities + +vim.g.rustaceanvim = { + server = { + on_attach = on_attach, + capabilities = capabilities, + default_settings = { + ["rust-analyzer"] = { + cargo = { + allFeatures = true, + }, + }, + }, + }, +} diff --git a/pkgs/nvchad/nvim/lua/mappings.lua b/pkgs/nvchad/nvim/lua/mappings.lua index 10b5303..092b99e 100644 --- a/pkgs/nvchad/nvim/lua/mappings.lua +++ b/pkgs/nvchad/nvim/lua/mappings.lua @@ -36,6 +36,12 @@ map("n", "td", "TodoTelescope keywords=TODO,FIX,FIXME,BUG,TEST,NOTE map("n", "m", toggleTreesj, { desc = "Toggle Treesitter Join" }) map("n", "o", "Outline", { desc = "Toggle Outline" }) +-- DAP +map("n", "", "DapToggleBreakpoint", { desc = "Toggle break point" }) +map("n", "", "DapContinue", { desc = "Continue" }) +map("n", "", "DapTerminate", { desc = "Terminate" }) +map("n", "", "DapStepOver", { desc = "Step over" }) + if g.neovide then local zoomInNeovide = function() g.neovide_scale_factor = g.neovide_scale_factor + 0.1 diff --git a/pkgs/nvchad/nvim/lua/plugins/init.lua b/pkgs/nvchad/nvim/lua/plugins/init.lua index 862c558..58c5a6e 100644 --- a/pkgs/nvchad/nvim/lua/plugins/init.lua +++ b/pkgs/nvchad/nvim/lua/plugins/init.lua @@ -95,8 +95,25 @@ local plugins = { { "folke/neodev.nvim", event = "VeryLazy", + config = function() + require("neodev").setup({ + library = { + plugins = { "nvim-dap-ui" }, + types = true, + }, + }) + end, + }, + { + "mfussenegger/nvim-dap", + config = function() + require("configs.dap") + end, + dependencies = { + "rcarriga/nvim-dap-ui", + "nvim-neotest/nvim-nio", + }, }, - -- Language specific plugins { "pmizio/typescript-tools.nvim", @@ -114,5 +131,38 @@ local plugins = { "typescriptreact", }, }, + { + "ray-x/go.nvim", + dependencies = { + "neovim/nvim-lspconfig", + "nvim-treesitter/nvim-treesitter", + "mfussenegger/nvim-dap", + "rcarriga/nvim-dap-ui", + }, + event = { "CmdlineEnter" }, + config = function() + require("configs.go") + end, + ft = { + "go", + "gomod", + "gosum", + "gowork", + "gotmpl", + }, + build = ':lua require("go.install").update_all_sync()', + }, + { + "mrcjkb/rustaceanvim", + config = function() + require("configs.rust") + end, + version = "^4", + dependencies = { + "mfussenegger/nvim-dap", + "rcarriga/nvim-dap-ui", + }, + ft = { "rust" }, + }, } return plugins