1diff --git a/init.lua b/init.lua
2index d06a37fd8505a492ef755d3644bf017b58756737..c4df3b3a102809af9b49899d7c4c9986db0844e1 100644
3--- a/init.lua
4+++ b/init.lua
5@@ -1,7 +1,22 @@
6-local packer = require("packer")
7+local path_package = vim.fn.stdpath('data') .. '/site/'
8+local mini_path = path_package .. 'pack/deps/start/mini.nvim'
9+if not vim.loop.fs_stat(mini_path) then
10+ vim.cmd('echo "Installing `mini.nvim`" | redraw')
11+ local clone_cmd = {
12+ 'git', 'clone', '--filter=blob:none',
13+ 'https://github.com/echasnovski/mini.nvim', mini_path
14+ }
15+ vim.fn.system(clone_cmd)
16+ vim.cmd('packadd mini.nvim | helptags ALL')
17+ vim.cmd('echo "Installed `mini.nvim`" | redraw')
18+end
19+
20+local mini_deps = require('mini.deps')
21+local add = mini_deps.add
22+
23+mini_deps.setup({ path = { package = path_package } })
24
25 local pkgs = {
26- "wbthomason/packer.nvim", -- packer manager
27 "folke/trouble.nvim", -- diagnostics
28 "mfussenegger/nvim-dap", -- add dap support
29 "leoluz/nvim-dap-go", -- add some utilites to go
30@@ -22,13 +37,16 @@ "williamboman/mason.nvim", -- manages many things
31 "neovim/nvim-lspconfig", -- lsp support
32 }
33
34-local function startup(use)
35- use("nvim-treesitter/nvim-treesitter", {run = ":TSUpdate"})
36- use("fatih/vim-go", {run = ":GoUpdateBinaries"})
37- for _, value in ipairs(pkgs) do use(value) end
38-end
39+add({
40+ source = "nvim-treesitter/nvim-treesitter",
41+ hooks = { post_checkout = function() vim.cmd('TSUpdate') end },
42+})
43+add({
44+ source = "fatih/vim-go",
45+ hooks = { post_checkout = function() vim.cmd('GoUpdateBinaries') end },
46+})
47+for _, value in ipairs(pkgs) do add({source = value}) end
48
49-packer.startup(startup)
50
51 local neogit = require("neogit")
52 local null_ls = require("null-ls")
53diff --git a/lua/gabrielgio/init.lua b/lua/gabrielgio/init.lua
54index a00b425b70230edd856dd9c652ea16c000051dcb..590aa13e11014aacabb4e0c9262d85090225d498 100644
55--- a/lua/gabrielgio/init.lua
56+++ b/lua/gabrielgio/init.lua
57@@ -1,12 +1,16 @@
58-require("gabrielgio.lsp")
59-require("gabrielgio.settable")
60-require("gabrielgio.mini")
61-require("gabrielgio.go")
62-require("gabrielgio.telescope")
63-require("gabrielgio.treesitter")
64-require("gabrielgio.undotree")
65-require("gabrielgio.so")
66-require("gabrielgio.trouble")
67-require("gabrielgio.dap")
68-require("gabrielgio.term")
69-require("gabrielgio.neovide")
70+local mini_deps = require('mini.deps')
71+local now, later = mini_deps.now, mini_deps.later
72+
73+now(function() require("gabrielgio.settable") end)
74+now(function() require("gabrielgio.treesitter") end)
75+
76+later(function() require("gabrielgio.lsp") end)
77+later(function() require("gabrielgio.mini") end)
78+later(function() require("gabrielgio.go") end)
79+later(function() require("gabrielgio.telescope") end)
80+later(function() require("gabrielgio.undotree") end)
81+later(function() require("gabrielgio.so") end)
82+later(function() require("gabrielgio.trouble") end)
83+later(function() require("gabrielgio.dap") end)
84+later(function() require("gabrielgio.term") end)
85+later(function() require("gabrielgio.neovide") end)