From e00ef683faeda57e2246d40b200abe31a53bbe10 Mon Sep 17 00:00:00 2001 From: gregladden Date: Fri, 8 Mar 2024 22:29:18 -0600 Subject: [PATCH] completions, dashboard, debug, lsp, none-ls, treesitter --- lazy-lock.json | 10 ++++++ lua/plugins/completions.lua | 45 +++++++++++++++++++++++++ lua/plugins/dashboard.lua | 31 +++++++++++++++++ lua/plugins/debug.lua | 37 ++++++++++++++++++++ lua/plugins/lsp-config.lua | 67 +++++++++++++++++++------------------ lua/plugins/none-ls.lua | 22 ++++++++++++ lua/plugins/treeSitter.lua | 2 +- 7 files changed, 180 insertions(+), 34 deletions(-) create mode 100644 lua/plugins/completions.lua create mode 100644 lua/plugins/dashboard.lua create mode 100644 lua/plugins/debug.lua create mode 100644 lua/plugins/none-ls.lua diff --git a/lazy-lock.json b/lazy-lock.json index a16ae795..94f18fcf 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,11 +1,21 @@ { + "LuaSnip": { "branch": "master", "commit": "a7a4b4682c4b3e2ba82b82a4e6e5f5a0e79dec32" }, + "alpha-nvim": { "branch": "main", "commit": "41283fb402713fc8b327e60907f74e46166f4cfd" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" }, + "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, + "friendly-snippets": { "branch": "main", "commit": "dcd4a586439a1c81357d5b9d26319ae218cc9479" }, "lazy.nvim": { "branch": "main", "commit": "83493db50a434a4c5c648faf41e2ead80f96e478" }, "lualine.nvim": { "branch": "master", "commit": "8b56462bfb746760465264de41b4907310f113ec" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "21d33d69a81f6351e5a5f49078b2e4f0075c8e73" }, "mason.nvim": { "branch": "main", "commit": "3b5068f0fc565f337d67a2d315d935f574848ee7" }, "neo-tree.nvim": { "branch": "v3.x", "commit": "459c60317cc1d251f6eb3b6f010d015d5d24b806" }, + "none-ls.nvim": { "branch": "main", "commit": "ff3819c52ca04232fb70fbd6c1639de9abcbe122" }, "nui.nvim": { "branch": "main", "commit": "756c59f46057cd2d43619cd3a6d4e01b2aa60295" }, "nvim": { "branch": "main", "commit": "045e3499d9ec8d84635fb08877ae44fd33f6a38d" }, + "nvim-cmp": { "branch": "main", "commit": "04e0ca376d6abdbfc8b52180f8ea236cbfddf782" }, + "nvim-dap": { "branch": "master", "commit": "fc880e82059eb21c0fa896be60146e5f17680648" }, + "nvim-dap-go": { "branch": "main", "commit": "64f73400761e2d19459e664a52ea478f3a4420e7" }, + "nvim-dap-ui": { "branch": "master", "commit": "9720eb5fa2f41988e8770f973cd11b76dd568a5d" }, "nvim-lspconfig": { "branch": "master", "commit": "94cf4adb81158817520e18d2174963d8e1424df9" }, "nvim-treesitter": { "branch": "master", "commit": "57205313dda0ac82ac69e21d5e2a80f3297c14cc" }, "nvim-web-devicons": { "branch": "master", "commit": "4adea17610d140a99c313e3f79a9dc01825d59ae" }, diff --git a/lua/plugins/completions.lua b/lua/plugins/completions.lua new file mode 100644 index 00000000..be3d2284 --- /dev/null +++ b/lua/plugins/completions.lua @@ -0,0 +1,45 @@ +return { + + { + "hrsh7th/cmp-nvim-lsp" + }, + { + "L3MON4D3/LuaSnip", + dependencies = { + "saadparwaiz1/cmp_luasnip", + "rafamadriz/friendly-snippets", + }, + }, + { + "hrsh7th/nvim-cmp", + config = function() + local cmp = require("cmp") + require("luasnip.loaders.from_vscode").lazy_load() + + cmp.setup({ + snippet = { + expand = function(args) + require("luasnip").lsp_expand(args.body) + end, + }, + window = { + completion = cmp.config.window.bordered(), + documentation = cmp.config.window.bordered(), + }, + mapping = cmp.mapping.preset.insert({ + [""] = cmp.mapping.scroll_docs(-4), + [""] = cmp.mapping.scroll_docs(4), + [""] = cmp.mapping.complete(), + [""] = cmp.mapping.abort(), + [""] = cmp.mapping.confirm({ select = true }), + }), + sources = cmp.config.sources({ + { name = "nvim_lsp" }, + { name = "luasnip" }, -- For luasnip users. + }, { + { name = "buffer" }, + }), + }) + end, + }, +} diff --git a/lua/plugins/dashboard.lua b/lua/plugins/dashboard.lua new file mode 100644 index 00000000..d6638aee --- /dev/null +++ b/lua/plugins/dashboard.lua @@ -0,0 +1,31 @@ +return { + "goolord/alpha-nvim", + dependencies = { + "nvim-tree/nvim-web-devicons", + }, + + config = function() + local alpha = require("alpha") + local dashboard = require("alpha.themes.startify") + + dashboard.section.header.val = { + [[ ]], + [[ ]], + [[ ]], + [[ ]], + [[  ]], + [[ ████ ██████ █████ ██ ]], + [[ ███████████ █████  ]], + [[ █████████ ███████████████████ ███ ███████████ ]], + [[ █████████ ███ █████████████ █████ ██████████████ ]], + [[ █████████ ██████████ █████████ █████ █████ ████ █████ ]], + [[ ███████████ ███ ███ █████████ █████ █████ ████ █████ ]], + [[ ██████ █████████████████████ ████ █████ █████ ████ ██████ ]], + [[ ]], + [[ ]], + [[ ]], + } + + alpha.setup(dashboard.opts) + end, +} diff --git a/lua/plugins/debug.lua b/lua/plugins/debug.lua new file mode 100644 index 00000000..2a4a1964 --- /dev/null +++ b/lua/plugins/debug.lua @@ -0,0 +1,37 @@ +return { + 'mfussenegger/nvim-dap', + dependencies = { + 'rcarriga/nvim-dap-ui', + 'leoluz/nvim-dap-go', + }, + config = function() + local dap = require('dap') + local dapui = require("dapui") + + require('dap-go').setup() + require('dapui').setup() + + vim.keymap.set('n', 'dc', function() dap.continue() end) + vim.keymap.set('n', '', function() dap.step_over() end) + vim.keymap.set('n', '', function() dap.step_into() end) + vim.keymap.set('n', '', function() dap.step_out() end) + vim.keymap.set('n', 'b', function() dap.toggle_breakpoint() end) + vim.keymap.set('n', 'B', function() dap.set_breakpoint() end) + vim.keymap.set('n', 'lp', + function() dap.set_breakpoint(nil, nil, vim.fn.input('Log point message: ')) end) + vim.keymap.set('n', 'dr', function() dap.repl.open() end) + vim.keymap.set('n', 'dl', function() dap.run_last() end) + 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 + end +} diff --git a/lua/plugins/lsp-config.lua b/lua/plugins/lsp-config.lua index 369e0d09..a6ac0663 100644 --- a/lua/plugins/lsp-config.lua +++ b/lua/plugins/lsp-config.lua @@ -9,43 +9,44 @@ return { "williamboman/mason-lspconfig.nvim", config = function() require("mason-lspconfig").setup { - ensure_installed = { "lua_ls","angularls","ansiblels","clangd","cssls","cssmodules_ls","unocss","diagnosticls","dockerls","docker_compose_language_service","eslint","golangci_lint_ls","gopls","grammarly","graphql","html","helm_ls","jsonls","biome","tsserver","sqlls","tailwindcss","templ","terraformls","tflint","yamlls"}, + ensure_installed = { "lua_ls", "angularls", "ansiblels", "clangd", "cssls", "cssmodules_ls", "unocss", "diagnosticls", "dockerls", "docker_compose_language_service", "eslint", "golangci_lint_ls", "gopls", "grammarly", "graphql", "html", "helm_ls", "jsonls", "biome", "tsserver", "sqlls", "tailwindcss", "templ", "terraformls", "tflint", "yamlls" }, } end }, { - 'neovim/nvim-lspconfig', - config = function() - local lspconfig = require('lspconfig') - lspconfig.lua_ls.setup({}) - lspconfig.angularls.setup({}) - lspconfig.ansiblels.setup({}) - lspconfig.clangd.setup({}) - lspconfig.cssls.setup({}) - lspconfig.cssmodules_ls.setup({}) - lspconfig.unocss.setup({}) - lspconfig.diagnosticls.setup({}) - lspconfig.dockerls.setup({}) - lspconfig.docker_compose_language_service.setup({}) - lspconfig.eslint.setup({}) - lspconfig.golangci_lint_ls.setup({}) - lspconfig.gopls.setup({}) - lspconfig.grammarly.setup({}) - lspconfig.graphql.setup({}) - lspconfig.html.setup({}) - lspconfig.helm_ls.setup({}) - lspconfig.jsonls.setup({}) - lspconfig.biome.setup({}) - lspconfig.tsserver.setup({}) - lspconfig.sqlls.setup({}) - lspconfig.tailwindcss.setup({}) - lspconfig.templ.setup({}) - lspconfig.terraformls.setup({}) - lspconfig.tflint.setup({}) - lspconfig.yamlls.setup({}) - lspconfig.terraformls.setup({}) - lspconfig.terraformls.setup({}) - lspconfig.terraformls.setup({}) + 'neovim/nvim-lspconfig', + config = function() + local lspconfig = require('lspconfig') + local capabilities = require('cmp_nvim_lsp').default_capabilities() + lspconfig.lua_ls.setup({capabilities = capabilities}) + lspconfig.angularls.setup({capabilities = capabilities}) + lspconfig.ansiblels.setup({capabilities = capabilities}) + lspconfig.clangd.setup({capabilities = capabilities}) + lspconfig.cssls.setup({capabilities = capabilities}) + lspconfig.cssmodules_ls.setup({capabilities = capabilities}) + lspconfig.unocss.setup({capabilities = capabilities}) + lspconfig.diagnosticls.setup({capabilities = capabilities}) + lspconfig.dockerls.setup({capabilities = capabilities}) + lspconfig.docker_compose_language_service.setup({capabilities = capabilities}) + lspconfig.eslint.setup({capabilities = capabilities}) + lspconfig.golangci_lint_ls.setup({capabilities = capabilities}) + lspconfig.gopls.setup({capabilities = capabilities}) + lspconfig.grammarly.setup({capabilities = capabilities}) + lspconfig.graphql.setup({capabilities = capabilities}) + lspconfig.html.setup({capabilities = capabilities}) + lspconfig.helm_ls.setup({capabilities = capabilities}) + lspconfig.jsonls.setup({capabilities = capabilities}) + lspconfig.biome.setup({capabilities = capabilities}) + lspconfig.tsserver.setup({capabilities = capabilities}) + lspconfig.sqlls.setup({capabilities = capabilities}) + lspconfig.tailwindcss.setup({capabilities = capabilities}) + lspconfig.templ.setup({capabilities = capabilities}) + lspconfig.terraformls.setup({capabilities = capabilities}) + lspconfig.tflint.setup({capabilities = capabilities}) + lspconfig.yamlls.setup({capabilities = capabilities}) + lspconfig.terraformls.setup({capabilities = capabilities}) + lspconfig.terraformls.setup({capabilities = capabilities}) + lspconfig.terraformls.setup({capabilities = capabilities}) -- Global mappings. -- See `:help vim.diagnostic.*` for documentation on any of the below functions diff --git a/lua/plugins/none-ls.lua b/lua/plugins/none-ls.lua new file mode 100644 index 00000000..bdb040f9 --- /dev/null +++ b/lua/plugins/none-ls.lua @@ -0,0 +1,22 @@ +return { + 'nvimtools/none-ls.nvim', + config = function() + local null_ls = require("null-ls") + + null_ls.setup({ + sources = { + null_ls.builtins.formatting.stylua, + null_ls.builtins.formatting.clang_format, + null_ls.builtins.formatting.gofmt, + null_ls.builtins.formatting.prettier, + null_ls.builtins.formatting.gofmt, + null_ls.builtins.formatting.sqlfmt, + null_ls.builtins.formatting.terraform_fmt, + null_ls.builtins.formatting.yamlfmt, + null_ls.builtins.diagnostics.glslc, + null_ls.builtins.completion.spell, + }, + }) + vim.keymap.set('n', 'gf', vim.lsp.buf.format, {}) + end +} diff --git a/lua/plugins/treeSitter.lua b/lua/plugins/treeSitter.lua index 6f9e0d65..6c40fb5e 100644 --- a/lua/plugins/treeSitter.lua +++ b/lua/plugins/treeSitter.lua @@ -3,7 +3,7 @@ return {"nvim-treesitter/nvim-treesitter", config = function() local configs = require("nvim-treesitter.configs") configs.setup({ - ensure_installed = { 'c', 'cpp', 'go', 'lua', 'python', 'rust', 'tsx', 'javascript', 'typescript', 'vimdoc', 'vim', 'bash' }, + auto_install = true, sync_install = false, highlight = { enable = true }, indent = { enable = true },