Skip to content

Commit 7c7b772

Browse files
authored
refactor!: change the project structure according to new core changes (nvim-java#27)
- core was changed in nvim-java/nvim-java-core#18 - fix: logs to use the current project logger instead of java-core logger - refactor: changes in the project structure and some file names
1 parent 2fd3979 commit 7c7b772

File tree

11 files changed

+113
-117
lines changed

11 files changed

+113
-117
lines changed

lua/java.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
local deps = require('java.dependencies')
22
local java_mason = require('java.mason')
3-
local java_dap = require('java.dap')
3+
local java_dap = require('java.dap.api')
44
local java_lspconfig = require('java.lspconfig')
55
local ts = require('java.treesitter')
66

lua/java/dap/api.lua

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
local JavaDap = require('java.dap')
2+
3+
local log = require('java.utils.log')
4+
local notify = require('java-core.utils.notify')
5+
local get_error_handler = require('java.handlers.error')
6+
local jdtls = require('java.jdtls')
7+
8+
local M = {}
9+
10+
---Setup dap config & adapter on jdtls attach event
11+
function M.setup_dap_on_lsp_attach()
12+
log.info('add LspAttach event handlers to setup dap adapter & config')
13+
14+
vim.api.nvim_create_autocmd('LspAttach', {
15+
pattern = '*',
16+
callback = M.on_jdtls_attach,
17+
once = true,
18+
group = vim.api.nvim_create_augroup('nvim-java-dap-config', {}),
19+
})
20+
end
21+
22+
---Runs the current test class
23+
function M.run_current_test_class()
24+
return JavaDap:new(jdtls()):execute_current_test_class({ noDebug = true })
25+
end
26+
27+
function M.debug_current_test_class()
28+
return JavaDap:new(jdtls()):execute_current_test_class({})
29+
end
30+
31+
---Configures the dap
32+
function M.config_dap()
33+
return JavaDap:new(jdtls())
34+
:config_dap()
35+
:catch(get_error_handler('failed to configure dap'))
36+
end
37+
38+
---@private
39+
---@param ev any
40+
function M.on_jdtls_attach(ev)
41+
local client = vim.lsp.get_client_by_id(ev.data.client_id)
42+
43+
if client.name == 'jdtls' then
44+
log.info('setup java dap config & adapter')
45+
46+
M.config_dap()
47+
end
48+
end
49+
50+
return M

lua/java/dap/dapp.lua

Lines changed: 0 additions & 72 deletions
This file was deleted.

lua/java/dap/init.lua

Lines changed: 52 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,69 @@
1-
local JavaDap = require('java.dap.dapp')
1+
local log = require('java.utils.log')
2+
local get_error_handler = require('java.handlers.error')
23

3-
local log = require('java-core.utils.log')
4-
local notify = require('java-core.utils.notify')
5-
local jdtls = require('java.jdtls')
4+
local Promise = require('java-core.utils.promise')
5+
local JavaCoreDap = require('java-core.dap')
6+
local JavaCoreTestApi = require('java-core.api.test')
67

8+
---@class JavaDap
9+
---@field private client LspClient
10+
---@field private dap JavaCoreDap
11+
---@field private test_api JavaCoreTestApi
712
local M = {}
813

9-
---Setup dap config & adapter on jdtls attach event
10-
function M.setup_dap_on_lsp_attach()
11-
log.info('add LspAttach event handlers to setup dap adapter & config')
14+
---@param args { client: LspClient }
15+
---@return JavaDap
16+
function M:new(args)
17+
local o = {
18+
client = args.client,
19+
}
1220

13-
vim.api.nvim_create_autocmd('LspAttach', {
14-
pattern = '*',
15-
callback = M.on_jdtls_attach,
16-
once = true,
17-
group = vim.api.nvim_create_augroup('nvim-java-dap-config', {}),
21+
o.test_api = JavaCoreTestApi:new({
22+
client = args.client,
1823
})
19-
end
2024

21-
---Runs the current test class
22-
function M.run_current_test_class()
23-
return JavaDap:new(jdtls()):execute_current_test_class({ noDebug = true })
24-
end
25+
o.dap = JavaCoreDap:new({
26+
client = args.client,
27+
})
2528

26-
function M.debug_current_test_class()
27-
return JavaDap:new(jdtls()):execute_current_test_class()
29+
setmetatable(o, self)
30+
self.__index = self
31+
return o
2832
end
2933

30-
---Configures the dap
31-
function M.config_dap()
32-
return JavaDap:new(jdtls())
33-
:config_dap()
34-
:thenCall(function()
35-
notify.info('DAP configured')
36-
end)
37-
:catch(function(err)
38-
notify.error('Failed to configure DAP', err)
39-
end)
34+
---Run the current test class
35+
---@param config JavaCoreDapLauncherConfigOverridable
36+
function M:execute_current_test_class(config)
37+
log.info('running the current class')
38+
39+
local buffer = vim.api.nvim_get_current_buf()
40+
41+
return self.test_api
42+
:run_class_by_buffer(buffer, config)
43+
:catch(get_error_handler('failed to run current test class'))
4044
end
4145

42-
---@private
43-
---@param ev any
44-
function M.on_jdtls_attach(ev)
45-
local client = vim.lsp.get_client_by_id(ev.data.client_id)
46+
function M:config_dap()
47+
return Promise.resolve()
48+
:thenCall(function()
49+
log.debug('set dap adapter callback function')
4650

47-
if client.name == 'jdtls' then
48-
log.info('setup java dap config & adapter')
51+
-- setting java adapter
52+
require('dap').adapters.java = function(callback)
53+
self.dap
54+
:get_dap_adapter()
55+
:thenCall(callback)
56+
:catch(get_error_handler('failed to set DAP adapter'))
57+
end
4958

50-
M.config_dap()
51-
end
59+
-- setting java config
60+
return self.dap:get_dap_config()
61+
end)
62+
:thenCall(function(dap_config)
63+
log.debug('set dap config: ', dap_config)
64+
require('dap').configurations.java = dap_config
65+
end)
66+
:catch(get_error_handler('failed to set DAP configuration'))
5267
end
5368

5469
return M

lua/java/dependencies.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
local log = require('java-core.utils.log')
1+
local log = require('java.utils.log')
22

33
local pkgs = {
44
{

lua/java/handlers/error.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
local notify = require('java-core.utils.notify')
2-
local log = require('java-core.utils.log')
2+
local log = require('java.utils.log')
33

44
local function table_tostring(tbl)
55
local str = ''

lua/java/jdtls.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
local get_error_handler = require('java.handlers.error')
22

33
---Returns an active jdtls client
4-
---@return { client: LSPClient }
4+
---@return { client: LspClient }
55
local function get_jdtls()
66
local clients = vim.lsp.get_active_clients({ name = 'jdtls' })
77

lua/java/lspconfig.lua

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
local log = require('java-core.utils.log')
1+
local log = require('java.utils.log')
22
local lspconfig = require('lspconfig')
33
local server = require('java-core.ls.servers.jdtls')
44
local jdtls = require('java.jdtls')
@@ -10,7 +10,7 @@ local M = {}
1010

1111
function M.wrap_lspconfig_setup()
1212
log.info('wrap lspconfig.java.setup function to inject a custom java config')
13-
---@type fun(config: LSPSetupConfig)
13+
---@type fun(config: LspSetupConfig)
1414
local org_setup = lspconfig.jdtls.setup
1515

1616
lspconfig.jdtls.setup = function(user_config)
@@ -26,6 +26,7 @@ function M.wrap_lspconfig_setup()
2626
'build.gradle.kts',
2727
'.git',
2828
},
29+
jdtls_plugins = { 'java-test', 'java-debug-adapter' },
2930
})
3031

3132
config = vim.tbl_deep_extend('force', user_config, config)

lua/java/mason.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
local log = require('java-core.utils.log')
1+
local log = require('java.utils.log')
22
local mason_reg = require('mason-registry')
33

44
local M = {}

lua/java/utils/log.lua

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ log.new = function(config, standalone)
137137
local fp = io.open(outfile, 'a')
138138
local str =
139139
string.format('[%-6s%s] %s: %s\n', nameupper, os.date(), lineinfo, msg)
140+
assert(fp, 'cannot open file: ' .. ' to write logs')
140141
fp:write(str)
141142
fp:close()
142143
end
@@ -162,4 +163,5 @@ log.new = function(config, standalone)
162163
end
163164

164165
log.new(default_config, true)
165-
-- }}}
166+
167+
return log

0 commit comments

Comments
 (0)