summary refs log tree commit diff
path: root/.vim/autoload/balena_diagnostics_fold.vim
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2020-12-07 19:15:23 +0100
committerRobert Günzler <r@gnzler.io>2021-01-21 19:39:11 +0100
commit04db98668639cb0b431d50e5963f6b156d728078 (patch)
tree4bec29af1c9c34852e974be06301f74de4802199 /.vim/autoload/balena_diagnostics_fold.vim
parent9b8005439ac351ded8f6286aefa2378d25d7add5 (diff)
vim: big update; move lots of things to lua
Diffstat (limited to '.vim/autoload/balena_diagnostics_fold.vim')
-rw-r--r--.vim/autoload/balena_diagnostics_fold.vim25
1 files changed, 25 insertions, 0 deletions
diff --git a/.vim/autoload/balena_diagnostics_fold.vim b/.vim/autoload/balena_diagnostics_fold.vim
new file mode 100644
index 0000000..4513f6b
--- /dev/null
+++ b/.vim/autoload/balena_diagnostics_fold.vim
@@ -0,0 +1,25 @@
+"
+" manually:
+"   setlocal foldexpr=balena_diagnostics_fold#expr(v:lnum)
+"   setlocal foldmethod=expr
+"   setlocal foldlevel=1
+" or as command:
+"   command! BalenaDiagnosticsFold call balena_diagnostics_fold#apply()
+"
+
+function! s:foldexpr(lnum)
+    return getline(a:lnum)=~'^===\s.*\s===$'?'>1':getline(a:lnum)=~'^---\s.*\s---$'?'>2':'='
+endfunction
+
+function! balena_diagnostics_fold#expr(lnum) abort
+    return s:foldexpr(a:lnum)
+endfunction
+
+function! balena_diagnostics_fold#apply() abort
+    setlocal
+        \ foldmethod=expr
+        \ foldexpr=balena_diagnostics_fold#expr(v:lnum)
+        \ foldcolumn=auto:9
+        \ foldlevel=1
+        \ foldenable
+endfunction