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", "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", "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", }, })