Added lspsaga to enhance some of the lsp actions I can do - mappings are mostly the same as before, pretty much all lsp actions can be invoked by g<mnemonic> (e.g. `gr` for rename, `gh` for symbol help, `gd` for go definition, `K` for help hover, `gc` for code completion and some more). `[e` and `]e` move between lsp diagnostic errors. Switched out many syntax highlighting plugins for treesitter, which is an experiment for now, but I would love to keep it like this if it works out.
91 lines
6.2 KiB
VimL
91 lines
6.2 KiB
VimL
" }}}
|
|
" PLUGIN INSTALLATION - handled by VIM-PLUG {{{
|
|
" ================================================================================
|
|
"
|
|
" automatically install vim-plug if it does not exist
|
|
" Note: this installs it in the neovim folder, not the vim folder
|
|
if empty(glob('~/.local/share/nvim/site/autoload/plug.vim'))
|
|
silent !curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs
|
|
\ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
|
autocmd VimEnter * PlugInstall --sync | source $MYVIMRC | q
|
|
endif
|
|
|
|
" automatically install any missing plugins
|
|
autocmd VimEnter *
|
|
\ if len(filter(values(g:plugs), '!isdirectory(v:val.dir)'))
|
|
\| PlugInstall --sync | q
|
|
\| endif
|
|
|
|
" defines plugin directory
|
|
" Install plugins from vim with :PlugInstall
|
|
silent! if plug#begin('~/.local/share/nvim/plugged')
|
|
" base
|
|
Plug 'christoomey/vim-tmux-navigator' " allow seamless navigation between vim buffers and tmux splits
|
|
Plug 'jeffkreeftmeijer/vim-numbertoggle' " toggles numbers to absolute for all buffers but the current which is relative
|
|
Plug 'justinmk/vim-sneak' " jump between letters with improved fFtT quicksearch
|
|
Plug 'RRethy/vim-illuminate' " highlight other occurences of the word under cursor
|
|
|
|
" filedrawer
|
|
Plug 'vifm/vifm.vim'
|
|
|
|
" editing
|
|
Plug 'tpope/vim-commentary' " easily toggle comments for lines, paragraphs etc with gc
|
|
Plug 'tpope/vim-surround' " lets you change surrounding things with cs (or ds to del, ys to add)
|
|
Plug 'tommcdo/vim-exchange' " adds exchange operator with cx. common use: cxiw . on 2 words to switch
|
|
Plug 'jiangmiao/auto-pairs' " Auto close brackets and ''
|
|
Plug 'junegunn/vim-easy-align' " Align tables and other alignable things
|
|
Plug 'junegunn/vim-peekaboo' " Show the contents of regiseters on pasting from '', @, <C-R>
|
|
|
|
" Fuzzy matching
|
|
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --bin' }
|
|
Plug 'junegunn/fzf.vim'
|
|
|
|
" neovim goodies: treesitter and lsp
|
|
Plug 'neovim/nvim-lspconfig' " some commong language server configurations
|
|
Plug 'glepnir/lspsaga.nvim' " nice and fast ui for lsp actions
|
|
|
|
Plug 'nvim-lua/completion-nvim' " simple completion engine built specifically for nvim and lsp
|
|
Plug 'steelsojka/completion-buffers' " completion source from words found in current buffers
|
|
|
|
Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
|
|
Plug 'nvim-treesitter/completion-treesitter'
|
|
|
|
|
|
Plug 'desmap/ale-sensible' | Plug 'w0rp/ale' " asynchronous linting - might be superseded by lsp or coc.nvim at some point
|
|
" statusline
|
|
Plug 'vim-airline/vim-airline'
|
|
Plug 'vim-airline/vim-airline-themes'
|
|
Plug 'edkolev/tmuxline.vim'
|
|
" Colorschemes
|
|
Plug 'chriskempson/base16-vim'
|
|
Plug 'reedes/vim-colors-pencil'
|
|
|
|
" RMarkdown & LaTeX workflow
|
|
Plug 'vim-pandoc/vim-pandoc-syntax'
|
|
Plug 'vim-pandoc/vim-pandoc'
|
|
" Notes and Wiki
|
|
Plug 'dyng/ctrlsf.vim' " search-and-edit of many wiki files at once
|
|
Plug 'lervag/wiki.vim' " foundational wiki system, allowing links between plaintext files
|
|
Plug 'alok/notational-fzf-vim' " quickly search through the wiki
|
|
" Prose Workflow
|
|
Plug 'micarmst/vim-spellsync' " personal dict improvements for git sync
|
|
Plug 'ron89/thesaurus_query.vim' " find thesaurus backed synonyms for word under cursor
|
|
Plug 'kana/vim-textobj-user' " dependency for most other textobj plugins
|
|
Plug 'reedes/vim-textobj-sentence' " extends the capabilities of sentence detection
|
|
" and allows you to jump to the *end* of this <g)> or last <g(> sentence.
|
|
|
|
Plug 'junegunn/goyo.vim', { 'for': ['pandoc', 'markdown', 'txt'], 'on': 'Goyo' } " provide distraction free writing
|
|
Plug 'junegunn/limelight.vim', { 'for': ['pandoc', 'markdown', 'txt'], 'on': 'Goyo' } " provide even distraction free-er writing (lowlight paragraphs)
|
|
" Language Integration
|
|
Plug 'euclidianAce/BetterLua.vim' " better syntax highlighting for lua
|
|
|
|
if !has('nvim')
|
|
Plug 'tpope/vim-sensible'
|
|
endif
|
|
|
|
" Plug 'liuchengxu/vim-which-key', { 'on': ['WhichKey', 'WhichKey!'] } ->
|
|
" instructions: http://liuchengxu.org/vim-which-key/, needs setup tp become
|
|
" useful. TODO enable when setup is more settled down
|
|
|
|
call plug#end()
|
|
endif
|