71 lines
1.7 KiB
Lua
71 lines
1.7 KiB
Lua
local function clone_paq()
|
|
local path = vim.fn.stdpath("data") .. "/site/pack/paqs/start/paq-nvim"
|
|
local is_installed = vim.fn.empty(vim.fn.glob(path)) == 0
|
|
if not is_installed then
|
|
vim.fn.system { "git", "clone", "--depth=1", "https://github.com/savq/paq-nvim.git", path }
|
|
return true
|
|
end
|
|
end
|
|
|
|
local pkgs = {
|
|
"savq/paq-nvim";
|
|
|
|
-- need to install g++ package on Debian
|
|
-- for tree sitter plugins
|
|
'nvim-treesitter/nvim-treesitter';
|
|
|
|
-- LSP installer
|
|
'neovim/nvim-lspconfig';
|
|
|
|
-- ui elements
|
|
'MunifTanjim/nui.nvim';
|
|
'nvim-lua/plenary.nvim';
|
|
|
|
-- status bar
|
|
'nvim-lualine/lualine.nvim';
|
|
|
|
-- Base16 theme
|
|
'RRethy/nvim-base16';
|
|
|
|
-- file manager
|
|
'nvim-neo-tree/neo-tree.nvim';
|
|
|
|
-- git integration
|
|
'lewis6991/gitsigns.nvim';
|
|
|
|
|
|
-- Mason is a GUI to install language servers and lspconfig is a bridge
|
|
-- between mason and nvim-lspconfig
|
|
'williamboman/mason.nvim';
|
|
'williamboman/mason-lspconfig.nvim';
|
|
|
|
-- autocompletion plugin
|
|
'hrsh7th/nvim-cmp';
|
|
'hrsh7th/cmp-nvim-lsp'; -- LSP source
|
|
'hrsh7th/cmp-path'; -- path source
|
|
'hrsh7th/cmp-buffer'; -- buffer
|
|
'L3MON4D3/LuaSnip'; -- snippet engine
|
|
'saadparwaiz1/cmp_luasnip';
|
|
|
|
-- autopair
|
|
'windwp/nvim-autopairs';
|
|
|
|
-- indent guide
|
|
'lukas-reineke/indent-blankline.nvim';
|
|
|
|
-- windows popup with keys
|
|
'folke/which-key.nvim';
|
|
}
|
|
|
|
if clone_paq() then
|
|
vim.cmd('packadd paq-nvim')
|
|
local paq = require('paq')
|
|
-- Exit nvim after installing plugins
|
|
vim.cmd('autocmd User PaqDoneInstall quit')
|
|
-- Read and install packages
|
|
paq(pkgs)
|
|
paq.install()
|
|
end
|
|
|
|
local paq = require("paq")
|
|
paq(pkgs)
|