From 5be6b3f347b817f89277d9edfd64bdf9a5057b79 Mon Sep 17 00:00:00 2001 From: s1n7ax Date: Sun, 28 Apr 2024 11:05:30 +0530 Subject: [PATCH] fix: various compile issues due to shared common workspace between projects --- lua/java-core/ls/servers/jdtls/init.lua | 10 ++++---- lua/java-core/ls/servers/jdtls/utils.lua | 23 +++++++++++++++++++ lua/java-core/ls/servers/jdtls/workspace.lua | 24 -------------------- 3 files changed, 27 insertions(+), 30 deletions(-) create mode 100644 lua/java-core/ls/servers/jdtls/utils.lua delete mode 100644 lua/java-core/ls/servers/jdtls/workspace.lua diff --git a/lua/java-core/ls/servers/jdtls/init.lua b/lua/java-core/ls/servers/jdtls/init.lua index 3145a01..920c05b 100644 --- a/lua/java-core/ls/servers/jdtls/init.lua +++ b/lua/java-core/ls/servers/jdtls/init.lua @@ -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 = {} @@ -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 = { @@ -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 @@ -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) diff --git a/lua/java-core/ls/servers/jdtls/utils.lua b/lua/java-core/ls/servers/jdtls/utils.lua new file mode 100644 index 0000000..dabb121 --- /dev/null +++ b/lua/java-core/ls/servers/jdtls/utils.lua @@ -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 diff --git a/lua/java-core/ls/servers/jdtls/workspace.lua b/lua/java-core/ls/servers/jdtls/workspace.lua deleted file mode 100644 index de50854..0000000 --- a/lua/java-core/ls/servers/jdtls/workspace.lua +++ /dev/null @@ -1,24 +0,0 @@ -local util = require('lspconfig.util') - -local join = util.path.join - -local M = {} - -local env = { - HOME = vim.loop.os_homedir(), - XDG_CACHE_HOME = os.getenv('XDG_CACHE_HOME'), -} - ----Returns the default workspace directory ----@return string -function M.get_default_workspace() - local cache_dir = env.XDG_CACHE_HOME and env.XDG_CACHE_HOME - or join(env.HOME, '.cache') - - local path = - join(cache_dir, 'nvim', 'jdtls', 'workspaces', 'common-workspace') - - return path -end - -return M