" Author: Stephen Sugden <stephen@stephensugden.com>
" Last Modified: 2023-09-11
" Last Change:
-" 2025 Oct 27 by Vim project don't use rustfmt as 'formatprg' by default
+" 2025 Oct 27 by Vim project: don't use rustfmt as 'formatprg' by default
+" 2026 Jan 25 by Vim project: don't hide rustfmt errors, restore default var
"
"
" Adapted from https://github.com/fatih/vim-go
endfunction
function! s:RustfmtConfigOptions()
+ let default = '--edition 2018'
+
+ if !get(g:, 'rustfmt_find_toml', 0)
+ return default
+ endif
+
let l:rustfmt_toml = findfile('rustfmt.toml', expand('%:p:h') . ';')
if l:rustfmt_toml !=# ''
return '--config-path '.shellescape(fnamemodify(l:rustfmt_toml, ":p"))
echo "rust.vim: was not able to parse rustfmt messages. Here is the raw output:"
echo "\n"
for l:line in l:stderr
- echo l:line
+ echomsg l:line
endfor
endif
" Open lwindow after we have changed back to the previous directory
if l:open_lwindow == 1
+ try
lwindow
+ catch /^Vim\%((\S\+)\)\=:E776:/
+ endtry
endif
call winrestview(l:view)
Disabled by default for performance reasons
>
let g:rustfmt_detect_version = 1
+<
+ *g:rustfmt_find_toml*
+g:rustfmt_find_toml~
+ When set to 1, will try to find `rustfmt.toml` file by searching from
+ current path upwards. Disabled by default for performance reasons
+>
+ let g:rustfmt_find_toml = 1
<
*g:rust_playpen_url*
g:rust_playpen_url~
g:rustfmt_detect_version ft_rust.txt /*g:rustfmt_detect_version*
g:rustfmt_emit_files ft_rust.txt /*g:rustfmt_emit_files*
g:rustfmt_fail_silently ft_rust.txt /*g:rustfmt_fail_silently*
+g:rustfmt_find_toml ft_rust.txt /*g:rustfmt_find_toml*
g:rustfmt_options ft_rust.txt /*g:rustfmt_options*
g:statusline_winid options.txt /*g:statusline_winid*
g:syntax_on syntax.txt /*g:syntax_on*