mirror of
https://github.com/pojokcodeid/nvim-lazy.git
synced 2025-06-21 08:35:48 +02:00
enc: add gradle create new project
This commit is contained in:
parent
16264d0b0d
commit
c66913e4c2
3 changed files with 91 additions and 2 deletions
|
@ -6,7 +6,7 @@
|
||||||
"alpha-nvim": { "branch": "main", "commit": "de72250e054e5e691b9736ee30db72c65d560771" },
|
"alpha-nvim": { "branch": "main", "commit": "de72250e054e5e691b9736ee30db72c65d560771" },
|
||||||
"auto-bufferline.nvim": { "branch": "main", "commit": "f5835a4b62bfb6f6c829f8f050e5102ccf230b3e" },
|
"auto-bufferline.nvim": { "branch": "main", "commit": "f5835a4b62bfb6f6c829f8f050e5102ccf230b3e" },
|
||||||
"auto-conform.nvim": { "branch": "main", "commit": "5f0897235e84bf2f8ff9d634e81678d5bfa63ab8" },
|
"auto-conform.nvim": { "branch": "main", "commit": "5f0897235e84bf2f8ff9d634e81678d5bfa63ab8" },
|
||||||
"auto-java-project.nvim": { "branch": "main", "commit": "940531b6eeea682fa734f8dc160d7870dde38df2" },
|
"auto-java-project.nvim": { "branch": "main", "commit": "b685ad4fbda1a28cb61dd941d54fb0dd3c22d8f4" },
|
||||||
"auto-jdtls.nvim": { "branch": "main", "commit": "050da8d68c51a6e02a08d91329b7a848887927e7" },
|
"auto-jdtls.nvim": { "branch": "main", "commit": "050da8d68c51a6e02a08d91329b7a848887927e7" },
|
||||||
"auto-lint.nvim": { "branch": "main", "commit": "aff13cb8eaa055e66e940d43b7d83166397e5413" },
|
"auto-lint.nvim": { "branch": "main", "commit": "aff13cb8eaa055e66e940d43b7d83166397e5413" },
|
||||||
"auto-lsp.nvim": { "branch": "main", "commit": "1f3ef04741972c107187a07be5615ff210888184" },
|
"auto-lsp.nvim": { "branch": "main", "commit": "1f3ef04741972c107187a07be5615ff210888184" },
|
||||||
|
@ -38,7 +38,7 @@
|
||||||
"minty": { "branch": "main", "commit": "a3d69bd63fc98f640815f94b797bf978e9193022" },
|
"minty": { "branch": "main", "commit": "a3d69bd63fc98f640815f94b797bf978e9193022" },
|
||||||
"neotest": { "branch": "master", "commit": "6d3d22cdad49999ef774ebe1bc250a4994038964" },
|
"neotest": { "branch": "master", "commit": "6d3d22cdad49999ef774ebe1bc250a4994038964" },
|
||||||
"neotest-java": { "branch": "main", "commit": "320f31c71b183f2c584198f33f93542fd0e5a768" },
|
"neotest-java": { "branch": "main", "commit": "320f31c71b183f2c584198f33f93542fd0e5a768" },
|
||||||
"noice.nvim": { "branch": "main", "commit": "6e0c8dcc61282782ac7fa4b9b4b0c910fd3f83d9" },
|
"noice.nvim": { "branch": "main", "commit": "221ffbc499d322699ea079fcd878a2399529e775" },
|
||||||
"nui.nvim": { "branch": "main", "commit": "b58e2bfda5cea347c9d58b7f11cf3012c7b3953f" },
|
"nui.nvim": { "branch": "main", "commit": "b58e2bfda5cea347c9d58b7f11cf3012c7b3953f" },
|
||||||
"nvim-autopairs": { "branch": "master", "commit": "ee297f215e95a60b01fde33275cc3c820eddeebe" },
|
"nvim-autopairs": { "branch": "master", "commit": "ee297f215e95a60b01fde33275cc3c820eddeebe" },
|
||||||
"nvim-cmp": { "branch": "main", "commit": "f17d9b4394027ff4442b298398dfcaab97e40c4f" },
|
"nvim-cmp": { "branch": "main", "commit": "f17d9b4394027ff4442b298398dfcaab97e40c4f" },
|
||||||
|
|
88
lua/auto-jdtls2/create_gradle_project.lua
Normal file
88
lua/auto-jdtls2/create_gradle_project.lua
Normal file
|
@ -0,0 +1,88 @@
|
||||||
|
local function gradle_new_project()
|
||||||
|
local function create_notif(message, level)
|
||||||
|
local notif_ok, notify = pcall(require, "notify")
|
||||||
|
if notif_ok then
|
||||||
|
notify(message, level)
|
||||||
|
else
|
||||||
|
print(message)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Fungsi untuk meminta input dari pengguna dengan opsi untuk membatalkan
|
||||||
|
local function get_user_input(prompt, default_value)
|
||||||
|
vim.fn.inputsave()
|
||||||
|
local result = vim.fn.input(prompt, default_value)
|
||||||
|
vim.fn.inputrestore()
|
||||||
|
|
||||||
|
-- Cek apakah pengguna menekan Esc untuk membatalkan input
|
||||||
|
if result == "" then
|
||||||
|
create_notif("Input canceled.", "info")
|
||||||
|
return nil, true
|
||||||
|
end
|
||||||
|
|
||||||
|
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
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Ambil input dari pengguna untuk Gradle
|
||||||
|
local project_name, canceled_name = get_user_input("Enter project name: ", "myjavaproject")
|
||||||
|
if canceled_name 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)
|
||||||
|
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,
|
||||||
|
package_name
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Fungsi untuk menjalankan perintah Gradle dan menampilkan outputnya
|
||||||
|
local function run_gradle_command(cmd, dir, 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("%.", "/"))
|
||||||
|
if vim.fn.filereadable(main_class_path) == 1 then
|
||||||
|
vim.cmd(":edit " .. main_class_path)
|
||||||
|
end
|
||||||
|
vim.cmd(":NvimTreeFindFileToggle<CR>")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Jalankan perintah Gradle dan buka proyek
|
||||||
|
run_gradle_command(command, project_dir, package_name)
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.api.nvim_create_user_command("GradleNewProject", gradle_new_project, {})
|
|
@ -3,6 +3,7 @@ local M = {}
|
||||||
M.setup = function(opt)
|
M.setup = function(opt)
|
||||||
opt = opt or {}
|
opt = opt or {}
|
||||||
require("auto-jdtls.utils").install()
|
require("auto-jdtls.utils").install()
|
||||||
|
require("auto-jdtls.create_gradle_project")
|
||||||
require("auto-jdtls.create_maven_project")
|
require("auto-jdtls.create_maven_project")
|
||||||
require("auto-jdtls.create_springboot_project")
|
require("auto-jdtls.create_springboot_project")
|
||||||
require("auto-jdtls.utils").attach_jdtls(opt)
|
require("auto-jdtls.utils").attach_jdtls(opt)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue