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
2 changes: 1 addition & 1 deletion lua/java.lua
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
local deps = require('java.dependencies')
local java_mason = require('java.mason')
local java_dap = require('java.dap')
local java_dap = require('java.dap.api')
local java_lspconfig = require('java.lspconfig')
local ts = require('java.treesitter')

Expand Down
50 changes: 50 additions & 0 deletions lua/java/dap/api.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
local JavaDap = require('java.dap')

local log = require('java.utils.log')
local notify = require('java-core.utils.notify')
local get_error_handler = require('java.handlers.error')
local jdtls = require('java.jdtls')

local M = {}

---Setup dap config & adapter on jdtls attach event
function M.setup_dap_on_lsp_attach()
log.info('add LspAttach event handlers to setup dap adapter & config')

vim.api.nvim_create_autocmd('LspAttach', {
pattern = '*',
callback = M.on_jdtls_attach,
once = true,
group = vim.api.nvim_create_augroup('nvim-java-dap-config', {}),
})
end

---Runs the current test class
function M.run_current_test_class()
return JavaDap:new(jdtls()):execute_current_test_class({ noDebug = true })
end

function M.debug_current_test_class()
return JavaDap:new(jdtls()):execute_current_test_class({})
end

---Configures the dap
function M.config_dap()
return JavaDap:new(jdtls())
:config_dap()
:catch(get_error_handler('failed to configure dap'))
end

---@private
---@param ev any
function M.on_jdtls_attach(ev)
local client = vim.lsp.get_client_by_id(ev.data.client_id)

if client.name == 'jdtls' then
log.info('setup java dap config & adapter')

M.config_dap()
end
end

return M
72 changes: 0 additions & 72 deletions lua/java/dap/dapp.lua

This file was deleted.

89 changes: 52 additions & 37 deletions lua/java/dap/init.lua
Original file line number Diff line number Diff line change
@@ -1,54 +1,69 @@
local JavaDap = require('java.dap.dapp')
local log = require('java.utils.log')
local get_error_handler = require('java.handlers.error')

local log = require('java-core.utils.log')
local notify = require('java-core.utils.notify')
local jdtls = require('java.jdtls')
local Promise = require('java-core.utils.promise')
local JavaCoreDap = require('java-core.dap')
local JavaCoreTestApi = require('java-core.api.test')

---@class JavaDap
---@field private client LspClient
---@field private dap JavaCoreDap
---@field private test_api JavaCoreTestApi
local M = {}

---Setup dap config & adapter on jdtls attach event
function M.setup_dap_on_lsp_attach()
log.info('add LspAttach event handlers to setup dap adapter & config')
---@param args { client: LspClient }
---@return JavaDap
function M:new(args)
local o = {
client = args.client,
}

vim.api.nvim_create_autocmd('LspAttach', {
pattern = '*',
callback = M.on_jdtls_attach,
once = true,
group = vim.api.nvim_create_augroup('nvim-java-dap-config', {}),
o.test_api = JavaCoreTestApi:new({
client = args.client,
})
end

---Runs the current test class
function M.run_current_test_class()
return JavaDap:new(jdtls()):execute_current_test_class({ noDebug = true })
end
o.dap = JavaCoreDap:new({
client = args.client,
})

function M.debug_current_test_class()
return JavaDap:new(jdtls()):execute_current_test_class()
setmetatable(o, self)
self.__index = self
return o
end

---Configures the dap
function M.config_dap()
return JavaDap:new(jdtls())
:config_dap()
:thenCall(function()
notify.info('DAP configured')
end)
:catch(function(err)
notify.error('Failed to configure DAP', err)
end)
---Run the current test class
---@param config JavaCoreDapLauncherConfigOverridable
function M:execute_current_test_class(config)
log.info('running the current class')

local buffer = vim.api.nvim_get_current_buf()

return self.test_api
:run_class_by_buffer(buffer, config)
:catch(get_error_handler('failed to run current test class'))
end

---@private
---@param ev any
function M.on_jdtls_attach(ev)
local client = vim.lsp.get_client_by_id(ev.data.client_id)
function M:config_dap()
return Promise.resolve()
:thenCall(function()
log.debug('set dap adapter callback function')

if client.name == 'jdtls' then
log.info('setup java dap config & adapter')
-- setting java adapter
require('dap').adapters.java = function(callback)
self.dap
:get_dap_adapter()
:thenCall(callback)
:catch(get_error_handler('failed to set DAP adapter'))
end

M.config_dap()
end
-- setting java config
return self.dap:get_dap_config()
end)
:thenCall(function(dap_config)
log.debug('set dap config: ', dap_config)
require('dap').configurations.java = dap_config
end)
:catch(get_error_handler('failed to set DAP configuration'))
end

return M
2 changes: 1 addition & 1 deletion lua/java/dependencies.lua
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
local log = require('java-core.utils.log')
local log = require('java.utils.log')

local pkgs = {
{
Expand Down
2 changes: 1 addition & 1 deletion lua/java/handlers/error.lua
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
local notify = require('java-core.utils.notify')
local log = require('java-core.utils.log')
local log = require('java.utils.log')

local function table_tostring(tbl)
local str = ''
Expand Down
2 changes: 1 addition & 1 deletion lua/java/jdtls.lua
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
local get_error_handler = require('java.handlers.error')

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

Expand Down
5 changes: 3 additions & 2 deletions lua/java/lspconfig.lua
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
local log = require('java-core.utils.log')
local log = require('java.utils.log')
local lspconfig = require('lspconfig')
local server = require('java-core.ls.servers.jdtls')
local jdtls = require('java.jdtls')
Expand All @@ -10,7 +10,7 @@ local M = {}

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

lspconfig.jdtls.setup = function(user_config)
Expand All @@ -26,6 +26,7 @@ function M.wrap_lspconfig_setup()
'build.gradle.kts',
'.git',
},
jdtls_plugins = { 'java-test', 'java-debug-adapter' },
})

config = vim.tbl_deep_extend('force', user_config, config)
Expand Down
2 changes: 1 addition & 1 deletion lua/java/mason.lua
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
local log = require('java-core.utils.log')
local log = require('java.utils.log')
local mason_reg = require('mason-registry')

local M = {}
Expand Down
4 changes: 3 additions & 1 deletion lua/java/utils/log.lua
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,7 @@ log.new = function(config, standalone)
local fp = io.open(outfile, 'a')
local str =
string.format('[%-6s%s] %s: %s\n', nameupper, os.date(), lineinfo, msg)
assert(fp, 'cannot open file: ' .. ' to write logs')
fp:write(str)
fp:close()
end
Expand All @@ -162,4 +163,5 @@ log.new = function(config, standalone)
end

log.new(default_config, true)
-- }}}

return log
File renamed without changes.