aboutsummaryrefslogtreecommitdiff
path: root/lua/config/java.lua
diff options
context:
space:
mode:
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",
+ },
+})