aboutsummaryrefslogtreecommitdiff
path: root/lua/config/java.lua
diff options
context:
space:
mode:
authorTrey Bastian <hello@treybastian.com>2026-01-30 11:29:46 +0000
committerTrey Bastian <hello@treybastian.com>2026-01-30 11:29:46 +0000
commit6edc72539468ed40101c56288ba6a4c10c85d382 (patch)
treea660303d4b3006212368ad318689ff44b58896c4 /lua/config/java.lua
parent2a6a6a6b0541ead63f3823a05d88c22c5e5b2d4b (diff)
added sonarqube, support for finding java and tests in telescope
Diffstat (limited to 'lua/config/java.lua')
-rw-r--r--lua/config/java.lua88
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",
+ },
+})