mirror of
https://github.com/pojokcodeid/nvim-lazy.git
synced 2025-06-28 11:40:07 +02:00
qa: testing create java project
This commit is contained in:
parent
11a88eb681
commit
b3f841d25c
7 changed files with 59 additions and 67 deletions
|
@ -22,67 +22,55 @@ local function gradle_new_project()
|
|||
|
||||
return result, false
|
||||
end
|
||||
|
||||
-- Ambil input dari pengguna untuk menentukan direktori proyek
|
||||
local project_dir, canceled = get_user_input("Enter project directory: ", vim.fn.getcwd())
|
||||
if canceled then
|
||||
-- Ambil input Testing
|
||||
local test, canceled_test = get_user_input("Testing (junit,junit-jupiter,testng,spock): ", "junit-jupiter")
|
||||
if canceled_test then
|
||||
return
|
||||
end
|
||||
|
||||
-- Ambil input dari pengguna untuk Gradle
|
||||
local project_name, canceled_name = get_user_input("Enter project name: ", "myjavaproject")
|
||||
if canceled_name then
|
||||
-- Ambil input DSL
|
||||
local script_dsl, canceled_dsl = get_user_input("Script DSL (kotlin, groovy): ", "groovy")
|
||||
if canceled_dsl then
|
||||
return
|
||||
end
|
||||
|
||||
project_dir = project_dir .. "\\" .. project_name
|
||||
|
||||
-- Buat direktori jika belum ada
|
||||
if vim.fn.isdirectory(project_dir) == 0 then
|
||||
if vim.fn.mkdir(project_dir, "p") == 0 then
|
||||
create_notif("Failed to create project directory: " .. project_dir, "error")
|
||||
return
|
||||
end
|
||||
end
|
||||
-- Pindah ke direktori proyek
|
||||
local success, err = pcall(vim.fn.chdir, project_dir)
|
||||
if not success then
|
||||
create_notif("Error changing directory: " .. err, "error")
|
||||
return
|
||||
end
|
||||
|
||||
create_notif("Changed directory to: " .. project_dir, "info")
|
||||
|
||||
-- Ambil input package name
|
||||
local package_name, canceled_package = get_user_input("Enter package name: ", "com.example." .. project_name)
|
||||
local package_name, canceled_package = get_user_input("Enter package name: ", "com.example")
|
||||
if canceled_package then
|
||||
return
|
||||
end
|
||||
|
||||
-- Format perintah Gradle berdasarkan input pengguna
|
||||
local command = string.format(
|
||||
"gradle init --type java-application --dsl groovy --project-name %s --package %s",
|
||||
project_name,
|
||||
"echo no | gradle init --type java-application --test-framework %s --dsl %s --package %s --no-daemon",
|
||||
test,
|
||||
script_dsl,
|
||||
package_name
|
||||
)
|
||||
|
||||
-- Fungsi untuk menjalankan perintah Gradle dan menampilkan outputnya
|
||||
local function run_gradle_command(cmd, dir, pkg)
|
||||
local function run_gradle_command(cmd, path, pkg)
|
||||
local output = vim.fn.system(cmd)
|
||||
if vim.v.shell_error ~= 0 then
|
||||
create_notif("Error executing: " .. output, "error")
|
||||
else
|
||||
create_notif("Project created successfully!", "info")
|
||||
local main_class_path = string.format("%s/app/src/main/java/%s/App.java", dir, pkg:gsub("%.", "/"))
|
||||
create_notif("Please Reopen Dir : " .. path, "info")
|
||||
vim.cmd(":NvimTreeFindFileToggle<CR>")
|
||||
local main_class_path = string.format("%s/app/src/main/java/%s/App.java", path, pkg:gsub("%.", "/"))
|
||||
if vim.fn.filereadable(main_class_path) == 1 then
|
||||
vim.cmd(":edit " .. main_class_path)
|
||||
end
|
||||
vim.cmd(":NvimTreeFindFileToggle<CR>")
|
||||
local function delayed_quit()
|
||||
vim.defer_fn(function()
|
||||
vim.cmd("qa!")
|
||||
end, 4000) -- Delay is set in milliseconds (3,000ms = 3 seconds)
|
||||
end
|
||||
-- Run the delayed quit function
|
||||
delayed_quit()
|
||||
end
|
||||
end
|
||||
|
||||
-- Jalankan perintah Gradle dan buka proyek
|
||||
run_gradle_command(command, project_dir, package_name)
|
||||
run_gradle_command(command, vim.fn.getcwd(), package_name)
|
||||
end
|
||||
|
||||
vim.api.nvim_create_user_command("GradleNewProject", gradle_new_project, {})
|
||||
|
|
|
@ -34,22 +34,32 @@ local function mvn_new_project()
|
|||
end
|
||||
end
|
||||
-- Pindah ke direktori proyek
|
||||
local success, err = pcall(vim.fn.chdir, project_dir)
|
||||
-- Hapus satu level dari path
|
||||
local parent_dir = vim.fn.fnamemodify(project_dir, ":h")
|
||||
local success, err = pcall(vim.fn.chdir, parent_dir)
|
||||
if not success then
|
||||
create_notif("Error changing directory: " .. err, "error")
|
||||
return
|
||||
end
|
||||
|
||||
create_notif("Changed directory to: " .. project_dir, "info")
|
||||
-- Fungsi untuk mendapatkan nama direktori terakhir dari path
|
||||
local function getLastDirName(path)
|
||||
local uname = vim.loop.os_uname().sysname
|
||||
local name
|
||||
if uname == "Windows_NT" then
|
||||
name = path:match("([^\\]+)$")
|
||||
else
|
||||
name = path:match("([^/]+)$")
|
||||
end
|
||||
return name
|
||||
end
|
||||
-- Ambil input dari pengguna untuk Maven
|
||||
local group_id, canceled_group = get_user_input("Enter groupId: ", "com.example")
|
||||
if canceled_group then
|
||||
return
|
||||
end
|
||||
local artifact_id, canceled_artifact = get_user_input("Enter artifactId: ", "myproject")
|
||||
if canceled_artifact then
|
||||
return
|
||||
end
|
||||
local artifact_id = getLastDirName(project_dir)
|
||||
local archetype_artifact_id, canceled_archetype =
|
||||
get_user_input("Enter archetypeArtifactId: ", "maven-archetype-quickstart")
|
||||
if canceled_archetype then
|
||||
|
|
|
@ -81,19 +81,10 @@ local function create_java_class()
|
|||
-- Tulis konten kelas Java ke dalam file
|
||||
local class_content = string.format(
|
||||
[[
|
||||
/*
|
||||
* This Java source file.
|
||||
*/
|
||||
package %s;
|
||||
|
||||
public class %s {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public %s() {
|
||||
|
||||
}
|
||||
// Other methods and fields
|
||||
|
||||
}
|
||||
]],
|
||||
package_name,
|
||||
|
|
|
@ -2,14 +2,14 @@ local M = {}
|
|||
|
||||
M.setup = function(opt)
|
||||
opt = opt or {}
|
||||
require("auto-jdtls.utils").install()
|
||||
require("auto-jdtls.create_gradle_project")
|
||||
require("auto-jdtls.create_maven_project")
|
||||
require("auto-jdtls.create_springboot_project")
|
||||
require("auto-jdtls.generate_java_class")
|
||||
require("auto-jdtls.generate_java_interface")
|
||||
require("auto-jdtls.generate_java_main_class")
|
||||
require("auto-jdtls.utils").attach_jdtls(opt)
|
||||
require("auto-jdtls2.create_gradle_project")
|
||||
require("auto-jdtls2.create_maven_project")
|
||||
require("auto-jdtls2.create_springboot_project")
|
||||
require("auto-jdtls2.generate_java_class")
|
||||
require("auto-jdtls2.generate_java_interface")
|
||||
require("auto-jdtls2.generate_java_main_class")
|
||||
-- require("auto-jdtls2.utils").install()
|
||||
-- require("auto-jdtls2.utils").attach_jdtls(opt)
|
||||
end
|
||||
|
||||
return M
|
||||
|
|
|
@ -17,7 +17,7 @@ return {
|
|||
return math.floor(vim.o.lines * 0.75)
|
||||
end,
|
||||
max_width = function()
|
||||
return math.floor(vim.o.columns * 0.3)
|
||||
return math.floor(vim.o.columns * 0.4)
|
||||
end,
|
||||
render = "wrapped-compact",
|
||||
-- background_colour = "#00000000",
|
||||
|
|
3
lua/pcode/user/java.lua
Normal file
3
lua/pcode/user/java.lua
Normal file
|
@ -0,0 +1,3 @@
|
|||
require("auto-jdtls2.create_gradle_project")
|
||||
require("auto-jdtls2.create_maven_project")
|
||||
require("auto-jdtls2.create_springboot_project")
|
Loading…
Add table
Add a link
Reference in a new issue