summaryrefslogtreecommitdiff
path: root/lua/user/lazy.lua
blob: 8671a69ac46bd410b83b86d43efe458e33c67165 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
-- bootstraping
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
	vim.fn.system({
		"git",
		"clone",
		"--filter=blob:none",
		"https://github.com/folke/lazy.nvim.git",
		"--branch=stable", -- latest stable release
		lazypath,
	})
end
vim.opt.rtp:prepend(lazypath)

-- plugins installation and configuration
require("lazy").setup({
    -- lsp setup
	{
		-- LSP Support
		"neovim/nvim-lspconfig",
		-- lsp download manager
		"williamboman/mason.nvim",
		-- automatic lsp setup
		"williamboman/mason-lspconfig.nvim",
		-- additional formater support
		"stevearc/conform.nvim",
		-- additional linter support
		"mfussenegger/nvim-lint",
		-- mason autoinstaller for formatter's and linter's
		"WhoIsSethDaniel/mason-tool-installer.nvim",
		-- minimal snippet's support
		"dcampos/nvim-snippy",
		-- basic snippet's
		"honza/vim-snippets",
        -- cmp for autocompletion
        "hrsh7th/nvim-cmp",
        -- cmp nvim-lsp plugin
        "hrsh7th/cmp-nvim-lsp",
        -- cmp snippy support
        "dcampos/cmp-snippy",
        -- path comletion
        "hrsh7th/cmp-path",
        -- kind icons
        "onsails/lspkind.nvim",
	},
	-- Adds git related signs to the gutter, as well as utilities for managing changes
	"lewis6991/gitsigns.nvim",

    -- better ntrw
    "tpope/vim-vinegar",

    -- integration with tmux keybinds
    "christoomey/vim-tmux-navigator",

    -- auto close brackets
    "m4xshen/autoclose.nvim",

	-- Fuzzy Finder (files, lsp, etc)
	{
		"nvim-telescope/telescope.nvim",
		dependencies = {
			"nvim-lua/plenary.nvim",
			"nvim-telescope/telescope-ui-select.nvim",
			{
				"nvim-telescope/telescope-fzf-native.nvim",
				build = "make",
			},
		},
	},

	{
		-- Highlight, edit, and navigate code
		"nvim-treesitter/nvim-treesitter",
		build = ":TSUpdate",
	},

	{
		-- harpoon your way around code
		{
			"ThePrimeagen/harpoon",
			branch = "harpoon2",
			requires = { "nvim-lua/plenary.nvim", lazy = true },
		},
	},

	-- Minimal neovim modules for a lot of things
	{ "echasnovski/mini.nvim" },
}, {
	performance = {
		rtp = {
			disabled_plugins = {
				"gzip",
				"tarPlugin",
				"tohtml",
				"tutor",
				"zipPlugin",
			},
		},
	},
})