From 18db8ae84cf7693f813216188decdf5d0480b9da Mon Sep 17 00:00:00 2001 From: Julien Rabier Date: Sun, 28 Jun 2020 15:42:56 +0200 Subject: [PATCH] [nvim] add niceties for rust --- private_dot_config/nvim/init.vim.tmpl | 93 ++++++++++++++++++--------- 1 file changed, 63 insertions(+), 30 deletions(-) diff --git a/private_dot_config/nvim/init.vim.tmpl b/private_dot_config/nvim/init.vim.tmpl index 1be40d4..a9a8071 100644 --- a/private_dot_config/nvim/init.vim.tmpl +++ b/private_dot_config/nvim/init.vim.tmpl @@ -1,34 +1,37 @@ packadd minpac call minpac#init() -" minpac must have {'type': 'opt'} so that it can be loaded with `packadd`. -call minpac#add('k-takata/minpac', {'type': 'opt'}) -call minpac#add('honza/vim-snippets', {'type': 'start'}) -call minpac#add('SirVer/ultisnips') -call minpac#add('junegunn/limelight.vim') -call minpac#add('junegunn/goyo.vim') -call minpac#add('junegunn/fzf') -call minpac#add('junegunn/fzf.vim') -call minpac#add('ambv/black') -call minpac#add('davidhalter/jedi-vim') -call minpac#add('vim-airline/vim-airline') -call minpac#add('ap/vim-css-color') -call minpac#add('fatih/vim-go') -call minpac#add('dpelle/vim-Grammalecte') -call minpac#add('ledger/vim-ledger') -call minpac#add('tpope/vim-markdown') -call minpac#add('nfnty/vim-nftables') -call minpac#add('adborden/vim-notmuch-address') -call minpac#add('cespare/vim-toml') -call minpac#add('pbrisbin/vim-mkdir') -call minpac#add('tpope/vim-eunuch') -call minpac#add('lambdalisue/suda.vim') -call minpac#add('airblade/vim-gitgutter') -call minpac#add('rust-lang/rust.vim') -call minpac#add('thaerkh/vim-indentguides') -call minpac#add('vim-syntastic/syntastic') -call minpac#add('majutsushi/tagbar') -call minpac#add('Shougo/deoplete.nvim') -call minpac#add('racer-rust/vim-racer') + " minpac must have {'type': 'opt'} so that it can be loaded with `packadd`. + call minpac#add('k-takata/minpac', {'type': 'opt'}) + call minpac#add('honza/vim-snippets', {'type': 'start'}) + call minpac#add('SirVer/ultisnips') + call minpac#add('junegunn/limelight.vim') + call minpac#add('junegunn/goyo.vim') + call minpac#add('junegunn/fzf') + call minpac#add('junegunn/fzf.vim') + call minpac#add('ambv/black') + call minpac#add('davidhalter/jedi-vim') + call minpac#add('vim-airline/vim-airline') + call minpac#add('ap/vim-css-color') + call minpac#add('fatih/vim-go') + call minpac#add('dpelle/vim-Grammalecte') + call minpac#add('ledger/vim-ledger') + call minpac#add('tpope/vim-markdown') + call minpac#add('nfnty/vim-nftables') + call minpac#add('adborden/vim-notmuch-address') + call minpac#add('cespare/vim-toml') + call minpac#add('pbrisbin/vim-mkdir') + call minpac#add('tpope/vim-eunuch') + call minpac#add('lambdalisue/suda.vim') + call minpac#add('airblade/vim-gitgutter') + call minpac#add('rust-lang/rust.vim') + call minpac#add('thaerkh/vim-indentguides') + call minpac#add('vim-syntastic/syntastic') + call minpac#add('majutsushi/tagbar') + call minpac#add('Shougo/deoplete.nvim') + call minpac#add('racer-rust/vim-racer') + call minpac#add('neomake/neomake') + call minpac#add('ervandew/supertab') + call minpac#add('dense-analysis/ale') command! PackUpdate call minpac#update() command! PackClean call minpac#clean() @@ -69,6 +72,7 @@ set expandtab set tabstop=4 set shiftwidth=4 set softtabstop=4 +set pastetoggle= "set formatoptions=tcrqn2w "set formatlistpat=^\\s*[\\d\\*-]\\+[\\]:.)}\\t\ ]\\s* @@ -85,7 +89,7 @@ match RedundantSpaces /\s\+$\| \+\ze\t\|\t/ " Jump to the last position when reopening a file if has("autocmd") - au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif + au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif endif nmap :TagbarToggle @@ -181,3 +185,32 @@ let g:syntastic_always_populate_loc_list = 1 let g:syntastic_auto_loc_list = 1 let g:syntastic_check_on_open = 1 let g:syntastic_check_on_wq = 0 + +" Racer +augroup Racer + autocmd! + autocmd FileType rust nmap gd (rust-def) + autocmd FileType rust nmap gs (rust-def-split) + autocmd FileType rust nmap gx (rust-def-vertical) + autocmd FileType rust nmap gt (rust-def-tab) + autocmd FileType rust nmap gd (rust-doc) + autocmd FileType rust nmap gD (rust-doc-tab) +augroup END + +" rust https://dev.to/drmason13/configure-neovim-for-rust-development-1fjn +" setup rust_analyzer LSP (IDE features) +"lua require'nvim_lsp'.rust_analyzer.setup{} + +" Use LSP omni-completion in Rust files +"autocmd Filetype rust setlocal omnifunc=v:lua.vim.lsp.omnifunc + +" Enable deoplete autocompletion in Rust files +let g:deoplete#enable_at_startup = 1 + +" Press Tab to scroll _down_ a list of auto-completions +let g:SuperTabDefaultCompletionType = "" + +" ale rust-analyser +let g:ale_linters = {'rust': ['analyzer']} + +nnoremap c :!cargo clippy