diff --git a/init.lua b/init.lua index 730b7f9..81f90fb 100644 --- a/init.lua +++ b/init.lua @@ -264,6 +264,12 @@ local function java_symbol_under_cursor() return class_name, method_name end +local last_test = nil +local function run_last_test() + if last_test then + vim.cmd("vsplit | terminal " .. last_test) + end +end local function run_selected_test() local filetype = vim.bo.filetype @@ -271,9 +277,11 @@ local function run_selected_test() local class_name, method_name = java_symbol_under_cursor() if class_name and method_name then local cmd = string.format("./gradlew clean test --tests %s.%s", class_name, method_name) + last_test = cmd vim.cmd("vsplit | terminal " .. cmd) + else + error("No class and method name found") end - error("No class and method name found") else error("Unsupported filetype: " .. filetype) end @@ -343,6 +351,7 @@ vim.keymap.set('i', '', "", {}) vim.keymap.set('n', 'gd', vim.lsp.buf.definition, {}) vim.keymap.set('n', 'gr', vim.lsp.buf.references, {}) vim.keymap.set('n', '', vim.lsp.buf.rename, {}) +vim.keymap.set('n', '', vim.lsp.buf.rename, {}) -- needed for macos vim.keymap.set('n', '', vim.lsp.buf.code_action, {}) vim.keymap.set('n', 'q', ':q', { desc = "Quit current Buffer" }) @@ -375,6 +384,8 @@ vim.keymap.set("v", "em", ":lua require'jdtls'.extract_method(true)" vim.keymap.set("n", "rta", run_all_tests, { desc = "Run all Gradle tests" }) vim.keymap.set("n", "rtc", run_selected_test, { desc = "Run Gradle tests under cursor" }) +vim.keymap.set("n", "rtl", run_last_test, { desc = "Run the last executed test" }) + vim.keymap.set({ "n", "v" }, "?", function() require("which-key").show({ global = false }) end, { desc = "Buffer Local Keymaps (which-key)" })