Skip to content

Does not get auto suggestions for application.properties and .yaml #25

Description

@Kabil777

Issue: No auto-completion suggestions with blink.cmp and nvim-jdtls

Description:
I am using blink.cmp along with mfussenegger/nvim-jdtls (Distro nvchad). While diagnostics from the language server appear correctly, I am not receiving any auto-completion suggestions.


nvim/lua/plugins/java.lua

return {
  "mfussenegger/nvim-jdtls",
  ft = { "java", "properties", "yaml", "yml" },
  config = function()
    local function get_pkg_path(pkg_name)
      return vim.fn.stdpath("data") .. "/mason/packages/" .. pkg_name
    end

    local project_name = vim.fn.fnamemodify(vim.fn.getcwd(), ":p:h:t")
    local workspace_dir = vim.fn.stdpath("data") .. "/site/java/workspace-root/" .. project_name

    local bundles = {}

    -- Add Spring Boot extensions
    local spring_boot_extensions = require("spring_boot").java_extensions()
    vim.list_extend(bundles, spring_boot_extensions)

    local config = {
      cmd = {
        "java",
        "-Declipse.application=org.eclipse.jdt.ls.core.id1",
        "-Dosgi.bundles.defaultStartLevel=4",
        "-Declipse.product=org.eclipse.jdt.ls.core.product",
        "-Dlog.protocol=true",
        "-Dlog.level=ALL",
        "-javaagent:" .. vim.fn.expand("$MASON/packages/lombok-nightly/lombok.jar"),
        "-Xms1g",
        "--add-modules=ALL-SYSTEM",
        "--add-opens", "java.base/java.util=ALL-UNNAMED",
        "--add-opens", "java.base/java.lang=ALL-UNNAMED",
        "-jar", vim.fn.glob("$MASON/share/jdtls/plugins/org.eclipse.equinox.launcher_*.jar"),
        "-configuration", vim.fn.expand("$MASON/share/jdtls/config"),
        "-data", workspace_dir,
      },
      root_dir = vim.fs.root(0, { ".git", "mvnw", "gradlew" }),
      settings = {
        java = {
          eclipse = { downloadSources = true },
          configuration = { updateBuildConfiguration = "interactive" },
          maven = { downloadSources = true },
          implementationsCodeLens = { enabled = true },
          referencesCodeLens = { enabled = true },
          inlayHints = { parameterNames = { enabled = "all" } },
          signatureHelp = { enabled = true },
          completion = {
            favoriteStaticMembers = {
              "org.hamcrest.MatcherAssert.assertThat",
              "org.hamcrest.Matchers.*",
              "org.hamcrest.CoreMatchers.*",
              "org.junit.jupiter.api.Assertions.*",
              "java.util.Objects.requireNonNull",
              "java.util.Objects.requireNonNullElse",
              "org.mockito.Mockito.*",
            },
          },
          sources = {
            organizeImports = {
              starThreshold = 9999,
              staticStarThreshold = 9999,
            },
          },
        },
      },
      init_options = {
        bundles = bundles,
      },
      handlers = {
        ["$/progress"] = function() end, -- disable progress updates
      },
      filetypes = { "java" },
    }

    vim.api.nvim_create_autocmd("FileType", {
      pattern = { "java", "properties", "yaml", "yml" },
      callback = function()
        require("jdtls").start_or_attach(config)
      end,
    })
  end,
}

nvim/lua/plugins/springBoot.lua

return {
  "JavaHello/spring-boot.nvim",
  ft = { "java", "yaml", "properties" },
  specs = {
    {
      "mfussenegger/nvim-jdtls",
      optional = true,
      opts = function(_, opts)
        if not opts.init_options then
          opts.init_options = {}
        end
        if not opts.init_options.bundles then
          opts.init_options.bundles = {}
        end

        vim.list_extend(opts.init_options.bundles, require("spring_boot").java_extensions())
      end,
    },
  },
  opts = {},
}

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions