From d084330d2fa39921becd0e28ab04aae7dc23940d Mon Sep 17 00:00:00 2001 From: Pojok Code Date: Wed, 27 Nov 2024 09:19:02 +0700 Subject: [PATCH] enc: add update config kotlin --- lazy-lock.json | 51 ++-- lua/pcode/plugins/lang/java2.lua | 47 ---- lua/pcode/plugins/lang/java4.lua | 32 --- lua/pcode/plugins/lang/kotlin.lua | 300 +++++++++++++---------- lua/pcode/plugins/lang/kotlin_backup.lua | 149 +++++++++++ lua/pcode/plugins/nvimtree.lua | 220 ++++++++--------- lua/pcode/user/default.lua | 8 +- lua/pcode/user/options.lua | 2 +- 8 files changed, 452 insertions(+), 357 deletions(-) delete mode 100644 lua/pcode/plugins/lang/java2.lua delete mode 100644 lua/pcode/plugins/lang/java4.lua create mode 100644 lua/pcode/plugins/lang/kotlin_backup.lua diff --git a/lazy-lock.json b/lazy-lock.json index 856fb60..4dec146 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,16 +1,13 @@ { "Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" }, "Eva-Theme.nvim": { "branch": "master", "commit": "5e0ee05b7b803cbd781612d484b0796c45946a3d" }, - "FixCursorHold.nvim": { "branch": "master", "commit": "1900f89dc17c603eec29960f57c00bd9ae696495" }, "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": "v2", "commit": "0510829ee6780229efc409305b8da304a18f2754" }, - "auto-jdtls.nvim": { "branch": "main", "commit": "050da8d68c51a6e02a08d91329b7a848887927e7" }, "auto-lint.nvim": { "branch": "main", "commit": "aff13cb8eaa055e66e940d43b7d83166397e5413" }, "auto-lsp.nvim": { "branch": "main", "commit": "1f3ef04741972c107187a07be5615ff210888184" }, - "auto-lualine.nvim": { "branch": "main", "commit": "fc8557f61dc1da12a8b90167a49420958b991d8c" }, + "auto-lualine.nvim": { "branch": "main", "commit": "c889473aef975bf3b17a770dfb2039bb2a0cd41c" }, "breadcrumbs.nvim": { "branch": "master", "commit": "9f764278784ce2f10dbe2f555ba14be2451d36a0" }, "bufferline.nvim": { "branch": "main", "commit": "5cc447cb2b463cb499c82eaeabbed4f5fa6a0a44" }, "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, @@ -20,14 +17,14 @@ "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, "code_runner.nvim": { "branch": "main", "commit": "dcedccbf969a0f3bc00db446172b4966e83101dd" }, - "codeium.vim": { "branch": "main", "commit": "8c01979323b2b480c8bf160d3ff85bd1668baa49" }, - "conform.nvim": { "branch": "master", "commit": "023f795dbcf32d4351b6a9ed2e613d471b5bb812" }, + "codeium.vim": { "branch": "main", "commit": "605ab06780c9c42a63fc8afa8c0bd02b3b51b66f" }, + "conform.nvim": { "branch": "master", "commit": "a203480a350b03092e473bf3001733d547160a73" }, "dressing.nvim": { "branch": "master", "commit": "fc78a3ca96f4db9f8893bb7e2fd9823e0780451b" }, "friendly-snippets": { "branch": "main", "commit": "de8fce94985873666bd9712ea3e49ee17aadb1ed" }, - "gitsigns.nvim": { "branch": "main", "commit": "ac5aba6dce8c06ea22bea2c9016f51a2dbf90dc7" }, - "inc-rename.nvim": { "branch": "main", "commit": "8ba77017ca468f3029bf88ef409c2d20476ea66b" }, + "gitsigns.nvim": { "branch": "main", "commit": "5f808b5e4fef30bd8aca1b803b4e555da07fc412" }, + "inc-rename.nvim": { "branch": "main", "commit": "b0d5b5bdd0a91eb47ff4a49b250bdc5a5eb45353" }, "indent-blankline.nvim": { "branch": "master", "commit": "7871a88056f7144defca9c931e311a3134c5d509" }, - "lazy.nvim": { "branch": "main", "commit": "7967abe55752aa90532e6bb4bd4663fe27a264cb" }, + "lazy.nvim": { "branch": "main", "commit": "56ead98e05bb37a4ec28930a54d836d033cf00f2" }, "lualine.nvim": { "branch": "master", "commit": "2a5bae925481f999263d6f5ed8361baef8df4f83" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "43894adcf10bb1190c2184bd7c1750e8ea2b3dce" }, "mason-nvim-dap.nvim": { "branch": "main", "commit": "8b9363d83b5d779813cdd2819b8308651cec2a09" }, @@ -35,44 +32,42 @@ "menu": { "branch": "main", "commit": "657bfc91382c0928453d9a4d0a10ec92db5de2bb" }, "mini.indentscope": { "branch": "main", "commit": "da9af64649e114aa79480c238fd23f6524bc0903" }, "minty": { "branch": "main", "commit": "b454ca0229f8e22a631fd3c014ec99973fb8cad4" }, - "neotest": { "branch": "master", "commit": "6d3d22cdad49999ef774ebe1bc250a4994038964" }, - "neotest-java": { "branch": "main", "commit": "320f31c71b183f2c584198f33f93542fd0e5a768" }, - "noice.nvim": { "branch": "main", "commit": "203f74adaae11d47440a667555b4af9156be807b" }, + "noice.nvim": { "branch": "main", "commit": "c6f6fb178ebe9b4fd90383de743c3399f8c3a37c" }, "nui.nvim": { "branch": "main", "commit": "b58e2bfda5cea347c9d58b7f11cf3012c7b3953f" }, "nvim-autopairs": { "branch": "master", "commit": "b464658e9b880f463b9f7e6ccddd93fb0013f559" }, - "nvim-cmp": { "branch": "main", "commit": "f17d9b4394027ff4442b298398dfcaab97e40c4f" }, - "nvim-colorizer.lua": { "branch": "master", "commit": "4b7fba6eae15668098ea8835da1edb670f612431" }, + "nvim-cmp": { "branch": "main", "commit": "ed31156aa2cc14e3bc066c59357cc91536a2bc01" }, + "nvim-colorizer.lua": { "branch": "master", "commit": "4acf88d31b3a7a1a7f31e9c30bf2b23c6313abdb" }, "nvim-dap": { "branch": "master", "commit": "cc92b054720a96170eca6bd9bdedd43d2b0a7a8a" }, "nvim-dap-ui": { "branch": "master", "commit": "ffa89839f97bad360e78428d5c740fdad9a0ff02" }, "nvim-dap-virtual-text": { "branch": "master", "commit": "76d80c3d171224315b61c006502a1e30c213a9ab" }, - "nvim-jdtls": { "branch": "master", "commit": "c4279b8ffce9b64eb302056d78dfebc2968a49bc" }, - "nvim-lint": { "branch": "master", "commit": "8e9562de7261e5b862c631958df616e1a65552cd" }, - "nvim-lspconfig": { "branch": "master", "commit": "f012c1b176f0e3c71f40eb309bdec0316689462e" }, + "nvim-lint": { "branch": "master", "commit": "6b46370d02cd001509a765591a3ffc481b538794" }, + "nvim-lspconfig": { "branch": "master", "commit": "65f02d8e4b66db9ec99618c43233963545b70298" }, "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": "f7c65e11d695a084ca10b93df659bb7e68b71f9f" }, - "nvim-treesitter": { "branch": "master", "commit": "37427012d1c77c544356bfff0c9acc88fd3256bc" }, + "nvim-scrollview": { "branch": "main", "commit": "4d60c594d78e97189c1e38720e74f13c6f5c311f" }, + "nvim-tree.lua": { "branch": "master", "commit": "ca7c4c33cac2ad66ec69d45e465379716ef0cc97" }, + "nvim-treesitter": { "branch": "master", "commit": "28591731d84c2fc18ddda60e1d53da24c31c4987" }, "nvim-ts-autotag": { "branch": "main", "commit": "e239a560f338be31337e7abc3ee42515daf23f5e" }, "nvim-ts-context-commentstring": { "branch": "main", "commit": "9c74db656c3d0b1c4392fc89a016b1910539e7c0" }, - "nvim-web-devicons": { "branch": "master", "commit": "e87554285f581047b1bf236794b0eb812b444b87" }, + "nvim-web-devicons": { "branch": "master", "commit": "edbe0a65cfacbbfff6a4a1e98ddd60c28c560509" }, "plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" }, - "project.nvim": { "branch": "main", "commit": "9cc719f455295e7a2fc7340d4fd87327f3fe15ca" }, - "rainbow-delimiters.nvim": { "branch": "master", "commit": "f22496dfdd46da4d571f5254c72eff65ff5a1c27" }, - "refactoring.nvim": { "branch": "master", "commit": "53ed6854e0bba64d467c58e87084dcf8b1c22d36" }, - "smart-splits.nvim": { "branch": "master", "commit": "5910b386aca2ea7adb63812ba43815b1d97b37ad" }, - "symbols-outline.nvim": { "branch": "master", "commit": "964c5902243446124417a3a9e9454f5ef032cc36" }, + "rainbow-delimiters.nvim": { "branch": "master", "commit": "d803ba7668ba390aa4cfd3580183c982cac36fd8" }, + "refactoring.nvim": { "branch": "master", "commit": "2db6d378e873de31d18ade549c2edba64ff1c2e3" }, + "smart-splits.nvim": { "branch": "master", "commit": "d8b0e772a0244169534b1fd57c1660c9bf323d26" }, "telescope-treesitter-info.nvim": { "branch": "master", "commit": "4bed952c3c33015c4402007f179b478843d5aa3b" }, "telescope.nvim": { "branch": "master", "commit": "85922dde3767e01d42a08e750a773effbffaea3e" }, "tiny-devicons-auto-colors.nvim": { "branch": "main", "commit": "a39fa4c92268832f6034306793b8acbfec2a7549" }, "toggleterm.nvim": { "branch": "main", "commit": "87b2d6a3cab8e2bd9a0255427074285f0365398d" }, + "vim-dadbod": { "branch": "master", "commit": "fe5a55e92b2dded7c404006147ef97fb073d8b1b" }, + "vim-dadbod-completion": { "branch": "master", "commit": "da0e75c09c27a82aad078d993bb1b2f4afd43427" }, + "vim-dadbod-ui": { "branch": "master", "commit": "28a16902cb2134c934b85da5250033ee43b0dee5" }, "vim-illuminate": { "branch": "master", "commit": "5eeb7951fc630682c322e88a9bbdae5c224ff0aa" }, "vim-visual-multi": { "branch": "master", "commit": "a6975e7c1ee157615bbc80fc25e4392f71c344d4" }, "virt-column.nvim": { "branch": "master", "commit": "b87e3e0864211a32724a2ebf3be37e24e9e2fa99" }, - "volt": { "branch": "main", "commit": "a36c576baae487634151377f601bf3f5de355f5a" }, - "which-key.nvim": { "branch": "main", "commit": "68e37e12913a66b60073906f5d3f14dee0de19f2" }, + "volt": { "branch": "main", "commit": "8d35e03c70490190149a77c59155618ef4370721" }, + "which-key.nvim": { "branch": "main", "commit": "b9684c6ec54d8a8452bdcf0d613c7ad0223fc3fe" }, "yanky.nvim": { "branch": "main", "commit": "f9b905994cccf3c55f41af3a0a1f4c76c844e411" }, "zen-mode.nvim": { "branch": "main", "commit": "29b292bdc58b76a6c8f294c961a8bf92c5a6ebd6" } } diff --git a/lua/pcode/plugins/lang/java2.lua b/lua/pcode/plugins/lang/java2.lua deleted file mode 100644 index 8ed35bf..0000000 --- a/lua/pcode/plugins/lang/java2.lua +++ /dev/null @@ -1,47 +0,0 @@ -return { - "nvim-java/nvim-java", - -- event = "VeryLazy", - ft = { "java" }, - dependencies = { - "MunifTanjim/nui.nvim", - "neovim/nvim-lspconfig", - "mfussenegger/nvim-dap", - "williamboman/mason.nvim", - }, - config = function() - require("java").setup({ - notifications = { - dap = false, - }, - jdk = { - auto_install = false, - }, - }) - require("lspconfig").jdtls.setup({ - settings = { - java = { - configuration = { - runtimes = { - { - name = "JavaSE-17", - path = os.getenv("JAVA_HOME") or "", - default = true, - }, - }, - }, - }, - }, - }) - end, - keys = { - { "rg", "", desc = "Gradle" }, - { "rgp", "JavaProfile", desc = "Java Profile" }, - { "rgg", "terminalgradle run", desc = "Run Gradle" }, - { "rgb", "JavaBuildBuildWorkspace", desc = "Java Build Workspace" }, - { "rgd", "JavaDapConfig", desc = "Java Configure DAP" }, - { "T", "", desc = "Test" }, - { "Tc", "JavaTestRunCurrentClass", desc = "Test Current Class" }, - { "Tm", "JavaTestRunCurrentMethod", desc = "Test Current Method" }, - { "Th", "JavaTestViewLastReport", desc = "View Test Last Report" }, - }, -} diff --git a/lua/pcode/plugins/lang/java4.lua b/lua/pcode/plugins/lang/java4.lua deleted file mode 100644 index cb144cf..0000000 --- a/lua/pcode/plugins/lang/java4.lua +++ /dev/null @@ -1,32 +0,0 @@ -return { - "nvim-java/nvim-java", - -- ft = { "java" }, - dependencies = { - "MunifTanjim/nui.nvim", - "neovim/nvim-lspconfig", - "mfussenegger/nvim-dap", - "williamboman/mason.nvim", - }, - opts = { - notifications = { - dap = false, - }, - jdk = { - auto_install = false, - }, - - -- NOTE: One of these files must be in your project root directory. - -- Otherwise the debugger will end in the wrong directory and fail. - root_markers = { - "settings.gradle", - "settings.gradle.kts", - "pom.xml", - "build.gradle", - "mvnw", - "gradlew", - "build.gradle", - "build.gradle.kts", - ".git", - }, - }, -} diff --git a/lua/pcode/plugins/lang/kotlin.lua b/lua/pcode/plugins/lang/kotlin.lua index 0012d27..6adee3e 100644 --- a/lua/pcode/plugins/lang/kotlin.lua +++ b/lua/pcode/plugins/lang/kotlin.lua @@ -1,136 +1,168 @@ -return { - -- install treesitter - { - "nvim-treesitter/nvim-treesitter", - opts = function(_, opts) - opts.ensure_installed = opts.ensure_installed or {} - vim.list_extend(opts.ensure_installed, { "kotlin" }) - end, - }, - { - "williamboman/mason-lspconfig.nvim", - opts = function(_, opts) - opts.ensure_installed = opts.ensure_installed or {} - vim.list_extend(opts.ensure_installed, { "kotlin_language_server" }) - end, - }, - { - "pojokcodeid/auto-conform.nvim", - event = "VeryLazy", - opts = function(_, opts) - opts.formatters_by_ft = opts.formatters_by_ft or {} - local package = "ktfmt" - vim.list_extend(opts.ensure_installed, { package }) - opts.formatters_by_ft.kotlin = { package } - end, - }, - { - "pojokcodeid/auto-lint.nvim", - optional = true, - opts = function(_, opts) - opts.linters_by_ft = opts.linters_by_ft or {} - vim.list_extend(opts.ensure_installed, { "ktlint" }) - opts.linters_by_ft.kotlin = { "ktlint" } - end, - }, - { - "mason.nvim", - opts = { - ensure_installed = { "kotlin-debug-adapter" }, - }, - }, - { - "rcarriga/nvim-dap-ui", - lazy = true, - event = "BufRead", - dependencies = { - { "mfussenegger/nvim-dap", lazy = true }, - { "nvim-neotest/nvim-nio", lazy = true }, - }, - opts = function() - require("pcode.user.dapui") - local dap = require("dap") - if not dap.adapters.kotlin then - dap.adapters.kotlin = { - type = "executable", - command = "kotlin-debug-adapter", - options = { auto_continue_if_many_stopped = false }, - } - end +local function get_default_package() + local curr_file = vim.fn.expand("%:t") + curr_file = curr_file:gsub(".kt", "") + local path = vim.fn.expand("%:p:h") + local project_root = vim.fn.getcwd() + local relative_path = path:sub(#project_root + 1) + relative_path = relative_path:gsub("app\\src\\test\\kotlin\\", "") + relative_path = relative_path:gsub("app/src/test/kotlin/", "") + relative_path = relative_path:gsub("\\", ".") + relative_path = relative_path:gsub("/", ".") + return relative_path:sub(2) .. "." .. curr_file +end - dap.configurations.kotlin = { - { - type = "kotlin", - request = "launch", - name = "This file", - -- may differ, when in doubt, whatever your project structure may be, - -- it has to correspond to the class file located at `build/classes/` - -- and of course you have to build before you debug - mainClass = function() - local root = vim.uv.cwd() - local fname = vim.api.nvim_buf_get_name(0) - fname = fname:gsub(root, "") - fname = fname:gsub("/app/src/main/kotlin/", "") - fname = fname:gsub(".kt", "Kt"):gsub("/", ".") - -- src/main/kotlin/websearch/Main.kt -> websearch.MainKt - return fname - end, - projectRoot = "${workspaceFolder}", - jsonLogFile = "", - enableJsonLogging = false, - }, - { - -- Use this for unit tests - -- First, run - -- ./gradlew --info cleanTest test --debug-jvm - -- then attach the debugger to it - type = "kotlin", - request = "attach", - name = "Attach to debugging session", - port = 5005, - args = {}, - projectRoot = vim.fn.getcwd, - hostName = "localhost", - timeout = 2000, - }, - } - end, - keys = { - { "d", "", desc = "  Debug" }, - { "dt", "lua require'dap'.toggle_breakpoint()", desc = "Toggle Breakpoint" }, - { "db", "lua require'dap'.step_back()", desc = "Step Back" }, - { "dc", "lua require'dap'.continue()", desc = "Continue" }, - { "dC", "lua require'dap'.run_to_cursor()", desc = "Run To Cursor" }, - { "dd", "lua require'dap'.disconnect()", desc = "Disconnect" }, - { "dg", "lua require'dap'.session()", desc = "Get Session" }, - { "di", "lua require'dap'.step_into()", desc = "Step Into" }, - { "do", "lua require'dap'.step_over()", desc = "Step Over" }, - { "du", "lua require'dap'.step_out()", desc = "Step Out" }, - { "dp", "lua require'dap'.pause()", desc = "Pause" }, - { "dr", "lua require'dap'.repl.toggle()", desc = "Toggle Repl" }, - { "ds", "lua require'dap'.continue()", desc = "Start" }, - { "dq", "lua require'dap'.close()", desc = "Quit" }, - { "dU", "lua require'dapui'.toggle({reset = true})", desc = "Toggle UI" }, - -- setting cek - -- https://stackoverflow.com/questions/9356543/logging-while-testing-through-gradle - { "T", "", desc = " Test" }, - { "Ta", "terminal gradle test", desc = "Run All" }, - { - "Tu", - function() - -- local current_word = vim.fn.expand("") - local current_word = "" - local input = vim.fn.getline(".") - current_word = all_trim((input:gsub("class", "")):gsub("{", "")) -- hilangkan bagian class - current_word = current_word:gsub("fun", "") - current_word = current_word:gsub("%(%)", "") - current_word = current_word:gsub("{", "") - current_word = current_word:gsub("@Test", "") - vim.cmd("terminal gradle test --tests *." .. all_trim(current_word)) - end, - desc = "Run Under Cursor", - }, - { "rg", "terminalgradle run", desc = "Run Gradle", mode = "n" }, - }, - }, +return { + -- install treesitter + { + "nvim-treesitter/nvim-treesitter", + opts = function(_, opts) + opts.ensure_installed = opts.ensure_installed or {} + vim.list_extend(opts.ensure_installed, { "kotlin" }) + end, + }, + { + "williamboman/mason-lspconfig.nvim", + opts = function(_, opts) + opts.ensure_installed = opts.ensure_installed or {} + vim.list_extend(opts.ensure_installed, { "kotlin_language_server" }) + end, + }, + { + "pojokcodeid/auto-conform.nvim", + event = "VeryLazy", + opts = function(_, opts) + opts.formatters_by_ft = opts.formatters_by_ft or {} + local package = "ktfmt" + vim.list_extend(opts.ensure_installed, { package }) + opts.formatters_by_ft.kotlin = { package } + end, + }, + { + "pojokcodeid/auto-lint.nvim", + optional = true, + opts = function(_, opts) + opts.linters_by_ft = opts.linters_by_ft or {} + vim.list_extend(opts.ensure_installed, { "ktlint" }) + opts.linters_by_ft.kotlin = { "ktlint" } + end, + }, + { + "mason.nvim", + opts = { + ensure_installed = { "kotlin-debug-adapter" }, + }, + }, + { + "rcarriga/nvim-dap-ui", + lazy = true, + event = "BufRead", + dependencies = { + { "mfussenegger/nvim-dap", lazy = true }, + { "nvim-neotest/nvim-nio", lazy = true }, + }, + opts = function() + require("pcode.user.dapui") + local dap = require("dap") + if not dap.adapters.kotlin then + dap.adapters.kotlin = { + type = "executable", + command = "kotlin-debug-adapter", + options = { auto_continue_if_many_stopped = false }, + } + end + + dap.configurations.kotlin = { + { + type = "kotlin", + request = "launch", + name = "This file", + -- may differ, when in doubt, whatever your project structure may be, + -- it has to correspond to the class file located at `build/classes/` + -- and of course you have to build before you debug + mainClass = function() + local root = vim.uv.cwd() + local fname = vim.api.nvim_buf_get_name(0) + fname = fname:gsub(root, "") + fname = fname:gsub("/app/src/main/kotlin/", "") + fname = fname:gsub(".kt", "Kt"):gsub("/", ".") + -- src/main/kotlin/websearch/Main.kt -> websearch.MainKt + return fname + end, + projectRoot = "${workspaceFolder}", + jsonLogFile = "", + enableJsonLogging = false, + }, + { + -- Use this for unit tests + -- First, run + -- ./gradlew --info cleanTest test --debug-jvm + -- then attach the debugger to it + type = "kotlin", + request = "attach", + name = "Attach to debugging session", + port = 5005, + args = {}, + projectRoot = vim.fn.getcwd, + hostName = "localhost", + timeout = 2000, + }, + } + end, + keys = { + { "d", "", desc = "  Debug" }, + { "dt", "lua require'dap'.toggle_breakpoint()", desc = "Toggle Breakpoint" }, + { "db", "lua require'dap'.step_back()", desc = "Step Back" }, + { "dc", "lua require'dap'.continue()", desc = "Continue" }, + { "dC", "lua require'dap'.run_to_cursor()", desc = "Run To Cursor" }, + { "dd", "lua require'dap'.disconnect()", desc = "Disconnect" }, + { "dg", "lua require'dap'.session()", desc = "Get Session" }, + { "di", "lua require'dap'.step_into()", desc = "Step Into" }, + { "do", "lua require'dap'.step_over()", desc = "Step Over" }, + { "du", "lua require'dap'.step_out()", desc = "Step Out" }, + { "dp", "lua require'dap'.pause()", desc = "Pause" }, + { "dr", "lua require'dap'.repl.toggle()", desc = "Toggle Repl" }, + { "ds", "lua require'dap'.continue()", desc = "Start" }, + { "dq", "lua require'dap'.close()", desc = "Quit" }, + { "dU", "lua require'dapui'.toggle({reset = true})", desc = "Toggle UI" }, + -- setting cek + -- https://stackoverflow.com/questions/9356543/logging-while-testing-through-gradle + { "T", "", desc = " Test" }, + { "Ta", "terminal gradle test", desc = "Run All" }, + { + "Tu", + function() + local current_word = "" + local input = vim.fn.getline(".") + current_word = all_trim((input:gsub("class", "")):gsub("{", "")) -- hilangkan bagian class + current_word = current_word:gsub("fun", "") + current_word = current_word:gsub("%(%)", "") + current_word = current_word:gsub("{", "") + current_word = current_word:gsub("@Test", "") + require("notify").notify( + 'gradle test --tests "' .. get_default_package() .. "." .. all_trim(current_word) .. '"', + "info" + ) + vim.fn.jobstart("gradle cleanTest", { + on_exit = function() + vim.cmd('terminal gradle test --tests "' .. get_default_package() .. "." .. all_trim(current_word) .. '"') + end, + }) + end, + desc = "Run Under Cursor", + }, + { + "Tf", + function() + require("notify").notify('gradle test --tests "' .. get_default_package() .. '"', "info") + vim.fn.jobstart("gradle cleanTest", { + on_exit = function() + vim.cmd('terminal gradle test --tests "' .. get_default_package() .. '"') + end, + }) + end, + desc = "Run Current File", + }, + { "rg", "terminalgradle run", desc = "Run Gradle", mode = "n" }, + }, + }, } diff --git a/lua/pcode/plugins/lang/kotlin_backup.lua b/lua/pcode/plugins/lang/kotlin_backup.lua new file mode 100644 index 0000000..fe17637 --- /dev/null +++ b/lua/pcode/plugins/lang/kotlin_backup.lua @@ -0,0 +1,149 @@ +return { + -- install treesitter + { + "nvim-treesitter/nvim-treesitter", + opts = function(_, opts) + opts.ensure_installed = opts.ensure_installed or {} + vim.list_extend(opts.ensure_installed, { "kotlin" }) + end, + }, + { + "williamboman/mason-lspconfig.nvim", + opts = function(_, opts) + opts.ensure_installed = opts.ensure_installed or {} + vim.list_extend(opts.ensure_installed, { "kotlin_language_server" }) + end, + }, + { + "pojokcodeid/auto-conform.nvim", + event = "VeryLazy", + opts = function(_, opts) + opts.formatters_by_ft = opts.formatters_by_ft or {} + local package = "ktfmt" + vim.list_extend(opts.ensure_installed, { package }) + opts.formatters_by_ft.kotlin = { package } + end, + }, + { + "pojokcodeid/auto-lint.nvim", + optional = true, + opts = function(_, opts) + opts.linters_by_ft = opts.linters_by_ft or {} + vim.list_extend(opts.ensure_installed, { "ktlint" }) + opts.linters_by_ft.kotlin = { "ktlint" } + end, + }, + { + "mason.nvim", + opts = { + ensure_installed = { "kotlin-debug-adapter" }, + }, + }, + { + "rcarriga/nvim-dap-ui", + lazy = true, + event = "BufRead", + dependencies = { + { "mfussenegger/nvim-dap", lazy = true }, + { "nvim-neotest/nvim-nio", lazy = true }, + }, + opts = function() + require("pcode.user.dapui") + local dap = require("dap") + if not dap.adapters.kotlin then + dap.adapters.kotlin = { + type = "executable", + command = "kotlin-debug-adapter", + options = { auto_continue_if_many_stopped = false }, + } + end + + dap.configurations.kotlin = { + { + type = "kotlin", + request = "launch", + name = "This file", + -- may differ, when in doubt, whatever your project structure may be, + -- it has to correspond to the class file located at `build/classes/` + -- and of course you have to build before you debug + mainClass = function() + local root = vim.uv.cwd() + local fname = vim.api.nvim_buf_get_name(0) + fname = fname:gsub(root, "") + fname = fname:gsub("/app/src/main/kotlin/", "") + fname = fname:gsub(".kt", "Kt"):gsub("/", ".") + -- src/main/kotlin/websearch/Main.kt -> websearch.MainKt + return fname + end, + projectRoot = "${workspaceFolder}", + jsonLogFile = "", + enableJsonLogging = false, + }, + { + -- Use this for unit tests + -- First, run + -- ./gradlew --info cleanTest test --debug-jvm + -- then attach the debugger to it + type = "kotlin", + request = "attach", + name = "Attach to debugging session", + port = 5005, + args = {}, + projectRoot = vim.fn.getcwd, + hostName = "localhost", + timeout = 2000, + }, + } + end, + keys = { + { "d", "", desc = "  Debug" }, + { "dt", "lua require'dap'.toggle_breakpoint()", desc = "Toggle Breakpoint" }, + { "db", "lua require'dap'.step_back()", desc = "Step Back" }, + { "dc", "lua require'dap'.continue()", desc = "Continue" }, + { "dC", "lua require'dap'.run_to_cursor()", desc = "Run To Cursor" }, + { "dd", "lua require'dap'.disconnect()", desc = "Disconnect" }, + { "dg", "lua require'dap'.session()", desc = "Get Session" }, + { "di", "lua require'dap'.step_into()", desc = "Step Into" }, + { "do", "lua require'dap'.step_over()", desc = "Step Over" }, + { "du", "lua require'dap'.step_out()", desc = "Step Out" }, + { "dp", "lua require'dap'.pause()", desc = "Pause" }, + { "dr", "lua require'dap'.repl.toggle()", desc = "Toggle Repl" }, + { "ds", "lua require'dap'.continue()", desc = "Start" }, + { "dq", "lua require'dap'.close()", desc = "Quit" }, + { "dU", "lua require'dapui'.toggle({reset = true})", desc = "Toggle UI" }, + -- setting cek + -- https://stackoverflow.com/questions/9356543/logging-while-testing-through-gradle + { "T", "", desc = " Test" }, + { "Ta", "terminal gradle test", desc = "Run All" }, + { + "Tu", + function() + local function get_default_package() + local path = vim.fn.expand("%:p:h") + local project_root = vim.fn.getcwd() + local relative_path = path:sub(#project_root + 1) + relative_path = relative_path:gsub("app\\src\\test\\kotlin\\", "") + relative_path = relative_path:gsub("app/src/test/kotlin/", "") + relative_path = relative_path:gsub("\\", ".") + relative_path = relative_path:gsub("/", ".") + return relative_path:sub(2) + end + local curr_file = vim.fn.expand("%:t") + curr_file = curr_file:gsub("kt", "") + local current_word = "" + local input = vim.fn.getline(".") + current_word = all_trim((input:gsub("class", "")):gsub("{", "")) -- hilangkan bagian class + current_word = current_word:gsub("fun", "") + current_word = current_word:gsub("%(%)", "") + current_word = current_word:gsub("{", "") + current_word = current_word:gsub("@Test", "") + vim.cmd( + "terminal gradle test --tests " .. get_default_package() .. "." .. curr_file .. all_trim(current_word) + ) + end, + desc = "Run Under Cursor", + }, + { "rg", "terminalgradle run", desc = "Run Gradle", mode = "n" }, + }, + }, +} diff --git a/lua/pcode/plugins/nvimtree.lua b/lua/pcode/plugins/nvimtree.lua index 47a4bc4..ea7d66e 100644 --- a/lua/pcode/plugins/nvimtree.lua +++ b/lua/pcode/plugins/nvimtree.lua @@ -1,45 +1,45 @@ return { - "nvim-tree/nvim-tree.lua", - cmd = { "NvimTreeFindFileToggle", "NvimTree", "NvimTreeOpen", "NvimTreeToggle", "NvimTreeFocus", "NvimTreeClose" }, - keys = { - { "e", "NvimTreeToggle", desc = "󰙅 Explorer" }, - }, - opts = function(_, opts) - local icons = require("pcode.user.icons") - opts.disable_netrw = true - opts.hijack_cursor = true - opts.sync_root_with_cwd = true - opts.update_focused_file = { - enable = true, - update_root = false, - } - opts.view = { - adaptive_size = false, - centralize_selection = true, - width = 30, - side = "left", - preserve_window_proportions = false, - number = false, - relativenumber = false, - signcolumn = "yes", - float = { - enable = false, - quit_on_focus_loss = true, - open_win_config = { - relative = "editor", - border = "rounded", - width = 30, - height = 30, - row = 1, - col = 1, - }, - }, - } - opts.renderer = { - root_folder_label = false, - highlight_git = true, - indent_markers = { enable = true }, - --[[ indent_markers = { + "nvim-tree/nvim-tree.lua", + cmd = { "NvimTreeFindFileToggle", "NvimTree", "NvimTreeOpen", "NvimTreeToggle", "NvimTreeFocus", "NvimTreeClose" }, + keys = { + { "e", "NvimTreeToggle", desc = "󰙅 Explorer" }, + }, + opts = function(_, opts) + local icons = require("pcode.user.icons") + opts.disable_netrw = true + opts.hijack_cursor = true + opts.sync_root_with_cwd = true + opts.update_focused_file = { + enable = true, + update_root = false, + } + opts.view = { + adaptive_size = false, + centralize_selection = true, + width = 30, + side = "left", + preserve_window_proportions = false, + number = false, + relativenumber = false, + signcolumn = "yes", + float = { + enable = false, + quit_on_focus_loss = true, + open_win_config = { + relative = "editor", + border = "rounded", + width = 30, + height = 30, + row = 1, + col = 1, + }, + }, + } + opts.renderer = { + root_folder_label = false, + highlight_git = true, + indent_markers = { enable = true }, + --[[ indent_markers = { enable = true, inline_arrows = true, icons = { @@ -49,73 +49,73 @@ return { none = " ", }, }, ]] - icons = { - webdev_colors = true, - git_placement = "before", - padding = " ", - symlink_arrow = " ➛ ", - show = { - file = true, - folder = true, - folder_arrow = true, - git = true, - }, - glyphs = { - default = icons.ui.Text, - symlink = icons.ui.FileSymlink, - bookmark = icons.ui.BookMark, - folder = { - arrow_closed = icons.ui.ChevronShortRight, - arrow_open = icons.ui.ChevronShortDown, - default = icons.ui.Folder, - open = icons.ui.FolderOpen, - empty = icons.ui.EmptyFolder, - empty_open = icons.ui.EmptyFolderOpen, - symlink = icons.ui.FolderSymlink, - symlink_open = icons.ui.FolderOpen, - }, - git = { - unstaged = icons.git.FileUnstaged, - staged = icons.git.FileStaged, - unmerged = icons.git.FileUnmerged, - renamed = icons.git.FileRenamed, - untracked = icons.git.FileUntracked, - deleted = icons.git.FileDeleted, - ignored = icons.git.FileIgnored, - }, - }, - }, - special_files = { "Cargo.toml", "Makefile", "README.md", "readme.md" }, - symlink_destination = true, - } - opts.filters = { - dotfiles = false, - git_clean = false, - no_buffer = false, - custom = { "node_modules", "\\.cache", "\\.git" }, - exclude = { - ".gitignore", - ".prettierignore", - }, - } - opts.notify = { - threshold = vim.log.levels.INFO, - } - opts.git = { - enable = true, - ignore = false, - show_on_dirs = true, - show_on_open_dirs = true, - disable_for_dirs = {}, - timeout = 400, - } - return opts - end, - config = function(_, opts) - require("nvim-tree").setup(opts) - local api = require("nvim-tree.api") - api.events.subscribe(api.events.Event.FileCreated, function(file) - vim.cmd("edit " .. file.fname) - end) - end, + icons = { + webdev_colors = true, + git_placement = "before", + padding = " ", + symlink_arrow = " ➛ ", + show = { + file = true, + folder = true, + folder_arrow = true, + git = true, + }, + glyphs = { + default = icons.ui.Text, + symlink = icons.ui.FileSymlink, + bookmark = icons.ui.BookMark, + folder = { + arrow_closed = icons.ui.ChevronShortRight, + arrow_open = icons.ui.ChevronShortDown, + default = icons.ui.Folder, + open = icons.ui.FolderOpen, + empty = icons.ui.EmptyFolder, + empty_open = icons.ui.EmptyFolderOpen, + symlink = icons.ui.FolderSymlink, + symlink_open = icons.ui.FolderOpen, + }, + git = { + unstaged = icons.git.FileUnstaged, + staged = icons.git.FileStaged, + unmerged = icons.git.FileUnmerged, + renamed = icons.git.FileRenamed, + untracked = icons.git.FileUntracked, + deleted = icons.git.FileDeleted, + ignored = icons.git.FileIgnored, + }, + }, + }, + special_files = { "Cargo.toml", "Makefile", "README.md", "readme.md" }, + symlink_destination = true, + } + opts.filters = { + dotfiles = false, + git_clean = false, + no_buffer = false, + custom = { "node_modules", "\\.cache", "\\.git" }, + exclude = { + ".gitignore", + ".prettierignore", + }, + } + opts.notify = { + threshold = vim.log.levels.INFO, + } + opts.git = { + enable = true, + ignore = false, + show_on_dirs = true, + show_on_open_dirs = true, + disable_for_dirs = {}, + timeout = 400, + } + return opts + end, + config = function(_, opts) + require("nvim-tree").setup(opts) + local api = require("nvim-tree.api") + api.events.subscribe(api.events.Event.FileCreated, function(file) + vim.cmd("edit " .. file.fname) + end) + end, } diff --git a/lua/pcode/user/default.lua b/lua/pcode/user/default.lua index ada123c..967c435 100644 --- a/lua/pcode/user/default.lua +++ b/lua/pcode/user/default.lua @@ -2,15 +2,13 @@ pcode.lang = { angular = false, cpp = false, - sql = false, + sql = true, deno = false, golang = false, - java = true, - java2 = false, + java = false, java3 = false, - java4 = false, javascript = false, - kotlin = false, + kotlin = true, markdown = false, php = false, prisma = false, diff --git a/lua/pcode/user/options.lua b/lua/pcode/user/options.lua index 7f8888c..2f05021 100644 --- a/lua/pcode/user/options.lua +++ b/lua/pcode/user/options.lua @@ -61,7 +61,7 @@ vim.loader.enable() -- Disable statusline in dashboard vim.api.nvim_create_autocmd("FileType", { - pattern = { "dbout", "dbui", "http", "httpResult" }, + pattern = { "mysql", "dbout", "dbui", "http", "httpResult" }, callback = function() local opt = vim.opt opt.number = false -- Print line number