Skip to content
This repository was archived by the owner on Nov 30, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 4 additions & 6 deletions lua/java-core/ls/servers/jdtls/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ local mason_reg = require('mason-registry')
local path = require('java-core.utils.path')
local plugins = require('java-core.ls.servers.jdtls.plugins')
local util = require('lspconfig.util')
local workspace = require('java-core.ls.servers.jdtls.workspace')
local utils = require('java-core.ls.servers.jdtls.utils')

local M = {}

Expand Down Expand Up @@ -33,8 +33,6 @@ function M.get_config(opts)
local equinox_launcher =
path.join(jdtls_root, 'plugins', 'org.eclipse.equinox.launcher.jar')
local plugin_paths = plugins.get_plugin_paths(opts.jdtls_plugins)
local jdtls_cache_path = path.join(vim.fn.stdpath('cache'), 'jdtls')

local base_config = config.get_config()

base_config.cmd = {
Expand All @@ -61,10 +59,10 @@ function M.get_config(opts)
equinox_launcher,

'-configuration',
jdtls_cache_path,
utils.get_jdtls_config_path(),

'-data',
workspace.get_default_workspace(),
utils.get_workspace_path(),
}

if opts.use_mason_jdk then
Expand All @@ -84,7 +82,7 @@ function M.get_config(opts)

base_config.root_dir = M.get_root_finder(opts.root_markers)
base_config.init_options.bundles = plugin_paths
base_config.init_options.workspace = workspace.get_default_workspace()
base_config.init_options.workspace = utils.get_workspace_path()

log.debug('generated jdtls setup config: ', base_config)

Expand Down
23 changes: 23 additions & 0 deletions lua/java-core/ls/servers/jdtls/utils.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
local util = require('lspconfig.util')

local join = util.path.join

local M = {}

---Returns the workspace directory path based on the current dir
---@return string
function M.get_workspace_path()
local project_path =
string.gsub(vim.fn.fnamemodify(vim.fn.getcwd(), ':p:h'), '/', '_')

local nvim_cache_path = vim.fn.stdpath('cache')
return join(nvim_cache_path, 'jdtls', 'workspaces', project_path)
end

---Returns the jdtls config cache directory
---@return string
function M.get_jdtls_config_path()
return join(vim.fn.stdpath('cache'), 'jdtls', 'config')
end

return M
24 changes: 0 additions & 24 deletions lua/java-core/ls/servers/jdtls/workspace.lua

This file was deleted.