From 7c3289fded1f75f6e060f56bd06edc2a327744d9 Mon Sep 17 00:00:00 2001 From: Squibid Date: Tue, 6 May 2025 16:51:24 -0500 Subject: kitchen sink again :( --- after/ftplugin/java.lua | 136 ------------------------------------------------ 1 file changed, 136 deletions(-) delete mode 100644 after/ftplugin/java.lua (limited to 'after/ftplugin/java.lua') diff --git a/after/ftplugin/java.lua b/after/ftplugin/java.lua deleted file mode 100644 index 26e7e2e..0000000 --- a/after/ftplugin/java.lua +++ /dev/null @@ -1,136 +0,0 @@ -local misc = require('core.misc') -local lsp = require('core.lsp.functions') -local map, auto = misc.map, misc.auto - -local jdtls = require('jdtls') -local jdtls_install = require('mason-registry').get_package('jdtls'):get_install_path() - --- make sure to check if things with 💀 need updating -local config = { - cmd = { - 'java', -- 💀 - '-jar', vim.fn.glob(jdtls_install..'/plugins/org.eclipse.equinox.launcher_*.jar'), -- 💀 - '-configuration', jdtls_install..'/config_linux', - '-data', vim.fn.stdpath('cache')..'/nvim-jdtls', - - '--add-modules=ALL-SYSTEM', - '--add-opens', 'java.base/java.lang=ALL-UNNAMED', - '--add-opens', 'java.base/java.util=ALL-UNNAMED', - '-Declipse.application=org.eclipse.jdt.ls.core.id1', - '-Declipse.product=org.eclipse.jdt.ls.core.product', - '-Dlog.level=ALL', - '-Dlog.protocol=true', - '-Dosgi.bundles.defaultStartLevel=4', - '-Xmx1G', - }, - root_dir = vim.fs.dirname(vim.fs.find({ - 'gradlew', - '.git', - 'mvnw', - 'settings.gradle', -- Gradle (multi-project) - 'settings.gradle.kts', -- Gradle (multi-project) - 'build.xml', -- Ant - 'pom.xml', -- Maven - }, { upward = true })[1]), - - -- don't print out status messages - handlers = { - ['language/status'] = function() end - }, - - on_attach = function(_, bufnr) - -- add some jdtls specific mappings - local opts = { buffer = bufnr } - map('n', 'cri', jdtls.organize_imports, opts) - map('n', 'crv', jdtls.extract_variable, opts) - map('n', 'crc', jdtls.extract_constant, opts) - map('x', 'crv', function() jdtls.extract_variable(true) end, opts) - map('x', 'crc', function() jdtls.extract_constant(true) end, opts) - map('x', 'crm', function() jdtls.extract_method(true) end, opts) - - pcall(vim.lsp.codelens.refresh) - auto('BufWritePost', { - buffer = bufnr, - desc = 'refresh codelens', - callback = function() - pcall(vim.lsp.codelens.refresh) - end - }) - end, - capabilities = lsp.capabilities -} - --- generate the path to the java file(s) ----@type string|nil -local cache_path = vim.fs.joinpath(vim.fn.stdpath("cache"), "/JavaVersion.class") ----@type string|nil -local src_path = vim.fs.joinpath(vim.fn.stdpath("config"), "/extras/JavaVersion.java") - --- if either path is invalid -if not cache_path or not src_path then - return -end - ---- build a cache of the JavaVersion code -local function build_cache() - -- check if we have javac - vim.system({ "javac" }, {}, function(out) - if out.code == 127 then - cache_path = nil - return - end - - -- compile our code - vim.system({ 'javac', src_path, '-d', vim.fn.stdpath("cache") }, {}, function(out) - if out.code ~= 0 then - cache_path = nil - end - end) - end) -end - --- check if we have a compiled version of JavaVersion -local f, _ = io.open(cache_path, "r") -if not f then -- if we don't have a cache - build_cache() -else - io.close(f) -end - --- check the java version -local buffer = {} -vim.fn.jobstart({ - config.cmd[1], - (cache_path and "JavaVersion") or src_path -}, { - cwd = vim.fn.stdpath("cache"), - stdin = nil, - on_stdout = function(_, data, _) - table.insert(buffer, table.concat(data)) - end, - on_exit = function(_, exit_code, _) - local v = vim.version.parse(table.concat(buffer)) - - -- if there's an error, no version info, or the java version is - -- less than 17 stop the lsp from starting - if exit_code ~= 0 then - vim.notify(string.format( - "java version check failed: exit code %s", exit_code), - vim.log.levels.ERROR, { title = misc.appid }) - return - elseif not v then - vim.notify("no java version info found", vim.log.levels.ERROR, - { title = misc.appid }) - return - elseif v.major < 17 then - vim.notify(string.format( - "java version %s < 17.0.0 Cannot run jdtls, bailing out", - v[1].."."..v[2].."."..v[3]), - vim.log.levels.ERROR, { title = misc.appid }) - return - end - - -- start lsp - jdtls.start_or_attach(config) - end - }) -- cgit v1.2.1