Skip to content

Commit

Permalink
chore: improve java usage and add gradle command w/ tasks
Browse files Browse the repository at this point in the history
  • Loading branch information
kevinm6 committed Nov 7, 2024
1 parent c754d92 commit 0638e20
Show file tree
Hide file tree
Showing 6 changed files with 143 additions and 40 deletions.
82 changes: 78 additions & 4 deletions after/ftplugin/java.lua
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,9 @@ extendedClientCapabilities.resolveAdditionalTextEditsSupport = true
extendedClientCapabilities.document_formatting = false

local root_dir = vim.fs.root(0, { ".git", "mvnw", "gradlew", "pom.xml" }) or vim.uv.cwd()
local workspace_dir = string.format("%s/java/workspace/%s", vim.fn.stdpath "cache", vim.fn.fnamemodify(root_dir, ":t"))
local cache_dir = vim.fn.stdpath "cache"
local project_name = vim.fn.fnamemodify(root_dir, ":t")
local workspace_dir = string.format("%s/java/wksp/%s", cache_dir, project_name)

local launcher_path = vim.fn.glob(data_path .. "/mason/packages/jdtls/plugins/org.eclipse.equinox.launcher_*.jar", true)
local bundles = vim.fn.glob(
Expand All @@ -29,6 +31,9 @@ local bundles = vim.fn.glob(
true
)

-- Example usage: Run the function with the desired task
-- RunGradleTask('test')

local lombok_path = data_path .. "/mason/packages/jdtls/lombok.jar"

local function get_config_dir()
Expand Down Expand Up @@ -116,8 +121,8 @@ local config = {
path = "/Library/Java/JavaVirtualMachines/openjdk-17.jdk/Contents/Home",
},
{
name = "JavaSE-20",
path = "/Library/Java/JavaVirtualMachines/openjdk.jdk/Contents/Home",
name = "JavaSE-21",
path = "/Library/Java/JavaVirtualMachines/openjdk-21.jdk/Contents/Home",
},
},
},
Expand Down Expand Up @@ -282,4 +287,73 @@ vim.api.nvim_create_autocmd({ "BufWritePost" }, {
callback = function()
vim.lsp.codelens.refresh()
end,
})
})

if vim.fn.filereadable(root_dir .. "/gradlew") then
local gradlew = root_dir .. "/gradlew"

local function get_gradle_tasks()
if vim.g["gradle_" .. root_dir] ~= nil then
return vim.g["gradle_" .. root_dir]
end

local taskList = {}
local out = vim.system({ gradlew, "tasks", "--all" }, { text = true }):wait()
if out.code == 0 then
for line in out.stdout:gmatch "[^\r\n]+" do
if line:find " - " then
local taskName = line:match "^(.-)%s+-" --line:match("^(.-) -")
if taskName then
table.insert(taskList, taskName)
end
end
end
vim.g["gradle_" .. root_dir] = taskList
else
vim.notify("Error executing command: " .. out.stderr, vim.log.levels.ERROR, { text = "Gradle (tasks)" })
end
return taskList
end

local function select_gradle_task(tasks, callback)
vim.ui.select(tasks, {
prompt = "⟩ Gradle task: ",
}, function(choice)
if not choice then
return
end
callback(choice)
end)
end

local function run_gradle_task(task)
local msg = string.format(" running: < gradlew %s >", task)
vim.notify(msg, vim.log.levels.INFO, { title = "Gradle" })
vim.system({ gradlew, task }, { text = true }, function(obj)
if obj.code ~= 0 then
vim.notify(obj.stderr, vim.log.levels.WARN)
else
vim.print(obj.stdout)
vim.schedule(function()
vim.fn.setqflist({}, "r", { title = "Gradle Output", lines = vim.split(obj.stdout, "\n") })
vim.cmd.copen()
end)
end
end)
end

