diff --git a/lazy-lock.json b/lazy-lock.json index 2249682..81e0300 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -21,7 +21,7 @@ "lazy.nvim": { "branch": "main", "commit": "8077428e63feb0f3bf795d53b23ba1695b28ab0e" }, "live-server": { "branch": "main", "commit": "ecd7c1418823b65dd2bca710587c80afe42c973e" }, "lualine.nvim": { "branch": "master", "commit": "e99d733e0213ceb8f548ae6551b04ae32e590c80" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "93e58e100f37ef4fb0f897deeed20599dae9d128" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "3f9c0ea157e88b08e2d11ec65002eeb6e421f0da" }, "mason-null-ls.nvim": { "branch": "main", "commit": "29ce60f9a16fef3de682a9365ef635f24ae92bf9" }, "mason.nvim": { "branch": "main", "commit": "01dfdfd36be77cb1195b60d580315bf4e2d8e62c" }, "material.nvim": { "branch": "main", "commit": "c5f6a24d526a8ddcd651c5d1291de89a51f923fa" }, @@ -31,7 +31,7 @@ "null-ls.nvim": { "branch": "main", "commit": "689cdd78f70af20a37b5309ebc287ac645ae4f76" }, "nvim-autopairs": { "branch": "master", "commit": "4fc96c8f3df89b6d23e5092d31c866c53a346347" }, "nvim-cmp": { "branch": "main", "commit": "7a3b1e76f74934b12fda82158237c6ad8bfd3d40" }, - "nvim-colorizer.lua": { "branch": "master", "commit": "550332c5791c6cad6fc7a80c26104de1d00b4692" }, + "nvim-colorizer.lua": { "branch": "master", "commit": "afbcc17d1279180db28a58044dca39b6e909c6b9" }, "nvim-lsp-installer": { "branch": "main", "commit": "17e0bfa5f2c8854d1636fcd036dc8284db136baa" }, "nvim-lspconfig": { "branch": "master", "commit": "255e07ce2a05627d482d2de77308bba51b90470c" }, "nvim-navic": { "branch": "master", "commit": "7e9d2b2b601149fecdccd11b516acb721e571fe6" }, diff --git a/lua/plugin_custom/clangd.lua b/lua/plugin_custom/clangd.lua new file mode 100644 index 0000000..a254462 --- /dev/null +++ b/lua/plugin_custom/clangd.lua @@ -0,0 +1,16 @@ +return { + "p00f/clangd_extensions.nvim", + dependencies = { "mason-lspconfig.nvim" }, + event = "BufRead", + config = function() + require("clangd_extensions").setup({ + server = { + on_attach = require("user.lsp.handlers").on_attach, + capabilities = { + offsetEncoding = "utf-8", + require("user.lsp.handlers").capabilities, + }, + }, + }) + end, +} diff --git a/lua/plugin_custom/dapui.lua b/lua/plugin_custom/dapui.lua new file mode 100644 index 0000000..28ba57c --- /dev/null +++ b/lua/plugin_custom/dapui.lua @@ -0,0 +1,10 @@ +return { + -- ini contoh override plugins + -- "rcarriga/nvim-dap-ui", + -- event = "BufWinEnter", + -- dependencies = "mfussenegger/nvim-dap", + -- enabled = vim.fn.has("win32") == 0, + -- config = function() + -- require("user.dapui") + -- end, +} diff --git a/lua/plugin_custom/denols.lua b/lua/plugin_custom/denols.lua new file mode 100644 index 0000000..8955c98 --- /dev/null +++ b/lua/plugin_custom/denols.lua @@ -0,0 +1,13 @@ +return { + "sigmasd/deno-nvim", + event = "BufRead", + dependencies = { "mason-lspconfig.nvim" }, + config = function() + require("deno-nvim").setup({ + server = { + on_attach = require("user.lsp.handlers").on_attach, + capabilities = require("user.lsp.handlers").capabilities, + }, + }) + end, +} diff --git a/lua/plugin_custom/flutter-tools.lua b/lua/plugin_custom/flutter-tools.lua new file mode 100644 index 0000000..19f0edb --- /dev/null +++ b/lua/plugin_custom/flutter-tools.lua @@ -0,0 +1,22 @@ +return { + "akinsho/flutter-tools.nvim", + dependencies = { "mason-lspconfig.nvim", "nvim-lua/plenary.nvim" }, + event = "BufRead", + config = function() + require("flutter-tools").setup({ + server = { + color = { + enabled = true, + }, + settings = { + showTodos = true, + completeFunctionCalls = true, + }, + on_attach = require("user.lsp.handlers").on_attach, + capabilities = { + require("user.lsp.handlers").capabilities, + }, + }, + }) + end, +} diff --git a/lua/plugin_custom/init.lua b/lua/plugin_custom/init.lua new file mode 100644 index 0000000..3680bd6 --- /dev/null +++ b/lua/plugin_custom/init.lua @@ -0,0 +1,14 @@ +-- custom plugins disini +return { + { "nvim-treesitter/nvim-treesitter" }, + --- masukan plugin tambahan disini + { "folke/trouble.nvim", enabled = false }, -- ini untuk disable plugin + -- contoh custom color scheme + -- { + -- "folke/tokyonight.nvim", + -- event = "BufWinEnter", + -- config = function() + -- vim.cmd([[colorscheme tokyonight-night]]) + -- end, + -- }, +} diff --git a/lua/plugin_custom/rust-analizer.lua b/lua/plugin_custom/rust-analizer.lua new file mode 100644 index 0000000..6353644 --- /dev/null +++ b/lua/plugin_custom/rust-analizer.lua @@ -0,0 +1,107 @@ +return { + "simrat39/rust-tools.nvim", + event = "BufRead", + dependencies = { + "mason-lspconfig.nvim", + { + "saecki/crates.nvim", + tag = "v0.3.0", + dependencies = { "nvim-lua/plenary.nvim" }, + config = function() + require("crates").setup({ + null_ls = { + enabled = true, + name = "crates.nvim", + }, + popup = { + border = "rounded", + }, + }) + end, + }, + }, + config = function() + local mason_path = vim.fn.glob(vim.fn.stdpath("data") .. "/mason/") + local codelldb_adapter = { + type = "server", + port = "${port}", + executable = { + command = mason_path .. "bin/codelldb", + args = { "--port", "${port}" }, + -- On windows you may have to uncomment this: + -- detached = false, + }, + } + + local rt = require("rust-tools") + rt.setup({ + tools = { + executor = require("rust-tools/executors").termopen, -- can be quickfix or termopen + reload_workspace_from_cargo_toml = true, + runnables = { + use_telescope = true, + }, + inlay_hints = { + auto = true, + only_current_line = false, + show_parameter_hints = false, + parameter_hints_prefix = "<-", + other_hints_prefix = "=>", + max_len_align = false, + max_len_align_padding = 1, + right_align = false, + right_align_padding = 7, + highlight = "Comment", + }, + hover_actions = { + border = "rounded", + }, + on_initialized = function() + vim.api.nvim_create_autocmd({ "BufWritePost", "BufEnter", "CursorHold", "InsertLeave" }, { + pattern = { "*.rs" }, + callback = function() + local _, _ = pcall(vim.lsp.codelens.refresh) + end, + }) + end, + }, + dap = { + adapter = codelldb_adapter, + }, + server = { + on_attach = function(client, bufnr) + require("user.lsp.handlers").on_attach(client, bufnr) + local rt = require("rust-tools") + vim.keymap.set("n", "K", rt.hover_actions.hover_actions, { buffer = bufnr }) + end, + capabilities = require("user.lsp.handlers").capabilities, + settings = { + ["rust-analyzer"] = { + lens = { + enable = true, + }, + checkOnSave = { + enable = true, + command = "clippy", + }, + }, + }, + }, + }) + local dap = require("dap") + dap.adapters.codelldb = codelldb_adapter + dap.configurations.rust = { + { + name = "Launch file", + type = "codelldb", + request = "launch", + program = function() + return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/", "file") + end, + cwd = "${workspaceFolder}", + stopOnEntry = false, + }, + } + vim.api.nvim_set_keymap("n", "", "RustOpenExternalDocs", { noremap = true, silent = true }) + end, +} diff --git a/lua/plugin_custom/typecript.lua b/lua/plugin_custom/typecript.lua new file mode 100644 index 0000000..2d4710a --- /dev/null +++ b/lua/plugin_custom/typecript.lua @@ -0,0 +1,18 @@ +return { + "jose-elias-alvarez/typescript.nvim", + event = "BufRead", + dependencies = { "mason-lspconfig.nvim" }, + config = function() + require("typescript").setup({ + disable_commands = false, -- prevent the plugin from creating Vim commands + debug = false, -- enable debug logging for commands + go_to_source_definition = { + fallback = true, -- fall back to standard LSP definition on failure + }, + server = { -- pass options to lspconfig's setup method + on_attach = require("user.lsp.handlers").on_attach, + capabilities = require("user.lsp.handlers").capabilities, + }, + }) + end, +}