]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
runtime(rustfmt): Recover accidentally deleted code, don't hide rustfmt error
authorArkissa <mrarkssac@gmail.com>
Sun, 25 Jan 2026 15:42:24 +0000 (15:42 +0000)
committerChristian Brabandt <cb@256bit.org>
Sun, 25 Jan 2026 15:46:09 +0000 (15:46 +0000)
closes: #19251

Signed-off-by: Arkissa <mrarkssac@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
runtime/autoload/rustfmt.vim
runtime/doc/ft_rust.txt
runtime/doc/tags

index 268a1c02ccf6d85aeb075b17e500db28fed4220d..3d905296a6e92c8085efeb8c3684129b65bb30b3 100644 (file)
@@ -1,7 +1,8 @@
 " 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
@@ -69,6 +70,12 @@ function! s:RustfmtWriteMode()
 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"))
@@ -199,7 +206,7 @@ function! s:RunRustfmt(command, tmpname, from_writepre)
             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
 
@@ -218,7 +225,10 @@ function! s:RunRustfmt(command, tmpname, from_writepre)
 
     " 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)
index b1789b8141bb4c064a450a4b830251d59d0061cb..7426caad600a0f3980e417d6aca89d4db073fcdb 100644 (file)
@@ -166,6 +166,13 @@ g:rustfmt_detect_version~
        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~
index a049f7002812da2fd9bf40adc1c21b69d9fb271b..cafe489a77b1fd28e2f25cb2bd818cb746fef2ec 100644 (file)
@@ -7975,6 +7975,7 @@ g:rustfmt_command ft_rust.txt     /*g:rustfmt_command*
 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*