summaryrefslogblamecommitdiffstats
path: root/.config/nvim/lua/plugins.lua
blob: 24736eba93c98da99888ee8b8a707c89aba0ba7c (plain) (tree)
















































































































































                                                                                                              
--[[
-- 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'},
  }
}
remember that computers suck.