-- bootstrap 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' -- plugins require('paq') { {'savq/paq-nvim'}; -- treesiter / lsp {'nvim-treesitter/playground'}; {'nvim-treesitter/nvim-treesitter-textobjects'}; { 'nvim-treesitter/nvim-treesitter', run=vim.api.nvim_command(':silent! TSUpdate') }; { 'neovim/nvim-lspconfig', run='python3 -m pipx install python-lsp-server[all]' }; -- utils {'folke/trouble.nvim'}; {'hrsh7th/nvim-compe'}; {'hrsh7th/cmp-nvim-lsp'}; {'hrsh7th/cmp-cmdline'}; {'hrsh7th/cmp-buffer'}; {'hrsh7th/cmp-path'}; {'hrsh7th/cmp-calc'}; {'hrsh7th/nvim-cmp'}; -- 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 }, incremental_selection = { enable = true }, textobjects = { enable = true } } -- completion local cmp = require('cmp') cmp.setup({ mapping = { [''] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }), [''] = cmp.mapping(cmp.mapping.select_next_item(), { 'i', 'c' }), [''] = cmp.mapping(cmp.mapping.select_prev_item(), { 'i', 'c' }), [''] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }), }, sources = cmp.config.sources({ { name = 'nvim_lsp' }, { name = 'cmdline' }, { name = 'path' }, { name = 'calc' } }, { { name = 'buffer' } }) }) cmp.setup.cmdline('/', { sources = { { name = 'buffer' } } }) -- 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').elixirls.setup{ cmd = {'elixir-ls'} } require('lspconfig').eslint.setup{} require('lspconfig').terraformls.setup{} -- org require('trouble').setup{} -- syntactic sugar require('indent_guides').setup{ indent_enable=true; exclude_filetypes={ 'calendar', 'gitcommit', 'help', 'NvimTree', }; } require('indent-o-matic').setup { max_lines = 0, standard_widths = { 2, 4, 8 }, filetype_ = { standard_widths = { 2, 4 }, }, filetype_css = { max_lines = 4096, }, filetype_scss = { max_lines = 4096, }, filetype_javascript = { max_lines = 4096, }, filetype_json = { max_lines = 4096, }, filetype_typescript = { max_lines = 4096, }, } 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'}, } }