aboutsummaryrefslogblamecommitdiff
path: root/.config/nvim/lua/plugins.lua
blob: b2ca11de90d3c467e9488b1a5832cce8a4fc7725 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15














                                                                         
                                                             

                                                                  














                                                                               























                                                                         

                                                                        
                                                             
                                                                    
                                                                             





                                                                        
                                                                  




















































                                                                                











                                                                                           
                                    












































                                                                                                      
                                     
 



                                                                                             
                                                                                               

          
                                          
 






                                      
local PKGS = {
	-- Plugin manager
	{ url = "https://github.com/savq/paq-nvim.git" };

	-- Common
	{ url = "https://github.com/kyazdani42/nvim-web-devicons.git" };

	{ url = "https://github.com/kyazdani42/nvim-tree.lua.git" };
	{ url = "https://github.com/nvim-telescope/telescope.nvim.git" };
	{ url = "https://github.com/nvim-lua/plenary.nvim.git" };
	{ url = "https://github.com/kevinhwang91/nvim-ufo.git" };
	{ url = "https://github.com/kevinhwang91/promise-async.git" };
	{ url = "https://github.com/iamcco/markdown-preview.nvim.git" };
	{ url = "https://github.com/filipdutescu/renamer.nvim.git" };
	{ url = "https://github.com/folke/which-key.nvim.git" };
	{ url = "https://github.com/tpope/vim-abolish.git" };
	{ url = "https://github.com/mg979/vim-visual-multi.git" };
	{ url = "https://github.com/echasnovski/mini.nvim.git" };

	-- Status line
	{ url = "https://github.com/akinsho/bufferline.nvim.git" };
	{ url = "https://github.com/nvim-lualine/lualine.nvim.git" };

	-- Code colors
	{ url = "https://github.com/lukas-reineke/indent-blankline.nvim.git" };
	{ url = "https://github.com/nvim-treesitter/nvim-treesitter.git" };
	{ url = "https://github.com/norcalli/nvim-colorizer.lua.git" };
	{ url = "https://github.com/mracos/mermaid.vim.git" };

	-- Themes
	{ url = "https://github.com/dracula/vim.git" };
	{ url = "https://github.com/folke/tokyonight.nvim.git" };
	{ url = "https://github.com/Mofiqul/vscode.nvim.git" };
	{ url = "https://github.com/sainnhe/sonokai.git" };
	{ url = "https://github.com/navarasu/onedark.nvim.git" };
	{ url = "https://github.com/Mofiqul/adwaita.nvim.git" };

	-- LCOV Coverage
	{ url = "https://github.com/google/vim-coverage.git" };
	{ url = "https://github.com/google/vim-maktaba.git" };

	{ url = "https://github.com/editorconfig/editorconfig-vim.git" };
	{ url = "https://github.com/nathom/filetype.nvim.git" };
	{ url = "https://github.com/wfxr/minimap.vim.git" };

	-- LSP
	{ url = "https://github.com/neovim/nvim-lspconfig.git" };
	{ url = "https://github.com/hrsh7th/nvim-cmp.git" };
	{ url = "https://github.com/hrsh7th/cmp-nvim-lsp.git" };
	{ url = "https://github.com/hrsh7th/cmp-buffer.git" };
	{ url = "https://github.com/hrsh7th/cmp-path.git" };
	{ url = "https://github.com/hrsh7th/cmp-cmdline.git" };
	{ url = "https://github.com/hrsh7th/cmp-vsnip.git" };
	{ url = "https://github.com/hrsh7th/vim-vsnip.git" };
	{ url = "https://github.com/onsails/lspkind.nvim.git" };
	{ url = "https://github.com/folke/trouble.nvim.git" };
	{ url = "https://github.com/folke/lsp-colors.nvim.git" };
	{ url = "https://github.com/nanotee/sqls.nvim.git" };
	{ url = "https://github.com/lvimuser/lsp-inlayhints.nvim.git" };
	{ url = "https://github.com/sigmaSd/deno-nvim.git" };
	{ url = "https://github.com/ray-x/lsp_signature.nvim.git" };
	{ url = "https://github.com/Hoffs/omnisharp-extended-lsp.nvim.git" };

	-- Dev container
	{ url = "https://codeberg.org/esensar/nvim-dev-container.git" };

	-- Games
	{ url = "https://github.com/alec-gibson/nvim-tetris.git" };
	{ url = "https://github.com/seandewar/nvimesweeper.git" };
}

