call plug#begin('~/.config/nvim/plugged') " Language Tools Plug 'roxma/nvim-yarp' " For language client Plug 'ncm2/ncm2' " For language client Plug 'autozimu/LanguageClient-neovim', {'branch': 'next', 'do': 'bash install.sh' } Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --bin' } Plug 'junegunn/fzf.vim' Plug 'SirVer/ultisnips' Plug 'luochen1990/rainbow' " Plug 'enomsg/vim-haskellConcealPlus' " This one isn't always good. " Languages Plug 'whonore/Coqtail' Plug 'wlangstroth/vim-racket' Plug 'lervag/vimtex' Plug 'idris-hackers/idris-vim' Plug 'rhysd/vim-crystal' Plug 'elmcast/elm-vim' Plug 'ap/vim-css-color' Plug 'vim-scripts/avrasm.vim' Plug 'idris-hackers/idris-vim' " Themes Plug 'arcticicestudio/nord-vim' " Editing Tools Plug 'junegunn/goyo.vim' Plug 'iamcco/markdown-preview.vim' Plug 'junegunn/limelight.vim' call plug#end() set exrc " Execute local vimscripts set shiftwidth=4 " Make indents 4 chars wide set expandtab " Expand tabs into spaces set number " Set line numbers set mouse=a " Allow mouse set signcolumn=yes " Always show extra column set guifont=Iosevka " Use Ioeska in frontends. autocmd BufEnter * call ncm2#enable_for_buffer() " Enable ncm2 for all buffers autocmd BufRead,BufNewFile *.v set filetype=coq " Coq is not Verilog autocmd FileType crystal setlocal shiftwidth=2 " Crystal likes 2-wide indent set completeopt=noinsert,menuone colorscheme nord let g:limelight_conceal_ctermfg = 8 let g:tex_flavor = 'latex' " Language Client settings let g:rainbow_active = 1 let g:LanguageClient_hasSnippetSupport = 0 let g:LanguageClient_serverCommands = { \ 'haskell': ['ghcide', '--lsp'], \ 'rust': ['rustup', 'run', 'stable', 'rls'], \ 'c': ['clangd'], \ 'crystal': ['scry'], \ 'cpp': ['clangd'], \ 'javascript': ['javascript-typescript-stdio'], \ 'elm': ['elm-language-server', '--stdio'], \ 'python': ['python', '-m', 'pyls'] \ } let g:deoplete#enable_at_startup = 1 let g:LanguageClient_diagnosticsDisplay = { \ 1: {"name": "Error","texthl": "ALEError","signText": ">>","signTexthl": "ALEErrorSign",}, \ 2: {"name": "Warning","texthl": "ALEWarning","signText": ">>","signTexthl": "ALEWarningSign",}, \ 3: {"name": "Information","texthl": "ALEInfo","signText": ">>","signTexthl": "ALEInfoSign",}, \ 4: {"name": "Hint","texthl": "ALEInfo","signText": ">>","signTexthl": "ALEInfoSign",},} let g:LanguageClient_rootMarkers = { \ 'haskell': ['.git'], \ 'elm': ['elm.json'], \ } nmap M :call LanguageClient#explainErrorAtPoint() nmap K :call LanguageClient_contextMenu() nmap ? :call LanguageClient#textDocument_hover() " UltiSnips settings let g:UltiSnipsExpandTrigger="" let g:UltiSnipsJumpForwardTrigger="" let g:UltiSnipsJumpBackwardTrigger="" " Racket settings au BufReadPost *.rkt,*.rktl set filetype=racket au filetype racket set lisp au filetype racket set autoindent " Coq Settings function! g:CoqtailHighlight() hi def link CoqtailChecked Visual hi def link CoqtailSent PmenuSel endfunction