]> Sergey Matveev's repositories - dotfiles.git/blobdiff - vim/.vim/autoload/fmt.vim
Double formatting
[dotfiles.git] / vim / .vim / autoload / fmt.vim
index 5e7a001c5b4fdd2e4204d8e867de0226976673db..0ba912b5efbd56580ba58d92d4b861aefe087b98 100644 (file)
@@ -1,7 +1,21 @@
 vim9script
 
 export def Do()
-    var view = winsaveview()
-    normal gg=G
-    winrestview(view)
+    var lines = []
+    job_start(&equalprg, {
+        in_io: "buffer", in_buf: bufnr("%"),
+        callback: (chan, msg) => {
+            lines = add(lines, msg)
+        },
+        exit_cb: (job, status) => {
+            if status != 0
+                cgetexpr lines
+                copen
+                return
+            endif
+            var view = winsaveview()
+            silent execute ":%!" .. &equalprg
+            winrestview(view)
+        }
+    })
 enddef