diff options
| author | Trey Bastian <hello@treybastian.com> | 2026-01-30 11:29:46 +0000 |
|---|---|---|
| committer | Trey Bastian <hello@treybastian.com> | 2026-01-30 11:29:46 +0000 |
| commit | 6edc72539468ed40101c56288ba6a4c10c85d382 (patch) | |
| tree | a660303d4b3006212368ad318689ff44b58896c4 /lua/config/java.lua | |
| parent | 2a6a6a6b0541ead63f3823a05d88c22c5e5b2d4b (diff) | |
added sonarqube, support for finding java and tests in telescope
Diffstat (limited to 'lua/config/java.lua')
| -rw-r--r-- | lua/config/java.lua | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/lua/config/java.lua b/lua/config/java.lua index 819a09e..c2e9de3 100644 --- a/lua/config/java.lua +++ b/lua/config/java.lua @@ -1,6 +1,94 @@ 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() + +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) + +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" + +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", + }, +}) |
