fix: user config is not applied due to default config import in some modules by s1n7ax · Pull Request #443 · nvim-java/nvim-java · GitHub
Skip to content
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
48 changes: 25 additions & 23 deletions lua/java-core/ls/servers/jdtls/cmd.lua
12 changes: 4 additions & 8 deletions lua/java-core/ls/servers/jdtls/env.lua
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,12 @@ local Manager = require('pkgm.manager')
local log = require('java-core.utils.log2')
local system = require('java-core.utils.system')

--- @TODO: importing stuff from java main package feels wrong.
--- We should fix this in the future
local config = require('java.config')

local M = {}

--- @param opts { use_jdk: boolean }
function M.get_env(opts)
if not opts.use_jdk then
log.debug('use_jdk disabled, returning empty env')
--- @param config java.Config
function M.get_env(config)
if not config.jdk.auto_install then
log.debug('config.jdk.auto_install disabled, returning empty env')
return {}
end

Expand Down
8 changes: 4 additions & 4 deletions lua/java-core/ls/servers/jdtls/init.lua
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
local M = {}

--- Returns jdtls config
---@param opts { use_jdk: boolean, use_lombok: boolean, plugins: string[] }
---@param opts { plugins: string[], config: java.Config }
function M.get_config(opts)
local conf = require('java-core.ls.servers.jdtls.conf')
local plugins = require('java-core.ls.servers.jdtls.plugins')
Expand All @@ -15,9 +15,9 @@ function M.get_config(opts)

local base_conf = vim.deepcopy(conf, true)

base_conf.cmd = cmd.get_cmd(opts)
base_conf.cmd_env = env.get_env(opts)
base_conf.init_options.bundles = plugins.get_plugins(opts)
base_conf.cmd = cmd.get_cmd(opts.config)
base_conf.cmd_env = env.get_env(opts.config)
base_conf.init_options.bundles = plugins.get_plugins(opts.config, opts.plugins)
base_conf.root_markers = root.get_root_markers()
base_conf.filetypes = filetype.get_filetypes()

Expand Down
25 changes: 13 additions & 12 deletions lua/java-core/ls/servers/jdtls/plugins.lua
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,6 @@ local List = require('java-core.utils.list')
local Manager = require('pkgm.manager')
local log = require('java-core.utils.log2')

--- @TODO: importing stuff from java main package feels wrong.
--- We should fix this in the future
local config = require('java.config')

local M = {}

local plug_jar_map = {
Expand Down Expand Up @@ -35,17 +31,22 @@ local plug_jar_map = {
['spring-boot-tools'] = { 'extension/jars/*.jar' },
}

local plugin_version_map = {
['java-test'] = config.java_test.version,
['java-debug'] = config.java_debug_adapter.version,
['spring-boot-tools'] = config.spring_boot_tools.version,
}
function M.get_plugin_version_map(config)
return {
['java-test'] = config.java_test.version,
['java-debug'] = config.java_debug_adapter.version,
['spring-boot-tools'] = config.spring_boot_tools.version,
}
end

---Returns a list of .jar file paths for given list of jdtls plugins
---@param opts { plugins: string[] }
---@param config java.Config
---@param plugins string[]
---@return string[] # list of .jar file paths
function M.get_plugins(opts)
return List:new(opts.plugins)
function M.get_plugins(config, plugins)
local plugin_version_map = M.get_plugin_version_map(config)

return List:new(plugins)
:map(function(plugin_name)
local version = plugin_version_map[plugin_name]
local root = Manager:get_install_dir(plugin_name, version)
Expand Down
3 changes: 1 addition & 2 deletions lua/java/startup/lsp_setup.lua
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,8 @@ function M.setup(config)
end

local default_config = server.get_config({
config = config,
plugins = jdtls_plugins,
use_jdk = config.jdk.auto_install,
use_lombok = config.lombok.enable,
})

vim.lsp.config('jdtls', default_config)
Expand Down
2 changes: 0 additions & 2 deletions lua/java/ui/profile.lua