summaryrefslogtreecommitdiff
path: root/ftplugin/rust.vim
blob: 7443f9d111c9e56a08104f7ad6ac62d6be197e20 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
setlocal ts=4 sts=4 sw=4 expandtab

set formatprg=rustfmt

" set makeprg=cargo\ clippy
set errorformat=
            \%-G,
            \%-Gerror:\ aborting\ %.%#,
            \%-Gerror:\ Could\ not\ compile\ %.%#,
            \%Eerror:\ %m,
            \%Eerror[E%n]:\ %m,
            \%Wwarning:\ %m,
            \%Inote:\ %m,
            \%C\ %#-->\ %f:%l:%c,
            \%E\ \ left:%m,%C\ right:%m\ %f:%l:%c,%Z

function! RustMake() abort
    set makeprg=nix-shell\ --run\ \"cargo\ build\"
    silent! make
    set makeprg=nix-shell\ --run\ \"cargo\ clippy\"
    silent! make
endfunction

nnoremap <leader>r :call RustMake() <bar> silent! redraw <bar> cwindow<cr>

augroup RustFmt
    autocmd!
    autocmd BufWritePost *.rs | silent exec "!cargo fmt" | bufdo edit | silent! redraw
augroup END