enc: add update config kotlin

This commit is contained in:
Pojok Code 2024-11-27 09:19:02 +07:00
parent 3fb9efd7c9
commit d084330d2f
8 changed files with 452 additions and 357 deletions

View file

@ -1,16 +1,13 @@
{ {
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" }, "Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
"Eva-Theme.nvim": { "branch": "master", "commit": "5e0ee05b7b803cbd781612d484b0796c45946a3d" }, "Eva-Theme.nvim": { "branch": "master", "commit": "5e0ee05b7b803cbd781612d484b0796c45946a3d" },
"FixCursorHold.nvim": { "branch": "master", "commit": "1900f89dc17c603eec29960f57c00bd9ae696495" },
"LuaSnip": { "branch": "master", "commit": "0f7bbce41ea152a94d12aea286f2ce98e63c0f58" }, "LuaSnip": { "branch": "master", "commit": "0f7bbce41ea152a94d12aea286f2ce98e63c0f58" },
"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": "v2", "commit": "0510829ee6780229efc409305b8da304a18f2754" },
"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" },
"auto-lualine.nvim": { "branch": "main", "commit": "fc8557f61dc1da12a8b90167a49420958b991d8c" }, "auto-lualine.nvim": { "branch": "main", "commit": "c889473aef975bf3b17a770dfb2039bb2a0cd41c" },
"breadcrumbs.nvim": { "branch": "master", "commit": "9f764278784ce2f10dbe2f555ba14be2451d36a0" }, "breadcrumbs.nvim": { "branch": "master", "commit": "9f764278784ce2f10dbe2f555ba14be2451d36a0" },
"bufferline.nvim": { "branch": "main", "commit": "5cc447cb2b463cb499c82eaeabbed4f5fa6a0a44" }, "bufferline.nvim": { "branch": "main", "commit": "5cc447cb2b463cb499c82eaeabbed4f5fa6a0a44" },
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
@ -20,14 +17,14 @@
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
"code_runner.nvim": { "branch": "main", "commit": "dcedccbf969a0f3bc00db446172b4966e83101dd" }, "code_runner.nvim": { "branch": "main", "commit": "dcedccbf969a0f3bc00db446172b4966e83101dd" },
"codeium.vim": { "branch": "main", "commit": "8c01979323b2b480c8bf160d3ff85bd1668baa49" }, "codeium.vim": { "branch": "main", "commit": "605ab06780c9c42a63fc8afa8c0bd02b3b51b66f" },
"conform.nvim": { "branch": "master", "commit": "023f795dbcf32d4351b6a9ed2e613d471b5bb812" }, "conform.nvim": { "branch": "master", "commit": "a203480a350b03092e473bf3001733d547160a73" },
"dressing.nvim": { "branch": "master", "commit": "fc78a3ca96f4db9f8893bb7e2fd9823e0780451b" }, "dressing.nvim": { "branch": "master", "commit": "fc78a3ca96f4db9f8893bb7e2fd9823e0780451b" },
"friendly-snippets": { "branch": "main", "commit": "de8fce94985873666bd9712ea3e49ee17aadb1ed" }, "friendly-snippets": { "branch": "main", "commit": "de8fce94985873666bd9712ea3e49ee17aadb1ed" },
"gitsigns.nvim": { "branch": "main", "commit": "ac5aba6dce8c06ea22bea2c9016f51a2dbf90dc7" }, "gitsigns.nvim": { "branch": "main", "commit": "5f808b5e4fef30bd8aca1b803b4e555da07fc412" },
"inc-rename.nvim": { "branch": "main", "commit": "8ba77017ca468f3029bf88ef409c2d20476ea66b" }, "inc-rename.nvim": { "branch": "main", "commit": "b0d5b5bdd0a91eb47ff4a49b250bdc5a5eb45353" },
"indent-blankline.nvim": { "branch": "master", "commit": "7871a88056f7144defca9c931e311a3134c5d509" }, "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" }, "lualine.nvim": { "branch": "master", "commit": "2a5bae925481f999263d6f5ed8361baef8df4f83" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "43894adcf10bb1190c2184bd7c1750e8ea2b3dce" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "43894adcf10bb1190c2184bd7c1750e8ea2b3dce" },
"mason-nvim-dap.nvim": { "branch": "main", "commit": "8b9363d83b5d779813cdd2819b8308651cec2a09" }, "mason-nvim-dap.nvim": { "branch": "main", "commit": "8b9363d83b5d779813cdd2819b8308651cec2a09" },
@ -35,44 +32,42 @@
"menu": { "branch": "main", "commit": "657bfc91382c0928453d9a4d0a10ec92db5de2bb" }, "menu": { "branch": "main", "commit": "657bfc91382c0928453d9a4d0a10ec92db5de2bb" },
"mini.indentscope": { "branch": "main", "commit": "da9af64649e114aa79480c238fd23f6524bc0903" }, "mini.indentscope": { "branch": "main", "commit": "da9af64649e114aa79480c238fd23f6524bc0903" },
"minty": { "branch": "main", "commit": "b454ca0229f8e22a631fd3c014ec99973fb8cad4" }, "minty": { "branch": "main", "commit": "b454ca0229f8e22a631fd3c014ec99973fb8cad4" },
"neotest": { "branch": "master", "commit": "6d3d22cdad49999ef774ebe1bc250a4994038964" }, "noice.nvim": { "branch": "main", "commit": "c6f6fb178ebe9b4fd90383de743c3399f8c3a37c" },
"neotest-java": { "branch": "main", "commit": "320f31c71b183f2c584198f33f93542fd0e5a768" },
"noice.nvim": { "branch": "main", "commit": "203f74adaae11d47440a667555b4af9156be807b" },
"nui.nvim": { "branch": "main", "commit": "b58e2bfda5cea347c9d58b7f11cf3012c7b3953f" }, "nui.nvim": { "branch": "main", "commit": "b58e2bfda5cea347c9d58b7f11cf3012c7b3953f" },
"nvim-autopairs": { "branch": "master", "commit": "b464658e9b880f463b9f7e6ccddd93fb0013f559" }, "nvim-autopairs": { "branch": "master", "commit": "b464658e9b880f463b9f7e6ccddd93fb0013f559" },
"nvim-cmp": { "branch": "main", "commit": "f17d9b4394027ff4442b298398dfcaab97e40c4f" }, "nvim-cmp": { "branch": "main", "commit": "ed31156aa2cc14e3bc066c59357cc91536a2bc01" },
"nvim-colorizer.lua": { "branch": "master", "commit": "4b7fba6eae15668098ea8835da1edb670f612431" }, "nvim-colorizer.lua": { "branch": "master", "commit": "4acf88d31b3a7a1a7f31e9c30bf2b23c6313abdb" },
"nvim-dap": { "branch": "master", "commit": "cc92b054720a96170eca6bd9bdedd43d2b0a7a8a" }, "nvim-dap": { "branch": "master", "commit": "cc92b054720a96170eca6bd9bdedd43d2b0a7a8a" },
"nvim-dap-ui": { "branch": "master", "commit": "ffa89839f97bad360e78428d5c740fdad9a0ff02" }, "nvim-dap-ui": { "branch": "master", "commit": "ffa89839f97bad360e78428d5c740fdad9a0ff02" },
"nvim-dap-virtual-text": { "branch": "master", "commit": "76d80c3d171224315b61c006502a1e30c213a9ab" }, "nvim-dap-virtual-text": { "branch": "master", "commit": "76d80c3d171224315b61c006502a1e30c213a9ab" },
"nvim-jdtls": { "branch": "master", "commit": "c4279b8ffce9b64eb302056d78dfebc2968a49bc" }, "nvim-lint": { "branch": "master", "commit": "6b46370d02cd001509a765591a3ffc481b538794" },
"nvim-lint": { "branch": "master", "commit": "8e9562de7261e5b862c631958df616e1a65552cd" }, "nvim-lspconfig": { "branch": "master", "commit": "65f02d8e4b66db9ec99618c43233963545b70298" },
"nvim-lspconfig": { "branch": "master", "commit": "f012c1b176f0e3c71f40eb309bdec0316689462e" },
"nvim-material-icon": { "branch": "main", "commit": "38fc13fe4811c4bf62533180ff5e7bbd237c5ef5" }, "nvim-material-icon": { "branch": "main", "commit": "38fc13fe4811c4bf62533180ff5e7bbd237c5ef5" },
"nvim-navic": { "branch": "master", "commit": "8649f694d3e76ee10c19255dece6411c29206a54" }, "nvim-navic": { "branch": "master", "commit": "8649f694d3e76ee10c19255dece6411c29206a54" },
"nvim-nio": { "branch": "master", "commit": "a428f309119086dc78dd4b19306d2d67be884eee" }, "nvim-nio": { "branch": "master", "commit": "a428f309119086dc78dd4b19306d2d67be884eee" },
"nvim-notify": { "branch": "master", "commit": "fbef5d32be8466dd76544a257d3f3dce20082a07" }, "nvim-notify": { "branch": "master", "commit": "fbef5d32be8466dd76544a257d3f3dce20082a07" },
"nvim-scrollview": { "branch": "main", "commit": "f7f611330a8f7cd00dc81538fec369611be678ed" }, "nvim-scrollview": { "branch": "main", "commit": "4d60c594d78e97189c1e38720e74f13c6f5c311f" },
"nvim-tree.lua": { "branch": "master", "commit": "f7c65e11d695a084ca10b93df659bb7e68b71f9f" }, "nvim-tree.lua": { "branch": "master", "commit": "ca7c4c33cac2ad66ec69d45e465379716ef0cc97" },
"nvim-treesitter": { "branch": "master", "commit": "37427012d1c77c544356bfff0c9acc88fd3256bc" }, "nvim-treesitter": { "branch": "master", "commit": "28591731d84c2fc18ddda60e1d53da24c31c4987" },
"nvim-ts-autotag": { "branch": "main", "commit": "e239a560f338be31337e7abc3ee42515daf23f5e" }, "nvim-ts-autotag": { "branch": "main", "commit": "e239a560f338be31337e7abc3ee42515daf23f5e" },
"nvim-ts-context-commentstring": { "branch": "main", "commit": "9c74db656c3d0b1c4392fc89a016b1910539e7c0" }, "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" }, "plenary.nvim": { "branch": "master", "commit": "2d9b06177a975543726ce5c73fca176cedbffe9d" },
"project.nvim": { "branch": "main", "commit": "9cc719f455295e7a2fc7340d4fd87327f3fe15ca" }, "rainbow-delimiters.nvim": { "branch": "master", "commit": "d803ba7668ba390aa4cfd3580183c982cac36fd8" },
"rainbow-delimiters.nvim": { "branch": "master", "commit": "f22496dfdd46da4d571f5254c72eff65ff5a1c27" }, "refactoring.nvim": { "branch": "master", "commit": "2db6d378e873de31d18ade549c2edba64ff1c2e3" },
"refactoring.nvim": { "branch": "master", "commit": "53ed6854e0bba64d467c58e87084dcf8b1c22d36" }, "smart-splits.nvim": { "branch": "master", "commit": "d8b0e772a0244169534b1fd57c1660c9bf323d26" },
"smart-splits.nvim": { "branch": "master", "commit": "5910b386aca2ea7adb63812ba43815b1d97b37ad" },
"symbols-outline.nvim": { "branch": "master", "commit": "964c5902243446124417a3a9e9454f5ef032cc36" },
"telescope-treesitter-info.nvim": { "branch": "master", "commit": "4bed952c3c33015c4402007f179b478843d5aa3b" }, "telescope-treesitter-info.nvim": { "branch": "master", "commit": "4bed952c3c33015c4402007f179b478843d5aa3b" },
"telescope.nvim": { "branch": "master", "commit": "85922dde3767e01d42a08e750a773effbffaea3e" }, "telescope.nvim": { "branch": "master", "commit": "85922dde3767e01d42a08e750a773effbffaea3e" },
"tiny-devicons-auto-colors.nvim": { "branch": "main", "commit": "a39fa4c92268832f6034306793b8acbfec2a7549" }, "tiny-devicons-auto-colors.nvim": { "branch": "main", "commit": "a39fa4c92268832f6034306793b8acbfec2a7549" },
"toggleterm.nvim": { "branch": "main", "commit": "87b2d6a3cab8e2bd9a0255427074285f0365398d" }, "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-illuminate": { "branch": "master", "commit": "5eeb7951fc630682c322e88a9bbdae5c224ff0aa" },
"vim-visual-multi": { "branch": "master", "commit": "a6975e7c1ee157615bbc80fc25e4392f71c344d4" }, "vim-visual-multi": { "branch": "master", "commit": "a6975e7c1ee157615bbc80fc25e4392f71c344d4" },
"virt-column.nvim": { "branch": "master", "commit": "b87e3e0864211a32724a2ebf3be37e24e9e2fa99" }, "virt-column.nvim": { "branch": "master", "commit": "b87e3e0864211a32724a2ebf3be37e24e9e2fa99" },
"volt": { "branch": "main", "commit": "a36c576baae487634151377f601bf3f5de355f5a" }, "volt": { "branch": "main", "commit": "8d35e03c70490190149a77c59155618ef4370721" },
"which-key.nvim": { "branch": "main", "commit": "68e37e12913a66b60073906f5d3f14dee0de19f2" }, "which-key.nvim": { "branch": "main", "commit": "b9684c6ec54d8a8452bdcf0d613c7ad0223fc3fe" },
"yanky.nvim": { "branch": "main", "commit": "f9b905994cccf3c55f41af3a0a1f4c76c844e411" }, "yanky.nvim": { "branch": "main", "commit": "f9b905994cccf3c55f41af3a0a1f4c76c844e411" },
"zen-mode.nvim": { "branch": "main", "commit": "29b292bdc58b76a6c8f294c961a8bf92c5a6ebd6" } "zen-mode.nvim": { "branch": "main", "commit": "29b292bdc58b76a6c8f294c961a8bf92c5a6ebd6" }
} }

