]> Sergey Matveev's repositories - dotfiles.git/blobdiff - vim/.vim/autoload/fmt.vim
HI flag
[dotfiles.git] / vim / .vim / autoload / fmt.vim
index 5e7a001c5b4fdd2e4204d8e867de0226976673db..3c24a5dce14fee5848aaefdc793fd3def4f1f7f0 100644 (file)
@@ -1,7 +1,24 @@
 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
+                for i in range(len(lines))
+                    lines[i] = substitute(lines[i], "^[^:]\\+:", @% .. ":", "")
+                endfor
+                cgetexpr lines
+                copen
+                return
+            endif
+            var view = winsaveview()
+            silent execute ":%!" .. &equalprg
+            winrestview(view)
+        }
+    })
 enddef