return { -- plugin ini merupakan penyedia library neovim lua -- { -- "nvim-lua/plenary.nvim", -- lazy = true, -- }, -- coloring code -- { -- "nvim-treesitter/nvim-treesitter", -- lazy = true, -- event = "BufRead", -- cmd = { -- "TSBufDisable", -- "TSBufEnable", -- "TSBufToggle", -- "TSDisable", -- "TSEnable", -- "TSToggle", -- "TSInstall", -- "TSInstallInfo", -- "TSInstallSync", -- "TSModuleInfo", -- "TSUninstall", -- "TSUpdate", -- "TSUpdateSync", -- }, -- build = function() -- local status_ok, ts = pcall(require, "nvim-treesitter.install") -- if not status_ok then -- return -- end -- ts.update({ with_sync = true })() -- end, -- config = function() -- local status_ok, _ = pcall(require, "nvim-treesitter") -- if not status_ok then -- return -- end -- require("user.treesitter") -- end, -- }, -- snippets -- { -- "rafamadriz/friendly-snippets", -- event = "InsertEnter", -- lazy = true, -- config = function() -- require("luasnip.loaders.from_vscode").lazy_load() -- require("user.snippets") -- require("user.snip") -- end, -- }, -- { -- "L3MON4D3/LuaSnip", -- lazy = true, -- opts = { -- history = true, -- delete_check_events = "TextChanged", -- }, -- -- stylua: ignore -- keys = { -- { "", function() require("luasnip").jump(1) end, mode = "s" }, -- { "", function() require("luasnip").jump(-1) end, mode = { "i", "s" } }, -- }, -- }, -- { -- "neovim/nvim-lspconfig", -- lazy = true, -- event = "BufRead", -- }, -- { -- "williamboman/mason.nvim", -- lazy = true, -- dependencies = { "williamboman/mason-lspconfig.nvim" }, -- cmd = { -- "Mason", -- "MasonInstall", -- "MasonUninstall", -- "MasonUninstallAll", -- "MasonLog", -- }, -- config = function() -- require("user.lsp") -- end, -- }, -- for formater linter -- { -- "RRethy/vim-illuminate", -- event = "BufRead", -- lazy = true, -- config = function() -- local status_ok, illuminate = pcall(require, "illuminate") -- if not status_ok then -- return -- end -- illuminate.configure({ -- options = { -- providers = { -- "lsp", -- "treesitter", -- "regex", -- }, -- -- delay: delay in milliseconds -- delay = 120, -- -- filetype_overrides: filetype specific overrides. -- -- The keys are strings to represent the filetype while the values are tables that -- -- supports the same keys passed to .configure except for filetypes_denylist and filetypes_allowlist -- filetype_overrides = {}, -- -- filetypes_denylist: filetypes to not illuminate, this overrides filetypes_allowlist -- filetypes_denylist = { -- "dirvish", -- "fugitive", -- "alpha", -- "NvimTree", -- "lazy", -- "neogitstatus", -- "Trouble", -- "lir", -- "Outline", -- "spectre_panel", -- "toggleterm", -- "DressingSelect", -- "TelescopePrompt", -- }, -- -- filetypes_allowlist: filetypes to illuminate, this is overridden by filetypes_denylist -- filetypes_allowlist = {}, -- -- modes_denylist: modes to not illuminate, this overrides modes_allowlist -- modes_denylist = {}, -- -- modes_allowlist: modes to illuminate, this is overridden by modes_denylist -- modes_allowlist = {}, -- -- providers_regex_syntax_denylist: syntax to not illuminate, this overrides providers_regex_syntax_allowlist -- -- Only applies to the 'regex' provider -- -- Use :echom synIDattr(synIDtrans(synID(line('.'), col('.'), 1)), 'name') -- providers_regex_syntax_denylist = {}, -- -- providers_regex_syntax_allowlist: syntax to illuminate, this is overridden by providers_regex_syntax_denylist -- -- Only applies to the 'regex' provider -- -- Use :echom synIDattr(synIDtrans(synID(line('.'), col('.'), 1)), 'name') -- providers_regex_syntax_allowlist = {}, -- -- under_cursor: whether or not to illuminate under the cursor -- under_cursor = true, -- }, -- }) -- end, -- }, -- { -- "jayp0521/mason-null-ls.nvim", -- lazy = true, -- dependencies = { -- "nvimtools/none-ls.nvim", -- dependencies = { -- "nvimtools/none-ls-extras.nvim", -- lazy = true, -- }, -- config = function() -- require("user.lsp.null-ls") -- end, -- }, -- event = "InsertEnter", -- opts = function() -- require("user.mason-null-ls") -- end, -- }, -- debuging -- { -- "rcarriga/nvim-dap-ui", -- lazy = true, -- event = "BufRead", -- dependencies = "mfussenegger/nvim-dap", -- enabled = vim.fn.has("win32") == 0, -- config = function() -- require("user.dapui") -- end, -- }, -- { -- "jay-babu/mason-nvim-dap.nvim", -- lazy = true, -- event = "BufRead", -- dependencies = { "williamboman/mason.nvim", "mfussenegger/nvim-dap" }, -- enabled = vim.fn.has("win32") == 0, -- config = function() -- require("user.mason_dap") -- end, -- }, -- auto pairs -- { -- "windwp/nvim-autopairs", -- lazy = true, -- -- commit = "4fc96c8f3df89b6d23e5092d31c866c53a346347", -- dependencies = "hrsh7th/nvim-cmp", -- event = "InsertEnter", -- config = function() -- require("user.autopairs") -- end, -- }, -- untuk comment -- { -- "JoosepAlviste/nvim-ts-context-commentstring", -- lazy = true, -- dependencies = "nvim-treesitter/nvim-treesitter", -- config = function() -- require("ts_context_commentstring").setup({ -- enable_autocmd = false, -- }) -- end, -- }, -- { -- "numToStr/Comment.nvim", -- lazy = true, -- config = function() -- require("user.comment") -- end, -- }, -- { -- "lukas-reineke/indent-blankline.nvim", -- version = "3.5.4", -- event = { "BufRead", "InsertEnter", "BufNewFile" }, -- lazy = true, -- opts = { -- indent = { -- char = "│", -- tab_char = "│", -- }, -- scope = { enabled = false }, -- exclude = { -- buftypes = { -- "nofile", -- "prompt", -- "quickfix", -- "terminal", -- }, -- filetypes = { -- "help", -- "alpha", -- "dashboard", -- "neo-tree", -- "Trouble", -- "trouble", -- "lazy", -- "mason", -- "notify", -- "toggleterm", -- "lazyterm", -- "NvimTree", -- "aerial", -- "neogitstatus", -- "startify", -- }, -- }, -- }, -- main = "ibl", -- }, -- for multi cursor select -- { -- "mg979/vim-visual-multi", -- event = { "BufRead", "InsertEnter", "BufNewFile" }, -- lazy = true, -- init = function() -- vim.g.VM_mouse_mappings = 1 -- equal CTRL + Left Click on VSCODE -- vim.g.VM_maps = { -- ["Find Under"] = "", -- equal CTRL+D on VSCODE -- ["Find Subword Under"] = "", -- equal CTRL+D on VSCODE -- ["Select Cursor Down"] = "", -- equal CTRL+ALT+DOWN on VSCODE -- ["Select Cursor Up"] = "", -- equal CTRL+ALT+UP on VSCODE -- } -- end, -- }, -- for auto close tag -- { -- "windwp/nvim-ts-autotag", -- lazy = true, -- event = "BufRead", -- dependencies = "nvim-treesitter/nvim-treesitter", -- config = function() -- require("nvim-ts-autotag").setup() -- end, -- }, -- for auto detection file and run code -- { -- "CRAG666/code_runner.nvim", -- lazy = true, -- cmd = { "RunCode", "RunFile", "RunProject", "RunClose" }, -- config = function() -- require("user.coderunner") -- end, -- }, -- for color view -- { -- "NvChad/nvim-colorizer.lua", -- lazy = true, -- event = { "BufRead", "InsertEnter", "BufNewFile" }, -- opts = { -- user_default_options = { -- RGB = true, -- #RGB hex codes -- RRGGBB = true, -- #RRGGBB hex codes -- names = true, -- "Name" codes like Blue -- RRGGBBAA = true, -- #RRGGBBAA hex codes -- rgb_fn = true, -- CSS rgb() and rgba() functions -- hsl_fn = true, -- CSS hsl() and hsla() functions -- css = true, -- Enable all CSS features: rgb_fn, hsl_fn, names, RGB, RRGGBB -- css_fn = true, -- Enable all CSS *functions*: rgb_fn, hsl_fn -- -- Available modes: foreground, background -- mode = "background", -- Set the display mode. -- tailwind = true, -- }, -- filetypes = { -- "*", -- Highlight all files, but customize some others. -- css = { rgb_fn = true }, -- Enable parsing rgb(...) functions in css. -- html = { names = false }, -- Disable parsing "names" like Blue or Gray -- }, -- }, -- }, -- for winbar icon -- { -- "SmiteshP/nvim-navic", -- lazy = true, -- dependencies = "neovim/nvim-lspconfig", -- event = "InsertEnter", -- config = function() -- require("user.breadcrumb") -- require("user.winbar") -- end, -- }, -- for popup alert -- { -- "rcarriga/nvim-notify", -- lazy = true, -- -- event = "BufWinEnter", -- event = "VeryLazy", -- keys = { -- { -- "un", -- function() -- require("notify").dismiss({ silent = true, pending = true }) -- end, -- desc = "Delete all Notifications", -- }, -- }, -- opts = { -- timeout = 3000, -- max_height = function() -- return math.floor(vim.o.lines * 0.75) -- end, -- max_width = function() -- return math.floor(vim.o.columns * 0.75) -- end, -- }, -- -- event = "BufWinEnter", -- config = function() -- local notify = require("notify") -- -- this for transparency -- notify.setup({ background_colour = "#000000" }) -- -- this overwrites the vim notify function -- vim.notify = notify.notify -- end, -- }, -- for resize screen -- { -- "mrjones2014/smart-splits.nvim", -- lazy = true, -- event = { "BufRead", "InsertEnter", "BufNewFile" }, -- config = function() -- require("user.smartspit") -- end, -- }, -- for popup input -- { -- "stevearc/dressing.nvim", -- lazy = true, -- init = function() -- ---@diagnostic disable-next-line: duplicate-set-field -- vim.ui.select = function(...) -- require("lazy").load({ plugins = { "dressing.nvim" } }) -- return vim.ui.select(...) -- end -- ---@diagnostic disable-next-line: duplicate-set-field -- vim.ui.input = function(...) -- require("lazy").load({ plugins = { "dressing.nvim" } }) -- return vim.ui.input(...) -- end -- end, -- config = function() -- require("user.dressing") -- end, -- }, -- mini scrollview -- { -- "dstein64/nvim-scrollview", -- lazy = true, -- -- event = "BufWinEnter", -- event = { "BufRead", "InsertEnter", "BufNewFile" }, -- config = function() -- require("user.nvimscroll") -- end, -- }, -- for check startuptime -- { "dstein64/vim-startuptime", lazy = true, cmd = "StartupTime" }, -- { -- "pojokcodeid/nvim-ts-rainbow2", -- lazy = true, -- event = "BufRead", -- dependencies = "nvim-treesitter/nvim-treesitter", -- }, -- { -- "hiphish/rainbow-delimiters.nvim", -- lazy = true, -- event = "BufRead", -- config = function() -- -- Modul ini berisi beberapa definisi default -- local rainbow_delimiters = require("rainbow-delimiters") -- vim.g.rainbow_delimiters = { -- strategy = { -- [""] = rainbow_delimiters.strategy["global"], -- vim = rainbow_delimiters.strategy["local"], -- }, -- query = { -- [""] = "rainbow-delimiters", -- lua = "rainbow-blocks", -- }, -- priority = { -- [""] = 110, -- lua = 210, -- }, -- highlight = { -- "RainbowDelimiterRed", -- "RainbowDelimiterYellow", -- "RainbowDelimiterBlue", -- "RainbowDelimiterOrange", -- "RainbowDelimiterGreen", -- "RainbowDelimiterViolet", -- "RainbowDelimiterCyan", -- }, -- } -- end, -- }, -- { -- "lewis6991/gitsigns.nvim", -- lazy = true, -- enabled = vim.fn.executable("git") == 1, -- ft = "gitcommit", -- -- event = "BufWinEnter", -- event = "BufRead", -- config = function() -- require("user.gitsigns") -- end, -- }, }