View file

@ -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 = {
{ "<leader>rg", "", desc = "Gradle" },
{ "<leader>rgp", "<cmd>JavaProfile<cr>", desc = "Java Profile" },
{ "<leader>rgg", "<cmd>terminal<cr>gradle run<cr>", desc = "Run Gradle" },
{ "<leader>rgb", "<cmd>JavaBuildBuildWorkspace<cr>", desc = "Java Build Workspace" },
{ "<leader>rgd", "<cmd>JavaDapConfig<cr>", desc = "Java Configure DAP" },
{ "<leader>T", "", desc = "Test" },
{ "<leader>Tc", "<cmd>JavaTestRunCurrentClass<cr>", desc = "Test Current Class" },
{ "<leader>Tm", "<cmd>JavaTestRunCurrentMethod<cr>", desc = "Test Current Method" },
{ "<leader>Th", "<cmd>JavaTestViewLastReport<cr>", desc = "View Test Last Report" },
},
}

View file

@ -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",
},
},
}

View file

@ -1,136 +1,168 @@
return { local function get_default_package()
-- install treesitter local curr_file = vim.fn.expand("%:t")
{ curr_file = curr_file:gsub(".kt", "")
"nvim-treesitter/nvim-treesitter", local path = vim.fn.expand("%:p:h")
opts = function(_, opts) local project_root = vim.fn.getcwd()
opts.ensure_installed = opts.ensure_installed or {} local relative_path = path:sub(#project_root + 1)
vim.list_extend(opts.ensure_installed, { "kotlin" }) relative_path = relative_path:gsub("app\\src\\test\\kotlin\\", "")
end, relative_path = relative_path:gsub("app/src/test/kotlin/", "")
}, relative_path = relative_path:gsub("\\", ".")
{ relative_path = relative_path:gsub("/", ".")
"williamboman/mason-lspconfig.nvim", return relative_path:sub(2) .. "." .. curr_file
opts = function(_, opts) end
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 = { return {
{ -- install treesitter
type = "kotlin", {
request = "launch", "nvim-treesitter/nvim-treesitter",
name = "This file", opts = function(_, opts)
-- may differ, when in doubt, whatever your project structure may be, opts.ensure_installed = opts.ensure_installed or {}
-- it has to correspond to the class file located at `build/classes/` vim.list_extend(opts.ensure_installed, { "kotlin" })
-- and of course you have to build before you debug end,
mainClass = function() },
local root = vim.uv.cwd() {
local fname = vim.api.nvim_buf_get_name(0) "williamboman/mason-lspconfig.nvim",
fname = fname:gsub(root, "") opts = function(_, opts)
fname = fname:gsub("/app/src/main/kotlin/", "") opts.ensure_installed = opts.ensure_installed or {}
fname = fname:gsub(".kt", "Kt"):gsub("/", ".") vim.list_extend(opts.ensure_installed, { "kotlin_language_server" })
-- src/main/kotlin/websearch/Main.kt -> websearch.MainKt end,
return fname },
end, {
projectRoot = "${workspaceFolder}", "pojokcodeid/auto-conform.nvim",
jsonLogFile = "", event = "VeryLazy",
enableJsonLogging = false, opts = function(_, opts)
}, opts.formatters_by_ft = opts.formatters_by_ft or {}
{ local package = "ktfmt"
-- Use this for unit tests vim.list_extend(opts.ensure_installed, { package })
-- First, run opts.formatters_by_ft.kotlin = { package }
-- ./gradlew --info cleanTest test --debug-jvm end,
-- then attach the debugger to it },
type = "kotlin", {
request = "attach", "pojokcodeid/auto-lint.nvim",
name = "Attach to debugging session", optional = true,
port = 5005, opts = function(_, opts)
args = {}, opts.linters_by_ft = opts.linters_by_ft or {}
projectRoot = vim.fn.getcwd, vim.list_extend(opts.ensure_installed, { "ktlint" })
hostName = "localhost", opts.linters_by_ft.kotlin = { "ktlint" }
timeout = 2000, end,
}, },
} {
end, "mason.nvim",
keys = { opts = {
{ "<leader>d", "", desc = "  Debug" }, ensure_installed = { "kotlin-debug-adapter" },
{ "<leader>dt", "<cmd>lua require'dap'.toggle_breakpoint()<cr>", desc = "Toggle Breakpoint" }, },
{ "<leader>db", "<cmd>lua require'dap'.step_back()<cr>", desc = "Step Back" }, },
{ "<leader>dc", "<cmd>lua require'dap'.continue()<cr>", desc = "Continue" }, {
{ "<leader>dC", "<cmd>lua require'dap'.run_to_cursor()<cr>", desc = "Run To Cursor" }, "rcarriga/nvim-dap-ui",
{ "<leader>dd", "<cmd>lua require'dap'.disconnect()<cr>", desc = "Disconnect" }, lazy = true,
{ "<leader>dg", "<cmd>lua require'dap'.session()<cr>", desc = "Get Session" }, event = "BufRead",
{ "<leader>di", "<cmd>lua require'dap'.step_into()<cr>", desc = "Step Into" }, dependencies = {
{ "<leader>do", "<cmd>lua require'dap'.step_over()<cr>", desc = "Step Over" }, { "mfussenegger/nvim-dap", lazy = true },
{ "<leader>du", "<cmd>lua require'dap'.step_out()<cr>", desc = "Step Out" }, { "nvim-neotest/nvim-nio", lazy = true },
{ "<leader>dp", "<cmd>lua require'dap'.pause()<cr>", desc = "Pause" }, },
{ "<leader>dr", "<cmd>lua require'dap'.repl.toggle()<cr>", desc = "Toggle Repl" }, opts = function()
{ "<leader>ds", "<cmd>lua require'dap'.continue()<cr>", desc = "Start" }, require("pcode.user.dapui")
{ "<leader>dq", "<cmd>lua require'dap'.close()<cr>", desc = "Quit" }, local dap = require("dap")
{ "<leader>dU", "<cmd>lua require'dapui'.toggle({reset = true})<cr>", desc = "Toggle UI" }, if not dap.adapters.kotlin then
-- setting cek dap.adapters.kotlin = {
-- https://stackoverflow.com/questions/9356543/logging-while-testing-through-gradle type = "executable",
{ "<leader>T", "", desc = " Test" }, command = "kotlin-debug-adapter",
{ "<leader>Ta", "<cmd>terminal gradle test<cr>", desc = "Run All" }, options = { auto_continue_if_many_stopped = false },
{ }
"<leader>Tu", end
function()
-- local current_word = vim.fn.expand("<cword>") dap.configurations.kotlin = {
local current_word = "" {
local input = vim.fn.getline(".") type = "kotlin",
current_word = all_trim((input:gsub("class", "")):gsub("{", "")) -- hilangkan bagian class request = "launch",
current_word = current_word:gsub("fun", "") name = "This file",
current_word = current_word:gsub("%(%)", "") -- may differ, when in doubt, whatever your project structure may be,
current_word = current_word:gsub("{", "") -- it has to correspond to the class file located at `build/classes/`
current_word = current_word:gsub("@Test", "") -- and of course you have to build before you debug
vim.cmd("terminal gradle test --tests *." .. all_trim(current_word)) mainClass = function()
end, local root = vim.uv.cwd()
desc = "Run Under Cursor", local fname = vim.api.nvim_buf_get_name(0)
}, fname = fname:gsub(root, "")
{ "<leader>rg", "<cmd>terminal<cr>gradle run<cr>", desc = "Run Gradle", mode = "n" }, 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 = {
{ "<leader>d", "", desc = "  Debug" },
{ "<leader>dt", "<cmd>lua require'dap'.toggle_breakpoint()<cr>", desc = "Toggle Breakpoint" },
{ "<leader>db", "<cmd>lua require'dap'.step_back()<cr>", desc = "Step Back" },
{ "<leader>dc", "<cmd>lua require'dap'.continue()<cr>", desc = "Continue" },
{ "<leader>dC", "<cmd>lua require'dap'.run_to_cursor()<cr>", desc = "Run To Cursor" },
{ "<leader>dd", "<cmd>lua require'dap'.disconnect()<cr>", desc = "Disconnect" },
{ "<leader>dg", "<cmd>lua require'dap'.session()<cr>", desc = "Get Session" },
{ "<leader>di", "<cmd>lua require'dap'.step_into()<cr>", desc = "Step Into" },
{ "<leader>do", "<cmd>lua require'dap'.step_over()<cr>", desc = "Step Over" },
{ "<leader>du", "<cmd>lua require'dap'.step_out()<cr>", desc = "Step Out" },
{ "<leader>dp", "<cmd>lua require'dap'.pause()<cr>", desc = "Pause" },
{ "<leader>dr", "<cmd>lua require'dap'.repl.toggle()<cr>", desc = "Toggle Repl" },
{ "<leader>ds", "<cmd>lua require'dap'.continue()<cr>", desc = "Start" },
{ "<leader>dq", "<cmd>lua require'dap'.close()<cr>", desc = "Quit" },
{ "<leader>dU", "<cmd>lua require'dapui'.toggle({reset = true})<cr>", desc = "Toggle UI" },
-- setting cek
-- https://stackoverflow.com/questions/9356543/logging-while-testing-through-gradle
{ "<leader>T", "", desc = " Test" },
{ "<leader>Ta", "<cmd>terminal gradle test<cr>", desc = "Run All" },
{
"<leader>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",
},
{
"<leader>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",
},
{ "<leader>rg", "<cmd>terminal<cr>gradle run<cr>", desc = "Run Gradle", mode = "n" },
},
},
} }

View file

@ -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 = {
{ "<leader>d", "", desc = "  Debug" },
{ "<leader>dt", "<cmd>lua require'dap'.toggle_breakpoint()<cr>", desc = "Toggle Breakpoint" },
{ "<leader>db", "<cmd>lua require'dap'.step_back()<cr>", desc = "Step Back" },
{ "<leader>dc", "<cmd>lua require'dap'.continue()<cr>", desc = "Continue" },
{ "<leader>dC", "<cmd>lua require'dap'.run_to_cursor()<cr>", desc = "Run To Cursor" },
{ "<leader>dd", "<cmd>lua require'dap'.disconnect()<cr>", desc = "Disconnect" },
{ "<leader>dg", "<cmd>lua require'dap'.session()<cr>", desc = "Get Session" },
{ "<leader>di", "<cmd>lua require'dap'.step_into()<cr>", desc = "Step Into" },
{ "<leader>do", "<cmd>lua require'dap'.step_over()<cr>", desc = "Step Over" },
{ "<leader>du", "<cmd>lua require'dap'.step_out()<cr>", desc = "Step Out" },
{ "<leader>dp", "<cmd>lua require'dap'.pause()<cr>", desc = "Pause" },
{ "<leader>dr", "<cmd>lua require'dap'.repl.toggle()<cr>", desc = "Toggle Repl" },
{ "<leader>ds", "<cmd>lua require'dap'.continue()<cr>", desc = "Start" },
{ "<leader>dq", "<cmd>lua require'dap'.close()<cr>", desc = "Quit" },
{ "<leader>dU", "<cmd>lua require'dapui'.toggle({reset = true})<cr>", desc = "Toggle UI" },
-- setting cek
-- https://stackoverflow.com/questions/9356543/logging-while-testing-through-gradle
{ "<leader>T", "", desc = " Test" },
{ "<leader>Ta", "<cmd>terminal gradle test<cr>", desc = "Run All" },
{
"<leader>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",
},
{ "<leader>rg", "<cmd>terminal<cr>gradle run<cr>", desc = "Run Gradle", mode = "n" },
},
},
}

View file

@ -1,45 +1,45 @@
return { return {
"nvim-tree/nvim-tree.lua", "nvim-tree/nvim-tree.lua",
cmd = { "NvimTreeFindFileToggle", "NvimTree", "NvimTreeOpen", "NvimTreeToggle", "NvimTreeFocus", "NvimTreeClose" }, cmd = { "NvimTreeFindFileToggle", "NvimTree", "NvimTreeOpen", "NvimTreeToggle", "NvimTreeFocus", "NvimTreeClose" },
keys = { keys = {
{ "<leader>e", "<cmd>NvimTreeToggle<cr>", desc = "󰙅 Explorer" }, { "<leader>e", "<cmd>NvimTreeToggle<cr>", desc = "󰙅 Explorer" },
}, },
opts = function(_, opts) opts = function(_, opts)
local icons = require("pcode.user.icons") local icons = require("pcode.user.icons")
opts.disable_netrw = true opts.disable_netrw = true
opts.hijack_cursor = true opts.hijack_cursor = true
opts.sync_root_with_cwd = true opts.sync_root_with_cwd = true
opts.update_focused_file = { opts.update_focused_file = {
enable = true, enable = true,
update_root = false, update_root = false,
} }
opts.view = { opts.view = {
adaptive_size = false, adaptive_size = false,
centralize_selection = true, centralize_selection = true,
width = 30, width = 30,
side = "left", side = "left",
preserve_window_proportions = false, preserve_window_proportions = false,
number = false, number = false,
relativenumber = false, relativenumber = false,
signcolumn = "yes", signcolumn = "yes",
float = { float = {
enable = false, enable = false,
quit_on_focus_loss = true, quit_on_focus_loss = true,
open_win_config = { open_win_config = {
relative = "editor", relative = "editor",
border = "rounded", border = "rounded",
width = 30, width = 30,
height = 30, height = 30,
row = 1, row = 1,
col = 1, col = 1,
}, },
}, },
} }
opts.renderer = { opts.renderer = {
root_folder_label = false, root_folder_label = false,
highlight_git = true, highlight_git = true,
indent_markers = { enable = true }, indent_markers = { enable = true },
--[[ indent_markers = { --[[ indent_markers = {
enable = true, enable = true,
inline_arrows = true, inline_arrows = true,
icons = { icons = {
@ -49,73 +49,73 @@ return {
none = " ", none = " ",
}, },
}, ]] }, ]]
icons = { icons = {
webdev_colors = true, webdev_colors = true,
git_placement = "before", git_placement = "before",
padding = " ", padding = " ",
symlink_arrow = "", symlink_arrow = "",
show = { show = {
file = true, file = true,
folder = true, folder = true,
folder_arrow = true, folder_arrow = true,
git = true, git = true,
}, },
glyphs = { glyphs = {
default = icons.ui.Text, default = icons.ui.Text,
symlink = icons.ui.FileSymlink, symlink = icons.ui.FileSymlink,
bookmark = icons.ui.BookMark, bookmark = icons.ui.BookMark,
folder = { folder = {
arrow_closed = icons.ui.ChevronShortRight, arrow_closed = icons.ui.ChevronShortRight,
arrow_open = icons.ui.ChevronShortDown, arrow_open = icons.ui.ChevronShortDown,
default = icons.ui.Folder, default = icons.ui.Folder,
open = icons.ui.FolderOpen, open = icons.ui.FolderOpen,
empty = icons.ui.EmptyFolder, empty = icons.ui.EmptyFolder,
empty_open = icons.ui.EmptyFolderOpen, empty_open = icons.ui.EmptyFolderOpen,
symlink = icons.ui.FolderSymlink, symlink = icons.ui.FolderSymlink,
symlink_open = icons.ui.FolderOpen, symlink_open = icons.ui.FolderOpen,
}, },
git = { git = {
unstaged = icons.git.FileUnstaged, unstaged = icons.git.FileUnstaged,
staged = icons.git.FileStaged, staged = icons.git.FileStaged,
unmerged = icons.git.FileUnmerged, unmerged = icons.git.FileUnmerged,
renamed = icons.git.FileRenamed, renamed = icons.git.FileRenamed,
untracked = icons.git.FileUntracked, untracked = icons.git.FileUntracked,
deleted = icons.git.FileDeleted, deleted = icons.git.FileDeleted,
ignored = icons.git.FileIgnored, ignored = icons.git.FileIgnored,
}, },
}, },
}, },
special_files = { "Cargo.toml", "Makefile", "README.md", "readme.md" }, special_files = { "Cargo.toml", "Makefile", "README.md", "readme.md" },
symlink_destination = true, symlink_destination = true,
} }
opts.filters = { opts.filters = {
dotfiles = false, dotfiles = false,
git_clean = false, git_clean = false,
no_buffer = false, no_buffer = false,
custom = { "node_modules", "\\.cache", "\\.git" }, custom = { "node_modules", "\\.cache", "\\.git" },
exclude = { exclude = {
".gitignore", ".gitignore",
".prettierignore", ".prettierignore",
}, },
} }
opts.notify = { opts.notify = {
threshold = vim.log.levels.INFO, threshold = vim.log.levels.INFO,
} }
opts.git = { opts.git = {
enable = true, enable = true,
ignore = false, ignore = false,
show_on_dirs = true, show_on_dirs = true,
show_on_open_dirs = true, show_on_open_dirs = true,
disable_for_dirs = {}, disable_for_dirs = {},
timeout = 400, timeout = 400,
} }
return opts return opts
end, end,
config = function(_, opts) config = function(_, opts)
require("nvim-tree").setup(opts) require("nvim-tree").setup(opts)
local api = require("nvim-tree.api") local api = require("nvim-tree.api")
api.events.subscribe(api.events.Event.FileCreated, function(file) api.events.subscribe(api.events.Event.FileCreated, function(file)
vim.cmd("edit " .. file.fname) vim.cmd("edit " .. file.fname)
end) end)
end, end,
} }

View file

@ -2,15 +2,13 @@
pcode.lang = { pcode.lang = {
angular = false, angular = false,
cpp = false, cpp = false,
sql = false, sql = true,
deno = false, deno = false,
golang = false, golang = false,
java = true, java = false,
java2 = false,
java3 = false, java3 = false,
java4 = false,
javascript = false, javascript = false,
kotlin = false, kotlin = true,
markdown = false, markdown = false,
php = false, php = false,
prisma = false, prisma = false,

View file

@ -61,7 +61,7 @@ vim.loader.enable()
-- Disable statusline in dashboard -- Disable statusline in dashboard
vim.api.nvim_create_autocmd("FileType", { vim.api.nvim_create_autocmd("FileType", {
pattern = { "dbout", "dbui", "http", "httpResult" }, pattern = { "mysql", "dbout", "dbui", "http", "httpResult" },
callback = function() callback = function()
local opt = vim.opt local opt = vim.opt
opt.number = false -- Print line number opt.number = false -- Print line number