diff options
Diffstat (limited to '.config/nvim/lua/plugins.lua')
-rwxr-xr-x | .config/nvim/lua/plugins.lua | 145 |
1 files changed, 145 insertions, 0 deletions
diff --git a/.config/nvim/lua/plugins.lua b/.config/nvim/lua/plugins.lua new file mode 100755 index 0000000..24736eb --- /dev/null +++ b/.config/nvim/lua/plugins.lua @@ -0,0 +1,145 @@ +--[[ +-- Plugins +--]] + +-- Bootstrap for Paq +local install_path = vim.fn.stdpath('data')..'/site/pack/paqs/start/paq-nvim' +if vim.fn.empty(vim.fn.glob(install_path)) > 0 then + vim.fn.system({ + 'git', 'clone', '--depth=1', + 'https://github.com/savq/paq-nvim.git', + install_path + }) + vim.cmd 'packadd paq-nvim' +end + +-- Enable Paq +vim.cmd 'packadd paq-nvim' + +-- Plugin list +require('paq') { + {'savq/paq-nvim'}; + + -- lsp + { + 'nvim-treesitter/nvim-treesitter', + run=':TSUpdate' + }; + { + 'neovim/nvim-lspconfig', + run='python3 -m pipx install python-lsp-server[all]' + }; + { + 'numirias/semshi', + run=':UpdateRemotePlugins' + }; + + -- utils + {'folke/trouble.nvim'}; + {'hrsh7th/nvim-compe'}; + + -- org + {'TimUntersberger/neogit'}; + {'kyazdani42/nvim-tree.lua'}; + + -- indent + {'lewis6991/gitsigns.nvim'}; + {'glepnir/indent-guides.nvim'}; + {'darazaki/indent-o-matic'}; + + -- dep + {'nvim-lua/plenary.nvim'}; +} + +-- Treesitter + +local parser_configs = require('nvim-treesitter.parsers').get_parser_configs() + +require('nvim-treesitter.configs').setup { + ensure_installed = 'maintained', + ignore_install = { + 'verilog', + 'kotlin' + }, + highlight = { + enable = true, + } +} + +-- completion + +require('compe').setup { + enabled = true, + source = { + path = true; + buffer = true; + calc = true; + nvim_lsp = true; + nvim_lua = true; + vsnip = true; + ultisnips = true; + luasnip = true; + neorg = true; + }; +} + +-- LSP configuration + +local lsputil = require('lspconfig/util') +local python_venv = require('utils').get_python_venv() +require('lspconfig').pylsp.setup{ + cmd = {'pylsp', '-v'}, + cmd_env = { + VIRTUAL_ENV = python_venv, + PATH = lsputil.path.join(python_venv, 'bin') .. ':' .. vim.env.PATH + }, +} + +require('lspconfig').clangd.setup{} +require('lspconfig').eslint.setup{} +require('lspconfig').terraformls.setup{} + +-- org + +require('trouble').setup{} +require('neogit').setup{} + +-- syntactic sugar + +require('indent_guides').setup{ + indent_enable=true; + exclude_filetypes={ + 'help', + 'calendar', + 'NvimTree' + }; +} + +require('indent-o-matic').setup { + max_lines = 0, + standard_widths = { 2, 4, 8 }, + + filetype_typescript = { + max_lines = 4096, + }, + + filetype_javascript = { + max_lines = 4096, + }, + + filetype_ = { + standard_widths = { 2, 4 }, + }, +} + +vim.g['semshi#update_delay_factor'] = 0.0001 + +require('gitsigns').setup{ + signs = { + add = {hl = 'GitSignsAdd' , text = '▍', numhl='GitSignsAddNr' , linehl='GitSignsAddLn'}, + change = {hl = 'GitSignsChange', text = '▍', numhl='GitSignsChangeNr', linehl='GitSignsChangeLn'}, + delete = {hl = 'GitSignsDelete', text = '▍', numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn'}, + topdelete = {hl = 'GitSignsDelete', text = '▍', numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn'}, + changedelete = {hl = 'GitSignsChange', text = '▍', numhl='GitSignsChangeNr', linehl='GitSignsChangeLn'}, + } +} |