diff --git a/lazy-lock.json b/lazy-lock.json index 5eaf777..34722d7 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -2,11 +2,11 @@ "Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" }, "Eva-Theme.nvim": { "branch": "master", "commit": "5e0ee05b7b803cbd781612d484b0796c45946a3d" }, "FixCursorHold.nvim": { "branch": "master", "commit": "1900f89dc17c603eec29960f57c00bd9ae696495" }, - "LuaSnip": { "branch": "master", "commit": "659c4479529a05cc9b05ef762639a09d366cc690" }, + "LuaSnip": { "branch": "master", "commit": "0f7bbce41ea152a94d12aea286f2ce98e63c0f58" }, "alpha-nvim": { "branch": "main", "commit": "de72250e054e5e691b9736ee30db72c65d560771" }, "auto-bufferline.nvim": { "branch": "main", "commit": "f5835a4b62bfb6f6c829f8f050e5102ccf230b3e" }, "auto-conform.nvim": { "branch": "main", "commit": "5f0897235e84bf2f8ff9d634e81678d5bfa63ab8" }, - "auto-java-project.nvim": { "branch": "main", "commit": "796bbee285c5eaed8784b8d91edd0ea5d25a3856" }, + "auto-java-project.nvim": { "branch": "v2", "commit": "71107191bed6bac984b886af458d3ac405e7a5fb" }, "auto-jdtls.nvim": { "branch": "main", "commit": "050da8d68c51a6e02a08d91329b7a848887927e7" }, "auto-lint.nvim": { "branch": "main", "commit": "aff13cb8eaa055e66e940d43b7d83166397e5413" }, "auto-lsp.nvim": { "branch": "main", "commit": "1f3ef04741972c107187a07be5615ff210888184" }, @@ -29,7 +29,7 @@ "indent-blankline.nvim": { "branch": "master", "commit": "7871a88056f7144defca9c931e311a3134c5d509" }, "lazy.nvim": { "branch": "main", "commit": "7967abe55752aa90532e6bb4bd4663fe27a264cb" }, "lualine.nvim": { "branch": "master", "commit": "2a5bae925481f999263d6f5ed8361baef8df4f83" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "cab00668464d2914d0752b86168b4a431cc93eb2" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "43894adcf10bb1190c2184bd7c1750e8ea2b3dce" }, "mason-nvim-dap.nvim": { "branch": "main", "commit": "8b9363d83b5d779813cdd2819b8308651cec2a09" }, "mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" }, "menu": { "branch": "main", "commit": "657bfc91382c0928453d9a4d0a10ec92db5de2bb" }, @@ -37,7 +37,7 @@ "minty": { "branch": "main", "commit": "a3d69bd63fc98f640815f94b797bf978e9193022" }, "neotest": { "branch": "master", "commit": "6d3d22cdad49999ef774ebe1bc250a4994038964" }, "neotest-java": { "branch": "main", "commit": "320f31c71b183f2c584198f33f93542fd0e5a768" }, - "noice.nvim": { "branch": "main", "commit": "221ffbc499d322699ea079fcd878a2399529e775" }, + "noice.nvim": { "branch": "main", "commit": "2626b4a49340e4eae24a388468ac98680fc24532" }, "nui.nvim": { "branch": "main", "commit": "b58e2bfda5cea347c9d58b7f11cf3012c7b3953f" }, "nvim-autopairs": { "branch": "master", "commit": "b464658e9b880f463b9f7e6ccddd93fb0013f559" }, "nvim-cmp": { "branch": "main", "commit": "f17d9b4394027ff4442b298398dfcaab97e40c4f" }, @@ -47,17 +47,17 @@ "nvim-dap-virtual-text": { "branch": "master", "commit": "76d80c3d171224315b61c006502a1e30c213a9ab" }, "nvim-jdtls": { "branch": "master", "commit": "c4279b8ffce9b64eb302056d78dfebc2968a49bc" }, "nvim-lint": { "branch": "master", "commit": "36da8dd0ddc4f88e0beae234c20e75397326f143" }, - "nvim-lspconfig": { "branch": "master", "commit": "87c7c83ce62971e0bdb29bb32b8ad2b19c8f95d0" }, + "nvim-lspconfig": { "branch": "master", "commit": "f012c1b176f0e3c71f40eb309bdec0316689462e" }, "nvim-material-icon": { "branch": "main", "commit": "38fc13fe4811c4bf62533180ff5e7bbd237c5ef5" }, "nvim-navic": { "branch": "master", "commit": "8649f694d3e76ee10c19255dece6411c29206a54" }, "nvim-nio": { "branch": "master", "commit": "a428f309119086dc78dd4b19306d2d67be884eee" }, "nvim-notify": { "branch": "master", "commit": "fbef5d32be8466dd76544a257d3f3dce20082a07" }, "nvim-scrollview": { "branch": "main", "commit": "f7f611330a8f7cd00dc81538fec369611be678ed" }, - "nvim-tree.lua": { "branch": "master", "commit": "28eac2801b201f301449e976d7a9e8cfde053ba3" }, - "nvim-treesitter": { "branch": "master", "commit": "20e10ca6914f65cf1410232433fb58de70ab6b39" }, + "nvim-tree.lua": { "branch": "master", "commit": "f7c65e11d695a084ca10b93df659bb7e68b71f9f" }, + "nvim-treesitter": { "branch": "master", "commit": "37427012d1c77c544356bfff0c9acc88fd3256bc" }, "nvim-ts-autotag": { "branch": "main", "commit": "e239a560f338be31337e7abc3ee42515daf23f5e" }, "nvim-ts-context-commentstring": { "branch": "main", "commit": "9c74db656c3d0b1c4392fc89a016b1910539e7c0" }, - "nvim-web-devicons": { "branch": "master", "commit": "19d257cf889f79f4022163c3fbb5e08639077bd8" }, + "nvim-web-devicons": { "branch": "master", "commit": "e87554285f581047b1bf236794b0eb812b444b87" }, "plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" }, "rainbow-delimiters.nvim": { "branch": "master", "commit": "f22496dfdd46da4d571f5254c72eff65ff5a1c27" }, "refactoring.nvim": { "branch": "master", "commit": "53ed6854e0bba64d467c58e87084dcf8b1c22d36" }, @@ -70,7 +70,7 @@ "vim-illuminate": { "branch": "master", "commit": "5eeb7951fc630682c322e88a9bbdae5c224ff0aa" }, "vim-visual-multi": { "branch": "master", "commit": "a6975e7c1ee157615bbc80fc25e4392f71c344d4" }, "virt-column.nvim": { "branch": "master", "commit": "b87e3e0864211a32724a2ebf3be37e24e9e2fa99" }, - "volt": { "branch": "main", "commit": "2cf7e86f3bc7f41cbb6d0a8d0d84fc759c0dae86" }, + "volt": { "branch": "main", "commit": "41c03a5d6a0a8a997e774a3482d82e5ef820c6ba" }, "which-key.nvim": { "branch": "main", "commit": "68e37e12913a66b60073906f5d3f14dee0de19f2" }, "yanky.nvim": { "branch": "main", "commit": "f9b905994cccf3c55f41af3a0a1f4c76c844e411" }, "zen-mode.nvim": { "branch": "main", "commit": "29b292bdc58b76a6c8f294c961a8bf92c5a6ebd6" } diff --git a/lua/auto-jdtls2/create_gradle_project.lua b/lua/auto-jdtls2/create_gradle_project.lua index 1867635..4395750 100644 --- a/lua/auto-jdtls2/create_gradle_project.lua +++ b/lua/auto-jdtls2/create_gradle_project.lua @@ -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") + 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") + 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, {}) diff --git a/lua/auto-jdtls2/create_maven_project.lua b/lua/auto-jdtls2/create_maven_project.lua index bbfd05c..29a9595 100644 --- a/lua/auto-jdtls2/create_maven_project.lua +++ b/lua/auto-jdtls2/create_maven_project.lua @@ -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 diff --git a/lua/auto-jdtls2/generate_java_class.lua b/lua/auto-jdtls2/generate_java_class.lua index 0a57941..cd1dd42 100644 --- a/lua/auto-jdtls2/generate_java_class.lua +++ b/lua/auto-jdtls2/generate_java_class.lua @@ -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, diff --git a/lua/auto-jdtls2/init.lua b/lua/auto-jdtls2/init.lua index 83cc941..fe49ae1 100644 --- a/lua/auto-jdtls2/init.lua +++ b/lua/auto-jdtls2/init.lua @@ -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 diff --git a/lua/pcode/plugins/notify.lua b/lua/pcode/plugins/notify.lua index 1c4ae83..ba74835 100644 --- a/lua/pcode/plugins/notify.lua +++ b/lua/pcode/plugins/notify.lua @@ -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", diff --git a/lua/pcode/user/java.lua b/lua/pcode/user/java.lua new file mode 100644 index 0000000..553a3d1 --- /dev/null +++ b/lua/pcode/user/java.lua @@ -0,0 +1,3 @@ +require("auto-jdtls2.create_gradle_project") +require("auto-jdtls2.create_maven_project") +require("auto-jdtls2.create_springboot_project")