Skip to content

Commit cdd78a4

Browse files
rcasiaasmodeus812
authored andcommitted
refactor: moved compilation function to another module
1 parent 78b9cae commit cdd78a4

File tree

3 files changed

+29
-47
lines changed

3 files changed

+29
-47
lines changed
Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,5 @@
1-
local jdtls_compiler = require("neotest-java.core.spec_builder.compiler.jdtls")
2-
3-
---@class NeotestJavaCompiler.Opts
4-
---@field cwd string
5-
---@field classpath_file_dir string
6-
---@field compile_mode string
7-
8-
--- Interface for Java compilers
9-
---@class NeotestJavaCompiler
10-
local NeotestJavaCompiler = {}
11-
12-
---@param opts NeotestJavaCompiler.Opts
13-
---@return string classpath_file_arg
14-
function NeotestJavaCompiler.compile(opts) end
15-
16-
---@type table<string, NeotestJavaCompiler>
171
local compilers = {
18-
jdtls = jdtls_compiler,
2+
jdtls = require("neotest-java.core.spec_builder.compiler.jdtls"),
193
}
204

215
return compilers

lua/neotest-java/core/spec_builder/compiler/jdtls.lua

Lines changed: 27 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -3,31 +3,35 @@ local nio = require("nio")
33
local _jdtls = require("neotest-java.command.jdtls")
44
local scan = require("plenary.scandir")
55

6-
---@type NeotestJavaCompiler
7-
local jdtls_compiler = {
8-
compile = function(args)
9-
-- check that required dependencies are present
10-
local ok_jdtls, jdtls = pcall(require, "jdtls")
11-
assert(ok_jdtls, "neotest-java requires nvim-jdtls to tests")
6+
---@class NeotestJava.compilerOpts
7+
---@field cwd string
8+
---@field classpath_file_dir string
9+
---@field compile_mode string
1210

13-
-- check there is an active java client
14-
local has_jdtls_client = #nio.lsp.get_clients({ name = "jdtls" }) ~= 0
15-
assert(has_jdtls_client, "there is no jdtls client attached.")
11+
---@param args NeotestJava.compilerOpts
12+
---@return string classpath_file_arg
13+
local function compile(args)
14+
-- check that required dependencies are present
15+
local ok_jdtls, jdtls = pcall(require, "jdtls")
16+
assert(ok_jdtls, "neotest-java requires nvim-jdtls to tests")
1617

17-
logger.debug(("compilation in %s mode"):format(args.compile_mode))
18-
nio.run(function(_)
19-
nio.scheduler()
20-
jdtls.compile(args.compile_mode)
21-
end):wait()
22-
logger.debug("compilation complete!")
18+
-- check there is an active java client
19+
local has_jdtls_client = #nio.lsp.get_clients({ name = "jdtls" }) ~= 0
20+
assert(has_jdtls_client, "there is no jdtls client attached.")
2321

24-
local resources = scan.scan_dir(args.cwd, {
25-
only_dirs = true,
26-
search_pattern = "test/resources$",
27-
})
22+
logger.debug(("compilation in %s mode"):format(args.compile_mode))
23+
nio.run(function(_)
24+
nio.scheduler()
25+
jdtls.compile(args.compile_mode)
26+
end):wait()
27+
logger.debug("compilation complete!")
2828

29-
return _jdtls.get_classpath_file_argument(args.classpath_file_dir, resources)
30-
end,
31-
}
29+
local resources = scan.scan_dir(args.cwd, {
30+
only_dirs = true,
31+
search_pattern = "test/resources$",
32+
})
3233

33-
return jdtls_compiler
34+
return _jdtls.get_classpath_file_argument(args.classpath_file_dir, resources)
35+
end
36+
37+
return compile

lua/neotest-java/core/spec_builder/init.lua

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ local compatible_path = require("neotest-java.util.compatible_path")
1616
local Project = require("neotest-java.types.project")
1717
local ch = require("neotest-java.context_holder")
1818
local find_module_by_filepath = require("neotest-java.util.find_module_by_filepath")
19-
local _jdtls = require("neotest-java.command.jdtls")
19+
local compiler = require("neotest-java.core.spec_builder.compiler")
2020

2121
local SpecBuilder = {}
2222

@@ -25,12 +25,6 @@ local SpecBuilder = {}
2525
---@param config neotest-java.ConfigOpts
2626
---@return nil | neotest.RunSpec | neotest.RunSpec[]
2727
function SpecBuilder.build_spec(args, project_type, config)
28-
local scan = require("plenary.scandir")
29-
30-
-- check that required dependencies are present
31-
local ok_jdtls, jdtls = pcall(require, "jdtls")
32-
assert(ok_jdtls, "neotest-java requires nvim-jdtls to tests")
33-
3428
if args.strategy == "dap" then
3529
local ok_dap, _ = pcall(require, "dap")
3630
assert(ok_dap, "neotest-java requires nvim-dap to run debug tests")

0 commit comments

Comments
 (0)