summaryrefslogtreecommitdiffstats
path: root/.config/nvim/lua/user/plugins.lua
blob: 7b7e31dc2a6978b210b587e1c78474b410e8bf97 (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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
-- this file contains plugin settings as well as initialization of lazy.nvim

-- plugins to be installed
plugins = {
	{ "folke/lazy.nvim" },				-- plugin manager

	{ "nvim-lua/popup.nvim" },			-- some functions for other plugins
	{ "nvim-lua/plenary.nvim" },			-- some functions for other plugins
	{ "folke/which-key.nvim" },			-- pretty self-descriptive name

	{ "rafi/awesome-vim-colorschemes" },		-- colorschemes
	{ "lunarvim/colorschemes" },			-- colorschemes
	{ "folke/tokyonight.nvim" },			-- colorschemes


	{ "tpope/vim-commentary" },			-- gc & gcc for commenting
	{ "preservim/nerdtree" },			-- file explorer
	{ 
		"windwp/nvim-autopairs",
		event = { "InsertEnter" },		-- automatically pair brackets and quotes

	},
	{ 
		"tpope/vim-surround",			-- replace quotes e.t.c
		event = { "InsertEnter" },
	},


	{ 
		"nvim-treesitter/nvim-treesitter",	-- folding code, advanced syntax highlighting & sitting on a tree
		event = { "InsertEnter" },
	},
	{ 
		"neovim/nvim-lspconfig",		-- LSP configuration
		event = { "InsertEnter" },
	},
	{ 
		"FabijanZulj/blame.nvim",		-- git blame integration
	},
	{ "simrat39/rust-tools.nvim" },			-- no commments
	

	-- { "hrsh7th/vim-vsnip" },			-- snippet engine
	{
		"L3MON4D3/LuaSnip",			-- better snippet engine
		event = { "InsertEnter" },
	},
	{
		"saadparwaiz1/cmp_luasnip", 		-- for luasnip
		event = { "InsertEnter" },
	},
	{
		"rafamadriz/friendly-snippets", 	-- predefined snippets
		event = { "InsertEnter" },
	},

	{
		"CRAG666/code_runner.nvim",		-- TODO: setup magic filenames to be executed per-project
		config = true,
	},
	{
		"akinsho/toggleterm.nvim",		-- a terminal, horaaaay
		config = true,
	},

	-- Autocompletion framework
	{ 
		"hrsh7th/nvim-cmp", 			-- the framework
		event = { "InsertEnter" },
	},
	{
		"hrsh7th/cmp-nvim-lua", 		-- lua config
		event = { "InsertEnter" },
	},
	{
		"hrsh7th/cmp-nvim-lsp-signature-help",	-- ?????????? a monsterature-help" 
		event = { "InsertEnter" },
	},
	{
		"hrsh7th/cmp-nvim-lsp",			-- LSP completion
		event = { "InsertEnter" },
	},
	{
		"hrsh7th/cmp-path",			-- /mnt/D/media/audio_sync/term_download_mp3/HELLO_I_AM_EMU_OTORI.mp3
		event = { "InsertEnter" },
	},
	{
		"hrsh7th/cmp-buffer",			-- current buffer
		event = { "InsertEnter" },
	},
	{
		"hrsh7th/cmp-cmdline",			-- command line tools
		event = { "InsertEnter" },
	},
	{ 	
		"Saecki/crates.nvim",			-- rust packages from crates.io
		event = { "BufRead Cargo.toml" },
		setup = function()
			require('crates').setup()
		end,
	},
	{
		'akinsho/bufferline.nvim',		-- tab & buffer line
		version = "*", 
		-- dependencies = 'nvim-tree/nvim-web-devicons'
		-- for more details on how to configure this plugin in details please see `:h bufferline-configuration`
	},
	--{ "lvimuser/lsp-inlayhints.nvim" }		-- saved for the better times

}

-- options for lazy
opts = {

}


-- some lazy.nvim magic
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)

-- initialization
lazy = require("lazy")
lazy.setup(plugins, opts)

-- miscellanous plugin setup
require('bufferline').setup{}
require('blame').setup{
	width = 16,
	date_format = "%H:%M:%S %Y-%m-%d",
	merge_consecutive = true,
}