11local log = require (' java.utils.log' )
22local mason_reg = require (' mason-registry' )
3+ local mason_ui = require (' mason.ui' )
4+ local notify = require (' java-core.utils.notify' )
35
46local M = {}
57
68local dependecies = {
79 { name = ' jdtls' , version = ' v1.29.0' },
8- { name = ' java-test' , version = ' 0.40.2 ' },
10+ { name = ' java-test' , version = ' 0.40.1 ' },
911 { name = ' java-debug-adapter' , version = ' 0.52.0' },
1012}
1113
1214--- Install mason package dependencies for nvim-java
13- function M .install_dependencies ()
15+ --- @param config java.Config
16+ function M .install (config )
1417 log .info (' check mason dependecies' )
1518
19+ local is_installing = false
20+
21+ if config .jdk .auto_install then
22+ table.insert (dependecies , { name = ' openjdk-17' , version = ' 17.0.2' })
23+ end
24+
1625 for _ , dep in ipairs (dependecies ) do
1726 if not M .is_installed (dep .name , dep .version ) then
18- log .fmt_info (' installing mason pkg: %s' , dep .name )
27+ log .info (' installing mason pkg: ' .. tostring (dep .name ))
28+
29+ is_installing = true
1930
2031 local pkg = mason_reg .get_package (dep .name )
2132
@@ -25,9 +36,17 @@ function M.install_dependencies()
2536 })
2637 end
2738 end
39+
40+ if is_installing then
41+ mason_ui .open ()
42+ notify .warn (
43+ ' Please restart the editor after dependency installation is done'
44+ )
45+ end
2846end
2947
3048--- Returns true if the package and its expected version is already installed
49+ --- @private
3150--- @param pkg_name string name of the package
3251--- @param expc_version string expected version of the package
3352--- @return boolean true if the package and its version is already installed
0 commit comments