diff options
| -rw-r--r-- | README.md | 5 | ||||
| -rw-r--r-- | lua/config/conform.lua | 6 | ||||
| -rw-r--r-- | lua/config/init.lua | 3 | ||||
| -rw-r--r-- | lua/config/java.lua | 171 | ||||
| -rw-r--r-- | lua/config/keys.lua | 16 | ||||
| -rw-r--r-- | lua/config/lint.lua | 11 | ||||
| -rw-r--r-- | lua/config/lsp.lua | 30 | ||||
| -rw-r--r-- | lua/config/mason.lua | 62 | ||||
| -rw-r--r-- | lua/config/plugins.lua | 10 | ||||
| -rw-r--r-- | nvim-pack-lock.json | 16 |
10 files changed, 206 insertions, 124 deletions
@@ -3,8 +3,11 @@ ## LSP Installation Install the LSP's you want to use with `:Mason` -I caved, I did it myself, mason just makes it too easy, some of the LSPs like gradle became annoying to setup. +A bunch are configured in `lua/config/mason.lua` + +I caved, I did it myself, mason just makes it too easy, some LSPs like gradle became annoying to setup. ## On First Run If developing with Java and you want to use neotest, make sure you run `:NetotestJava setup` + diff --git a/lua/config/conform.lua b/lua/config/conform.lua index 9668b44..e426483 100644 --- a/lua/config/conform.lua +++ b/lua/config/conform.lua @@ -11,10 +11,8 @@ end) require("conform").setup({ formatters_by_ft = { - lua = { "stylua" }, -- os package manager stylua - swift = { "swift" }, -- included with swift - -- prettierd -- os package manager prettierd or npm i -g @fsouza/prettierd - -- prettier -- should be installed in the project + lua = { "stylua" }, + swift = { "swift" }, javascript = { "prettierd", "prettier" }, javascriptreact = { "prettierd", "prettier" }, typescript = { "prettierd", "prettier" }, diff --git a/lua/config/init.lua b/lua/config/init.lua index 5cd83e1..96de944 100644 --- a/lua/config/init.lua +++ b/lua/config/init.lua @@ -2,7 +2,8 @@ require("config.opts") require("config.keys") require("config.git") require("config.plugins") -require("config.lsp") +require("config.mason") +require("config.lint") require("config.treesitter") require("config.telescope") require("config.conform") diff --git a/lua/config/java.lua b/lua/config/java.lua index c2e9de3..a59b495 100644 --- a/lua/config/java.lua +++ b/lua/config/java.lua @@ -1,94 +1,91 @@ -vim.pack.add({ - "https://github.com/nvim-java/nvim-java", - "https://github.com/JavaHello/spring-boot.nvim", - "https://github.com/iamkarasik/sonarqube.nvim", -}) +-- only if we have java on our sytem +if vim.fn.executable("java") == 1 then + vim.pack.add({ + "https://github.com/nvim-java/nvim-java", + "https://github.com/JavaHello/spring-boot.nvim", + "https://github.com/iamkarasik/sonarqube.nvim", + }) -require("java").setup() + require("java").setup() -local function path_to_class(path) - local name = path:gsub("%.java$", "") - local class_path = name:match(".*/java/(.*)") or name - class_path = class_path:gsub("/", ".") - return class_path -end + local function path_to_class(path) + local name = path:gsub("%.java$", "") + local class_path = name:match(".*/java/(.*)") or name + class_path = class_path:gsub("/", ".") + return class_path + end --- find java files only --- inspired by --- https://github.com/MuriloGhignatti/nvim-config/blob/main/lua/safe/plugins/fuzzy_finder.lua -vim.keymap.set("n", "<leader>jc", function() - require("telescope.builtin").find_files({ - prompt_title = "Java Classes", - cwd = vim.fn.getcwd(), - find_command = { - "rg", - "--files", - "--type", - "java", - "--glob", - "!*.properties", - "--glob", - "!*Test.java", - "--glob", - "!**/test/**", - }, - path_display = function(_, path) - return path_to_class(path) - end, - previewer = true, - }) -end) + -- find java files only + -- inspired by + -- https://github.com/MuriloGhignatti/nvim-config/blob/main/lua/safe/plugins/fuzzy_finder.lua + vim.keymap.set("n", "<leader>jc", function() + require("telescope.builtin").find_files({ + prompt_title = "Java Classes", + cwd = vim.fn.getcwd(), + find_command = { + "rg", + "--files", + "--type", + "java", + "--glob", + "!*.properties", + "--glob", + "!*Test.java", + "--glob", + "!**/test/**", + }, + path_display = function(_, path) + return path_to_class(path) + end, + previewer = true, + }) + end) -vim.keymap.set("n", "<leader>jt", function() - require("telescope.builtin").find_files({ - prompt_title = "Java Tests", - cwd = vim.fn.getcwd(), - find_command = { - "rg", - "--files", - "--type", - "java", - "--glob", - "!*.properties", - "--glob", - "*Test*.java", - "--glob", - "**/test/**.java", - }, - path_display = function(_, path) - return path_to_class(path) - end, - previewer = true, - }) -end) + vim.keymap.set("n", "<leader>jt", function() + require("telescope.builtin").find_files({ + prompt_title = "Java Tests", + cwd = vim.fn.getcwd(), + find_command = { + "rg", + "--files", + "--type", + "java", + "--glob", + "!*.properties", + "--glob", + "*Test*.java", + "--glob", + "**/test/**.java", + }, + path_display = function(_, path) + return path_to_class(path) + end, + previewer = true, + }) + end) --- mason sonarqube config -local extension_path = vim.fn.stdpath("data") .. "/mason/packages/sonarlint-language-server/extension" + -- mason sonarqube config + local extension_path = vim.fn.stdpath("data") .. "/mason/packages/sonarlint-language-server/extension" -require("sonarqube").setup({ - lsp = { - cmd = { - vim.fn.exepath("java"), - "-jar", - extension_path .. "/server/sonarlint-ls.jar", - "-stdio", - "-analyzers", - extension_path .. "/analyzers/sonargo.jar", - extension_path .. "/analyzers/sonarhtml.jar", - extension_path .. "/analyzers/sonariac.jar", - extension_path .. "/analyzers/sonarjava.jar", - extension_path .. "/analyzers/sonarjavasymbolicexecution.jar", - extension_path .. "/analyzers/sonarjs.jar", - extension_path .. "/analyzers/sonarphp.jar", - extension_path .. "/analyzers/sonarpython.jar", - extension_path .. "/analyzers/sonartext.jar", - extension_path .. "/analyzers/sonarxml.jar", + require("sonarqube").setup({ + lsp = { + cmd = { + vim.fn.exepath("java"), + "-jar", + extension_path .. "/server/sonarlint-ls.jar", + "-stdio", + "-analyzers", + extension_path .. "/analyzers/sonargo.jar", + extension_path .. "/analyzers/sonarhtml.jar", + extension_path .. "/analyzers/sonariac.jar", + extension_path .. "/analyzers/sonarjava.jar", + extension_path .. "/analyzers/sonarjavasymbolicexecution.jar", + extension_path .. "/analyzers/sonarjs.jar", + extension_path .. "/analyzers/sonarphp.jar", + extension_path .. "/analyzers/sonarpython.jar", + extension_path .. "/analyzers/sonartext.jar", + extension_path .. "/analyzers/sonarxml.jar", + }, }, - }, - csharp = { - enabled = true, - omnisharpDirectory = extension_path .. "/omnisharp", - csharpOssPath = extension_path .. "/analyzers/sonarcsharp.jar", - csharpEnterprisePath = extension_path .. "/analyzers/csharpenterprise.jar", - }, -}) + }) +end diff --git a/lua/config/keys.lua b/lua/config/keys.lua index 19045c1..8570d93 100644 --- a/lua/config/keys.lua +++ b/lua/config/keys.lua @@ -11,3 +11,19 @@ vim.keymap.set("v", "<S-Tab>", "<gv") vim.keymap.set("n", "<Tab>", "v><C-\\><C-N>") vim.keymap.set("n", "<S-Tab>", "v<<C-\\><C-N>") vim.keymap.set("i", "<S-Tab>", "<C-\\><C-N>v<<C-\\><C-N>^i") + +vim.keymap.set("n", "grd", function() + vim.lsp.buf.definition() +end) + +vim.keymap.set("n", "grl", function() + vim.diagnostic.open_float() +end) + +vim.keymap.set("n", "[d", function() + vim.diagnostic.jump({ count = -1, float = true }) +end) + +vim.keymap.set("n", "]d", function() + vim.diagnostic.jump({ count = 1, float = true }) +end) diff --git a/lua/config/lint.lua b/lua/config/lint.lua new file mode 100644 index 0000000..344e84e --- /dev/null +++ b/lua/config/lint.lua @@ -0,0 +1,11 @@ +vim.pack.add({ "https://codeberg.org/mfussenegger/nvim-lint" }) + +require("lint").linters_by_ft = { + markdown = { "vale" }, +} + +vim.api.nvim_create_autocmd({ "BufWritePost" }, { + callback = function() + require("lint").try_lint() + end, +}) diff --git a/lua/config/lsp.lua b/lua/config/lsp.lua deleted file mode 100644 index 2d2db8a..0000000 --- a/lua/config/lsp.lua +++ /dev/null @@ -1,30 +0,0 @@ -vim.pack.add({ - { src = "https://github.com/saghen/blink.cmp", version = vim.version.range("*") }, - "https://github.com/neovim/nvim-lspconfig", - "https://github.com/rafamadriz/friendly-snippets", - "https://github.com/mason-org/mason-lspconfig.nvim", - "https://github.com/mason-org/mason.nvim", -}) - -require("mason").setup() -require("mason-lspconfig").setup() - -require("blink.cmp").setup({ - signature = { enabled = true }, -}) - -vim.keymap.set("n", "grd", function() - vim.lsp.buf.definition() -end) - -vim.keymap.set("n", "grl", function() - vim.diagnostic.open_float() -end) - -vim.keymap.set("n", "[d", function() - vim.diagnostic.jump({ count = -1, float = true }) -end) - -vim.keymap.set("n", "]d", function() - vim.diagnostic.jump({ count = 1, float = true }) -end) diff --git a/lua/config/mason.lua b/lua/config/mason.lua new file mode 100644 index 0000000..b32bd47 --- /dev/null +++ b/lua/config/mason.lua @@ -0,0 +1,62 @@ +vim.pack.add({ + "https://github.com/mason-org/mason-lspconfig.nvim", + "https://github.com/mason-org/mason.nvim", + "https://github.com/WhoIsSethDaniel/mason-tool-installer.nvim", + -- "https://github.com/jay-babu/mason-nvim-dap.nvim", +}) + +require("mason").setup() +-- require("mason-nvim-dap").setup() +require("mason-lspconfig").setup() + +require("mason-tool-installer").setup({ + ensure_installed = { + "vale", + "lua_ls", + "stylua", + "bashls", + "emmet-language-server", + "ts_ls", + "astro", + "prettier", + "prettierd", + "eslint_d", + { + "jdtls", + condition = function() + return vim.fn.executable("java") == 1 + end, + }, + { + "vscode-spring-boot-tools", + condition = function() + return vim.fn.executable("java") == 1 + end, + }, + { + "lemminx", + condition = function() + return vim.fn.executable("java") == 1 + end, + }, + { + "sonarlint-language-server", + condition = function() + return vim.fn.executable("java") == 1 + end, + }, + { + "gradle_ls", + condition = function() + return vim.fn.executable("java") == 1 + end, + }, + { + -- cobol language server requires java + "cobol_ls", + condition = function() + return vim.fn.executable("java") == 1 + end, + }, + }, +}) diff --git a/lua/config/plugins.lua b/lua/config/plugins.lua index 2d62c65..784150a 100644 --- a/lua/config/plugins.lua +++ b/lua/config/plugins.lua @@ -1,4 +1,4 @@ --- plugins that require no configuration +-- plugins that require little no configuration vim.pack.add({ "https://github.com/tpope/vim-eunuch", "https://github.com/jessarcher/vim-heritage", @@ -9,9 +9,17 @@ vim.pack.add({ "https://github.com/MunifTanjim/nui.nvim", "https://github.com/nvim-neotest/nvim-nio", "https://github.com/nvim-lua/plenary.nvim", + "https://github.com/j-hui/fidget.nvim", + "https://github.com/neovim/nvim-lspconfig", + "https://github.com/rafamadriz/friendly-snippets", + { src = "https://github.com/saghen/blink.cmp", version = vim.version.range("*") }, }) require("nvim-autopairs").setup() require("nvim-surround").setup() +require("fidget").setup() +require("blink.cmp").setup({ + signature = { enabled = true }, +}) vim.cmd([[colorscheme gruvbox]]) diff --git a/nvim-pack-lock.json b/nvim-pack-lock.json index 1446760..560c393 100644 --- a/nvim-pack-lock.json +++ b/nvim-pack-lock.json @@ -17,6 +17,10 @@ "rev": "c2526f1cde528a66e086ab1668e996d162c75f4f", "src": "https://github.com/stevearc/conform.nvim" }, + "fidget.nvim": { + "rev": "7fa433a83118a70fe24c1ce88d5f0bd3453c0970", + "src": "https://github.com/j-hui/fidget.nvim" + }, "friendly-snippets": { "rev": "6cd7280adead7f586db6fccbd15d2cac7e2188b9", "src": "https://github.com/rafamadriz/friendly-snippets" @@ -29,6 +33,14 @@ "rev": "3d89e7c92fbd96c5e10e0298fc2b006f21cf9428", "src": "https://github.com/mason-org/mason-lspconfig.nvim" }, + "mason-nvim-dap.nvim": { + "rev": "9a10e096703966335bd5c46c8c875d5b0690dade", + "src": "https://github.com/jay-babu/mason-nvim-dap.nvim" + }, + "mason-tool-installer.nvim": { + "rev": "443f1ef8b5e6bf47045cb2217b6f748a223cf7dc", + "src": "https://github.com/WhoIsSethDaniel/mason-tool-installer.nvim" + }, "mason.nvim": { "rev": "44d1e90e1f66e077268191e3ee9d2ac97cc18e65", "src": "https://github.com/mason-org/mason.nvim" @@ -69,6 +81,10 @@ "rev": "d196b25eda89ae957110f2966d1753889dc197b2", "src": "https://github.com/nvim-java/nvim-java" }, + "nvim-lint": { + "rev": "486474c2ace8d78d28995074dbdbe29011bc63d0", + "src": "https://codeberg.org/mfussenegger/nvim-lint" + }, "nvim-lspconfig": { "rev": "5fef3b4a5f1057553b78d048322782c3a9ae69c6", "src": "https://github.com/neovim/nvim-lspconfig" |