vim.api.nvim_create_user_command("Gradle", function(input)
local task = nil
if input.args ~= "" then
run_gradle_task(task)
else
local tasks = get_gradle_tasks()
select_gradle_task(tasks, function(selected_task)
run_gradle_task(selected_task)
end)
end
end, {
nargs = "?",
complete = get_gradle_tasks,
})
end
53 changes: 27 additions & 26 deletions lazy-lock.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"SchemaStore.nvim": { "branch": "main", "commit": "dd374887d6e1de38e9d7041da824a8dc10cae401" },
"SchemaStore.nvim": { "branch": "main", "commit": "22ce6adf3c866a8c3d0c55956c4b8feeb4f10c32" },
"alpha-nvim": { "branch": "main", "commit": "bf3c8bb8c02ed3d9644cc5bbc48e2bdc39349cd7" },
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
"cmp-calc": { "branch": "main", "commit": "5947b412da67306c5b68698a02a846760059be2e" },
Expand All @@ -10,51 +10,52 @@
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
"cmp-vimtex": { "branch": "master", "commit": "5283bf9108ef33d41e704027b9ef22437ce7a15b" },
"color-picker.nvim": { "branch": "master", "commit": "06cb5f853535dea529a523e9a0e8884cdf9eba4d" },
"conform.nvim": { "branch": "master", "commit": "40d4e98fcc3e6f485f0e8924c63734bc7e305967" },
"conform.nvim": { "branch": "master", "commit": "d28ccf945374edd9f1c34a82f6c22261dbd8ab98" },
"data-viewer.nvim": { "branch": "main", "commit": "40ddf37bb7ab6c04ff9e820812d1539afe691668" },
"gitsigns.nvim": { "branch": "main", "commit": "863903631e676b33e8be2acb17512fdc1b80b4fb" },
"go.nvim": { "branch": "master", "commit": "5b4f1ab2689c903ab801f2cf195bebbc95f0d156" },
"hererocks": { "branch": "master", "commit": "8bd2fcfdd65cfa7535ce39ea372a63b0bdb8e528" },
"gitsigns.nvim": { "branch": "main", "commit": "4daf7022f1481edf1e8fb9947df13bb07c18e89a" },
"go.nvim": { "branch": "master", "commit": "2153f9ee6178dfd625b1a874eab6399fd0a2d984" },
"hererocks": { "branch": "master", "commit": "c9c5444dea1e07e005484014a8231aa667be30b6" },
"image.nvim": { "branch": "master", "commit": "9c9dbed0cdb4dbd199ebfc678a881f5745a36f50" },
"jupytext.nvim": { "branch": "main", "commit": "c8baf3ad344c59b3abd461ecc17fc16ec44d0f7b" },
"lazy.nvim": { "branch": "main", "commit": "1159bdccd8910a0fd0914b24d6c3d186689023d9" },
"lazydev.nvim": { "branch": "main", "commit": "491452cf1ca6f029e90ad0d0368848fac717c6d2" },
"markdown.nvim": { "branch": "main", "commit": "fe1002fddc61207e4ef4325d4bc0ca33697bbc7a" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "25c11854aa25558ee6c03432edfa0df0217324be" },
"lazy.nvim": { "branch": "main", "commit": "b1134ab82ee4279e31f7ddf7e34b2a99eb9b7bc9" },
"lazydev.nvim": { "branch": "main", "commit": "d5800897d9180cea800023f2429bce0a94ed6064" },
"markdown.nvim": { "branch": "main", "commit": "901838c63d644e27ed4b591fa5c5d587cad9e102" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "4d0e5b49363cac187326998b96aa6a2884e0e89b" },
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
"mini.ai": { "branch": "main", "commit": "9b9b7cfa38b4871c3e44cfe89cf6d53fd40684d9" },
"mini.icons": { "branch": "main", "commit": "a2742459f0ee32806c2438ca06b4d8b331f3f4d4" },
"mini.pairs": { "branch": "main", "commit": "919a89ed3c9f4142215a44c9fffca72fa8c8e792" },
"mini.surround": { "branch": "main", "commit": "e1ac1ce5c7499aa4cc2ca9fb1adec9e730dd9394" },
"molten-nvim": { "branch": "main", "commit": "eafa6aa0335a239ee333e6ca45076888b9b011ae" },
"noice.nvim": { "branch": "main", "commit": "df448c649ef6bc5a6a633a44f2ad0ed8d4442499" },
"mini.pairs": { "branch": "main", "commit": "7e834c5937d95364cc1740e20d673afe2d034cdb" },
"mini.surround": { "branch": "main", "commit": "48a9795c9d352c771e1ab5dedab6063c0a2df037" },
"molten-nvim": { "branch": "main", "commit": "66ee5c0a0fbe3e014b867d04db44592f2d3eb30f" },
"noice.nvim": { "branch": "main", "commit": "d80136061820765baf70ace7dfb98a52575edc4a" },
"nui.nvim": { "branch": "main", "commit": "b58e2bfda5cea347c9d58b7f11cf3012c7b3953f" },
"nvim-cmp": { "branch": "main", "commit": "ae644feb7b67bf1ce4260c231d1d4300b19c6f30" },
"nvim-cmp": { "branch": "main", "commit": "f17d9b4394027ff4442b298398dfcaab97e40c4f" },
"nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" },
"nvim-dap": { "branch": "master", "commit": "7ff6936010b7222fea2caea0f67ed77f1b7c60dd" },
"nvim-dap": { "branch": "master", "commit": "8517126e9323e346f6a99b3b594c5a940b914dcd" },
"nvim-dap-ui": { "branch": "master", "commit": "ffa89839f97bad360e78428d5c740fdad9a0ff02" },
"nvim-dbee": { "branch": "master", "commit": "21d2cc0844a16262bb6ea93ab3d0a0f20bd87853" },
"nvim-jdtls": { "branch": "master", "commit": "efe813854432a314b472226dca813f0f2598d44a" },
"nvim-lint": { "branch": "master", "commit": "27f44d1cc3d733a38a736acb902f94879d99c76c" },
"nvim-lspconfig": { "branch": "master", "commit": "04680101ff79e99b4e33a4386ec27cbd0d360c75" },
"nvim-jdtls": { "branch": "master", "commit": "75043270b6f3c7d6aa2fc9de5885bc65d371054d" },
"nvim-lint": { "branch": "master", "commit": "36da8dd0ddc4f88e0beae234c20e75397326f143" },
"nvim-lspconfig": { "branch": "master", "commit": "52302604e3c667cfdf33aadf89088e96eb3c5da3" },
"nvim-nio": { "branch": "master", "commit": "a428f309119086dc78dd4b19306d2d67be884eee" },
"nvim-notify": { "branch": "master", "commit": "fbef5d32be8466dd76544a257d3f3dce20082a07" },
"nvim-snippets": { "branch": "main", "commit": "56b4052f71220144689caaa2e5b66222ba5661eb" },
"nvim-treesitter": { "branch": "master", "commit": "45e0d66246f31306d890b91301993fa1623e79f1" },
"nvim-treesitter-context": { "branch": "master", "commit": "78a81c7494e7d1a08dd1200b556933e513fd9f29" },
"nvim-treesitter": { "branch": "master", "commit": "7dc8aabe86db8c2f23520e8334f7584f83e84342" },
"nvim-treesitter-context": { "branch": "master", "commit": "a2a334900d3643de585ac5c6140b03403454124f" },
"nvim-treesitter-refactor": { "branch": "master", "commit": "d8b74fa87afc6a1e97b18da23e762efb032dc270" },
"nvim-ufo": { "branch": "main", "commit": "203c9f434feec57909ab4b1e028abeb3349b7847" },
"nvim-ufo": { "branch": "main", "commit": "522d719d421fc42b95577d9624048d8348d326ea" },
"obsidian.nvim": { "branch": "main", "commit": "ae1f76a75c7ce36866e1d9342a8f6f5b9c2caf9b" },
"oil.nvim": { "branch": "master", "commit": "ccab9d5e09e2d0042fbbe5b6bd05e82426247067" },
"oil.nvim": { "branch": "master", "commit": "52cc8a1fb35ea6ce1df536143add7ce7215c63c0" },
"otter.nvim": { "branch": "main", "commit": "ca9ce67d0399380b659923381b58d174344c9ee7" },
"plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" },
"promise-async": { "branch": "main", "commit": "119e8961014c9bfaf1487bf3c2a393d254f337e2" },
"quarto-nvim": { "branch": "main", "commit": "eed598983fa4040eed77191f69462c1348770b8a" },
"quarto-nvim": { "branch": "main", "commit": "23083a0152799ca7263ac9ae53d768d4dd93d24e" },
"rainbow-delimiters.nvim": { "branch": "master", "commit": "b29da4a6061a88270e875b38367d82c04c856128" },
"sqls.nvim": { "branch": "main", "commit": "4b1274b5b44c48ce784aac23747192f5d9d26207" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "cf48d4dfce44e0b9a2e19a008d6ec6ea6f01a83b" },
"telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" },
"telescope.nvim": { "branch": "master", "commit": "dc6fc321a5ba076697cca89c9d7ea43153276d81" },
"toggleterm.nvim": { "branch": "main", "commit": "137d06fb103952a0fb567882bb8527e2f92d327d" },
"vimtex": { "branch": "master", "commit": "fcbaf66887bd19f5d973406848cf2a5ac46bd65e" },
"telescope.nvim": { "branch": "master", "commit": "85922dde3767e01d42a08e750a773effbffaea3e" },
"toggleterm.nvim": { "branch": "main", "commit": "5969229c0352ff1ed7f6e24aba9c6554e1842939" },
"vimtex": { "branch": "master", "commit": "ded1d899afa51f42b71bed607680e21338d18c74" },
"which-key.nvim": { "branch": "main", "commit": "8badb359f7ab8711e2575ef75dfe6fbbd87e4821" }
}
6 changes: 3 additions & 3 deletions lua/lib/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -189,14 +189,14 @@ function M.new_tmp_file(cmd_input)
local f_string = input ~= "" and "%s_f.%s" or "%s_f"

