LSP attached to buffer but no Sonar warnings (4.3.1.77786)

image

Version of Sonar server I am using is 4.3.1.77786

I have configured Sonar and used absolute paths to eliminate any issues related to the $MASON environment variable. I am not using a Node.js version manager (such as nvm or fnm); Node.js v22 is installed system-wide. Despite this, no information is being displayed.

This is my sonar config:

local filetypes = { "dockerfile", "java", "python", "php", "javascript", "typescript", "vue" }

return {
  {
    "https://gitlab.com/schrieveslaach/sonarlint.nvim",
    ft = filetypes,
    config = function()
      local capabilities = require("cmp_nvim_lsp").default_capabilities()
      require("sonarlint").setup {
        server = {
          cmd = {
            "/home/hassan/.local/share/nvim/mason/packages/sonarlint-language-server/sonarlint-language-server",
            "-stdio",
            "-analyzers",
            "/home/hassan/.local/share/nvim/mason/share/sonarlint-analyzers/csharpenterprise.jar",
            "/home/hassan/.local/share/nvim/mason/share/sonarlint-analyzers/sonarcsharp.jar",
            "/home/hassan/.local/share/nvim/mason/share/sonarlint-analyzers/sonargo.jar",
            "/home/hassan/.local/share/nvim/mason/share/sonarlint-analyzers/sonarhtml.jar",
            "/home/hassan/.local/share/nvim/mason/share/sonarlint-analyzers/sonariac.jar",
            "/home/hassan/.local/share/nvim/mason/share/sonarlint-analyzers/sonarjava.jar",
            "/home/hassan/.local/share/nvim/mason/share/sonarlint-analyzers/sonarjavasymbolicexecution.jar",
            "/home/hassan/.local/share/nvim/mason/share/sonarlint-analyzers/sonarjs.jar",
            "/home/hassan/.local/share/nvim/mason/share/sonarlint-analyzers/sonarlintomnisharp.jar",
            "/home/hassan/.local/share/nvim/mason/share/sonarlint-analyzers/sonarphp.jar",
            "/home/hassan/.local/share/nvim/mason/share/sonarlint-analyzers/sonarpython.jar",
            "/home/hassan/.local/share/nvim/mason/share/sonarlint-analyzers/sonartext.jar",
            "/home/hassan/.local/share/nvim/mason/share/sonarlint-analyzers/sonarxml.jar",
          },
          capabilities = capabilities,
        },

        filetypes = filetypes,
      }
    end,
  },
}

This is my ftplugin/java.lua config:

local jdtls = require "jdtls"

local mason_path = vim.fn.stdpath "data" .. "/mason"
local jdtls_path = mason_path .. "/packages/jdtls"
local lombok_path = jdtls_path .. "/lombok.jar"

-- Spring Boot + Java extensions
local bundles = {
  vim.fn.glob(
    mason_path
      .. "/packages/java-debug-adapter/extension/server/com.microsoft.java.debug.plugin-*.jar",
    true
  ),
}

vim.list_extend(
  bundles,
  vim.split(vim.fn.glob(mason_path .. "/packages/vscode-java-test/server/*.jar", true), "\n")
)

-- Root detection (Spring Boot friendly)
local root_markers = { "mvnw", "gradlew", "pom.xml", "build.gradle", ".git" }
local root_dir = require("jdtls.setup").find_root(root_markers)

if not root_dir then
  return
end

-- Workspace per project
local workspace_dir = vim.fn.stdpath "data"
  .. "/jdtls-workspace/"
  .. vim.fn.fnamemodify(root_dir, ":p:h:t")

-- On attach function (maps actions after LSP attaches to the buffer)
local function on_attach(_, bufnr)
  local map = vim.keymap.set
  local function opts(desc)
    return { buffer = bufnr, desc = "LSP " .. desc }
  end

  -- Code actions
  map({ "n", "v" }, "<leader>ca", function()
    vim.lsp.buf.code_action()
  end, opts "Code Action")

  -- Other actions
  map("n", "<leader>rn", vim.lsp.buf.rename, opts "Rename symbol")
  map("n", "<leader>di", vim.diagnostic.open_float, opts "Open diagnostic")
  map("n", "<leader>sh", vim.lsp.buf.signature_help, opts "Show signature")
end

local config = {
  cmd = {
    jdtls_path .. "/bin/jdtls",
    "--jvm-arg=-javaagent:" .. lombok_path,
    "-data",
    workspace_dir,
  },
  root_dir = root_dir,
  settings = {
    java = {
      configuration = {
        updateBuildConfiguration = "interactive",
      },
      maven = {
        downloadSources = true,
      },
      implementationsCodeLens = { enabled = true },
      referencesCodeLens = { enabled = true },
      format = {
        enabled = true,
      },
    },
  },
  init_options = {
    bundles = bundles,
  },
  on_attach = on_attach
}

jdtls.start_or_attach(config)
Edited Dec 15, 2025 by Hassan Ait Nacer
Assignee Loading
Time tracking Loading