-- local build = "powershell ./install.ps1" -- if vim.fn.has("win32") == 0 then -- build = "./install.sh" -- end return { -- plugin ini merupakan penyedia library neovim lua { "nvim-lua/plenary.nvim", lazy = true, }, -- coding start -- coloring code { "nvim-treesitter/nvim-treesitter", priority = 1000, -- make sure to load this before all the other start plugins event = "BufRead", dependencies = { { "JoosepAlviste/nvim-ts-context-commentstring", event = "BufRead" }, { "p00f/nvim-ts-rainbow", event = "BufRead" }, { "windwp/nvim-ts-autotag", event = "BufRead", config = function() require("nvim-ts-autotag").setup() end, }, }, 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 { "L3MON4D3/LuaSnip", dependencies = { "rafamadriz/friendly-snippets", config = function() require("luasnip.loaders.from_vscode").lazy_load() require("user.snip") end, }, opts = { history = true, delete_check_events = "TextChanged", }, -- stylua: ignore keys = { { "", function() return require("luasnip").jumpable(1) and "luasnip-jump-next" or "" end, expr = true, silent = true, mode = "i", }, { "", function() require("luasnip").jump(1) end, mode = "s" }, { "", function() require("luasnip").jump(-1) end, mode = { "i", "s" } }, }, }, -- -- auto completion (dipindah supaya loading lebih cepat) -- { -- "hrsh7th/nvim-cmp", -- version = false, -- last release is way too old -- event = "InsertEnter", -- dependencies = { -- "hrsh7th/cmp-nvim-lsp", -- "hrsh7th/cmp-buffer", -- "hrsh7th/cmp-path", -- "saadparwaiz1/cmp_luasnip", -- "hrsh7th/cmp-nvim-lua", -- { -- "tzachar/cmp-tabnine", -- build = build, -- event = "BufWinEnter", -- config = function() -- require("user.tabnine") -- end, -- }, -- -- { -- -- "hrsh7th/cmp-cmdline", -- -- event = "BufWinEnter", -- -- config = function() -- -- require("user.cmdline") -- -- end, -- -- }, -- }, -- opts = function() -- require("user.cmp") -- end, -- }, -- { "neovim/nvim-lspconfig", event = "BufWinEnter", dependencies = { "williamboman/mason-lspconfig.nvim", }, config = function() require("user.lsp") end, }, -- { -- "williamboman/mason.nvim", -- event = "VeryLazy", -- cmd = { -- "Mason", -- "MasonInstall", -- "MasonUninstall", -- "MasonUninstallAll", -- "MasonLog", -- }, -- dependencies = { "williamboman/mason-lspconfig.nvim" }, -- init = function() -- vim.tbl_map(function(plugin) -- pcall(require, plugin) -- end, { "lspconfig", "null-ls" }) -- end, -- }, { "williamboman/mason.nvim", cmd = "Mason", keys = { { "cm", "Mason", desc = "Mason" } }, }, -- for formater linter { "RRethy/vim-illuminate", event = "BufRead" }, { "jayp0521/mason-null-ls.nvim", dependencies = "jose-elias-alvarez/null-ls.nvim", event = "BufRead", opts = function() require("user.mason-null-ls") end, }, -- debuging { "rcarriga/nvim-dap-ui", event = "BufWinEnter", dependencies = "mfussenegger/nvim-dap", enabled = vim.fn.has("win32") == 0, config = function() require("user.dapui") end, }, { "jayp0521/mason-nvim-dap.nvim", event = "VeryLazy", dependencies = { "williamboman/mason.nvim", "mfussenegger/nvim-dap" }, enabled = vim.fn.has("win32") == 0, init = function() require("user.mason_dap") end, }, -- for install lsp tidak support mason { "williamboman/nvim-lsp-installer", event = "VeryLazy" }, -- auto pairs { "windwp/nvim-autopairs", commit = "4fc96c8f3df89b6d23e5092d31c866c53a346347", dependencies = "hrsh7th/nvim-cmp", event = "InsertEnter", config = function() require("user.autopairs") end, }, -- untuk comment { "numToStr/Comment.nvim", event = "BufRead", config = function() require("user.comment") end, }, -- better todo coloring and icon { "folke/todo-comments.nvim", event = "BufRead", config = function() require("todo-comments").setup() end, }, -- styleing indent { "lukas-reineke/indent-blankline.nvim", event = "BufRead", config = function() require("user.indentline") end, }, -- { "ahmedkhalf/project.nvim", commit = "628de7e433dd503e782831fe150bb750e56e55d6", event = "VeryLazy" }, -- for Speed up loading Lua modules in Neovim to improve startup time. { "lewis6991/impatient.nvim", event = "BufRead", config = function() require("user.impatient") end, }, -- for live server html,css,js { "manzeloth/live-server", cmd = { "LiveServer" }, event = "BufRead" }, -- for multi cursor select { "mg979/vim-visual-multi", event = "BufRead" }, -- for auto close tag -- for auto detection file and run code { "CRAG666/code_runner.nvim", event = "BufRead", -- dependencies = "nvim-lua/plenary.nvim", cmd = { "RunCode", "RunFile", "RunProject", "RunClose" }, config = function() require("user.coderunner") end, }, { "is0n/jaq-nvim", event = "BufRead", config = function() require("user.jaq") end, }, -- for color view { "NvChad/nvim-colorizer.lua", event = "BufRead", opts = function() require("user.colorizer") end, }, -- for winbar icon { "SmiteshP/nvim-navic", dependencies = "neovim/nvim-lspconfig", event = "BufRead", config = function() require("user.breadcrumb") require("user.winbar") end, }, -- for popup alert { "rcarriga/nvim-notify", 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", event = "BufWinEnter", config = function() require("user.smartspit") end, }, -- for popup input { "stevearc/dressing.nvim", event = "BufWinEnter", config = function() require("user.dressing") end, }, -- mini scrollview { "karb94/neoscroll.nvim", event = "BufRead", config = function() require("user.neoscroll") end, }, { "dstein64/nvim-scrollview", event = "BufRead", config = function() require("user.nvimscroll") end, }, -- for manage and coloring copy { "gbprod/yanky.nvim", event = "BufRead", config = function() require("user.yanky") end, }, -- for check startuptime { "dstein64/vim-startuptime", cmd = "StartupTime", event = "BufRead" }, -- for coloring pairs -- for git { "lewis6991/gitsigns.nvim", enabled = vim.fn.executable("git") == 1, ft = "gitcommit", event = "BufRead", config = function() require("user.gitsigns") end, }, -- additional plugins -- active indent guide and indent text objects { "echasnovski/mini.indentscope", version = false, -- wait till new 0.7.0 release to put it back on semver event = "BufReadPre", opts = { -- symbol = "▏", symbol = "│", options = { try_as_border = true }, }, config = function(_, opts) vim.api.nvim_create_autocmd("FileType", { pattern = { "help", "alpha", "dashboard", "NvimTree", "Trouble", "lazy", "mason" }, callback = function() vim.b.miniindentscope_disable = true end, }) require("mini.indentscope").setup(opts) end, }, -- makes some plugins dot-repeatable like leap -- { "tpope/vim-repeat", event = "VeryLazy" }, -- better diagnostics list and others { "folke/trouble.nvim", event = "BufRead", cmd = { "TroubleToggle", "Trouble" }, opts = { use_diagnostic_signs = true }, keys = { { "xx", "TroubleToggle document_diagnostics", desc = "Document Diagnostics (Trouble)" }, { "xX", "TroubleToggle workspace_diagnostics", desc = "Workspace Diagnostics (Trouble)" }, }, }, -- for markdown preview -- make sure already install npm and yarn -- { -- "iamcco/markdown-preview.nvim", -- event = "VeryLazy", -- build = "cd app && npm install", -- init = function() -- vim.g.mkdp_filetypes = { "markdown" } -- end, -- ft = { "markdown" }, -- cmd = { "MarkdownPreview", "MarkdownPreviewStop", "MarkdownPreviewToggle" }, -- }, -- for codeGPT -- { -- "jackMort/ChatGPT.nvim", -- dependencies = { "MunifTanjim/nui.nvim", "nvim-lua/plenary.nvim", "nvim-telescope/telescope.nvim" }, -- lazy = true, -- event = "VeryLazy", -- -- opts = function() -- -- require("user.chat_gpt") -- -- end, -- }, -- indent detection -- { -- "Darazaki/indent-o-matic", -- event = "VeryLazy", -- opt = true, -- cmd = { "IndentOMatic" }, -- config = function() -- require("user.indent-o-matic") -- end, -- }, -- Lsp Saga -- { -- "glepnir/lspsaga.nvim", -- event = "BufRead", -- config = function() -- require("lspsaga").setup({}) -- end, -- dependencies = { { "kyazdani42/nvim-web-devicons" } }, -- init = function() -- require("user.lspsaga_config") -- end, -- }, -- Khusus Projek laravel baru di buka -- { -- "adalessa/laravel.nvim", -- dependencies = { -- "nvim-telescope/telescope.nvim", -- }, -- cmd = { "Sail", "Artisan", "Composer" }, -- keys = { -- { "pa", ":Artisan" }, -- }, -- config = function() -- require("laravel").setup() -- require("telescope").load_extension("laravel") -- end, -- }, -- for loading info { "j-hui/fidget.nvim", event = "BufRead", config = function() require("fidget").setup() end, }, }