local function clone_paq()
	local path = vim.fn.stdpath("data") .. "/site/pack/paqs/start/paq-nvim"
	if vim.fn.empty(vim.fn.glob(path)) > 0 then
		vim.fn.system {
			"git";
			"clone";
			"--depth=1";
			"https://github.com/savq/paq-nvim.git";
			path;
		}
		return true
	else
		return false
	end
end
local function bootstrap_paq()
	clone_paq()
	-- Load Paq
	vim.cmd("packadd paq-nvim")
	local paq = require("paq")
	-- Read and install packages
	paq(PKGS)
	paq.install()
end

local function init_plugins()
	local paq = require("paq")
	paq(PKGS)

	vim.cmd [[highlight IndentBlanklineIndent1 guifg=#E06C75 gui=nocombine]]
	vim.cmd [[highlight IndentBlanklineIndent2 guifg=#E5C07B gui=nocombine]]
	vim.cmd [[highlight IndentBlanklineIndent3 guifg=#98C379 gui=nocombine]]
	vim.cmd [[highlight IndentBlanklineIndent4 guifg=#56B6C2 gui=nocombine]]
	vim.cmd [[highlight IndentBlanklineIndent5 guifg=#61AFEF gui=nocombine]]
	vim.cmd [[highlight IndentBlanklineIndent6 guifg=#C678DD gui=nocombine]]

	require("indent_blankline").setup {
		char_highlight_list = {
			"IndentBlanklineIndent1";
			"IndentBlanklineIndent2";
			"IndentBlanklineIndent3";
			"IndentBlanklineIndent4";
			"IndentBlanklineIndent5";
			"IndentBlanklineIndent6";
		};
		show_end_of_line = true;
		space_char_blankline = " ";
		show_current_context = true;
		show_current_context_start = true;
	}

	require("colorizer").setup({ "*" }, {
		RGB = true; -- #RGB hex codes
		RRGGBB = true; -- #RRGGBB hex codes
		names = true; -- "Name" codes like Blue
		RRGGBBAA = false; -- #RRGGBBAA hex codes
		rgb_fn = false; -- CSS rgb() and rgba() functions
		hsl_fn = false; -- CSS hsl() and hsla() functions
		css = false; -- Enable all CSS features: rgb_fn, hsl_fn, names, RGB, RRGGBB
		css_fn = false; -- Enable all CSS *functions*: rgb_fn, hsl_fn
		-- Available modes: foreground, background
		mode = "foreground"; -- Set the display mode.
	})
	vim.g.minimap_auto_start = 0
	vim.g.minimap_highlight_range = 1
	vim.g.minimap_highlight_search = 1

	require("ufo").setup({
		provider_selector = function(bufnr, filetype, buftype)
			return { "treesitter"; "indent" }
		end;
	});

	vim.o.foldcolumn = "1"
	vim.o.foldlevel = 99 -- Using ufo provider need a large value, feel free to decrease the value
	vim.o.foldlevelstart = 99
	vim.o.foldenable = true

	require("devcontainer").setup({})
	require("renamer").setup({
		-- The popup title, shown if `border` is true
		title = "Rename";
		-- The padding around the popup content
		padding = { top = 0; left = 0; bottom = 0; right = 0 };
		-- The minimum width of the popup
		min_width = 15;
		-- The maximum width of the popup
		max_width = 45;
		-- Whether or not to shown a border around the popup
		border = true;
		-- The characters which make up the border
		border_chars = { "─"; "│"; "─"; "│"; "╭"; "╮"; "╯"; "╰" };
		-- Whether or not to highlight the current word references through LSP
		show_refs = true;
		-- Whether or not to add resulting changes to the quickfix list
		with_qf_list = true;
		-- Whether or not to enter the new name through the UI or Neovim's `input`
		-- prompt
		with_popup = true;
		-- Custom handler to be run after successfully renaming the word. Receives
		-- the LSP 'textDocument/rename' raw response as its parameter.
		handler = nil;
	})

	require("which-key").setup({
		-- your configuration comes here
		-- or leave it empty to use the default settings
		-- refer to the configuration section below
	})
	vim.fn["mkdp#util#install"]()

	require("nvim-treesitter.configs").setup({
		ensure_installed = { "javascript"; "typescript"; "lua"; "c_sharp"; "jsonc" };
		sync_install = false;
		auto_install = true;
		highlight = { enable = true; disable = { "markdown"; "yaml"; "sql"; "help" } };
	})

	require("mini.surround").setup({})

end

return {
	clone_paq = clone_paq;
	bootstrap_paq = bootstrap_paq;
	init_plugins = init_plugins;
}