temp_file = string.format(f_string, vim.fn.tempname(), input)
vim.cmd.tcd(vim.fn.fnamemodify(vim.fn.tempname(), ":p:h"))
-- vim.cmd.tcd(vim.fn.fnamemodify(vim.fn.tempname(), ":p:h"))
vim.cmd.edit(temp_file)
vim.cmd.write(temp_file)
vim.cmd.startinsert()
end)
else
local temp_file = string.format("%s_f.%s", vim.fn.tempname(), args)
vim.cmd.tcd(vim.fn.fnamemodify(temp_file, "%:p:h"))
-- vim.cmd.tcd(vim.fn.fnamemodify(temp_file, "%:p:h"))
vim.cmd.edit(temp_file)
vim.cmd.write(temp_file)
vim.cmd.startinsert()
Expand Down Expand Up @@ -351,4 +351,4 @@ function M.user_command_toggle(name, var_name, opts)
})
end

return M
return M
4 changes: 2 additions & 2 deletions lua/plugins/editor/oil.lua
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ return {
["gw"] = "actions.open_cwd",
["<leader>."] = "actions.cd",
["gt"] = "actions.toggle_trash",
["~"] = "actions.tcd",
["<leader>t"] = "actions.tcd",
["gs"] = "actions.change_sort",
["yp"] = "actions.copy_entry_path",
["g:"] = "actions.open_cmdline",
Expand Down Expand Up @@ -168,4 +168,4 @@ return {
})
end
end,
}
}
7 changes: 4 additions & 3 deletions lua/plugins/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -50,12 +50,13 @@ local M = {

---Image in NeoVim
{
"kevinm6/image.nvim",
"3rd/image.nvim",
-- pin = true, -- DON'T update for now -> https://github.com/3rd/image.nvim/issues/191
dev = true,
-- dev = true,
ft = { "markdown", "vimwiki", "png", "jpeg", "jpg", "image_nvim" },
opts = function(_, o)
o.backend = "kitty"
o.processor = "magick_cli"
o.window_overlap_clear_enabled = true -- toggles images when windows are overlapped
-- o.editor_only_render_when_focused = true -- auto show/hide images when the editor gains/looses focus
o.window_overlap_clear_ft_ignore = {}
Expand Down Expand Up @@ -405,4 +406,4 @@ local M = {
},
}

return M
return M
31 changes: 29 additions & 2 deletions lua/plugins/lsp/dap.lua
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ return {

dap.defaults.fallback.external_terminal = {
command = "/usr/bin/env kitty",
args = { "-e " },
args = { "--hold", "-e" },
}

-- Filetype configs
Expand Down Expand Up @@ -351,6 +351,33 @@ return {
},
}

-- Gradle
-- dap.adapters.gradle = {
-- name = "gradle",
-- type = "executable",
-- command = vim.fn.exepath "gradle",
-- -- cwd = "${workspaceFolder}",
-- }

-- dap.configurations.java = {
-- {
-- name = "Gradle tasks",
-- request = "launch",
-- type = "gradle",
-- program = "${workspaceFolder}/gradlew",
-- cwd = "${workspaceFolder}",
-- args = { "${input:gradleCmd}" },
-- },
-- -- inputs = {
-- -- {
-- -- id = "gradleCmd",
-- -- type = "promptString",
-- -- description = "Program to run: ",
-- -- default = "test",
-- -- },
-- -- },
-- }

local icons = require "mini.icons"

vim.fn.sign_define("DapBreakpoint", {
Expand Down Expand Up @@ -454,4 +481,4 @@ return {
})
end,
},
}
}

0 comments on commit 0638e20

Please sign in to comment.