summaryrefslogtreecommitdiff
path: root/mnv/runtime/ftplugin/mermaid.mnv
diff options
context:
space:
mode:
Diffstat (limited to 'mnv/runtime/ftplugin/mermaid.mnv')
-rw-r--r--mnv/runtime/ftplugin/mermaid.mnv50
1 files changed, 50 insertions, 0 deletions
diff --git a/mnv/runtime/ftplugin/mermaid.mnv b/mnv/runtime/ftplugin/mermaid.mnv
new file mode 100644
index 0000000000..fc2cd5e833
--- /dev/null
+++ b/mnv/runtime/ftplugin/mermaid.mnv
@@ -0,0 +1,50 @@
+" MNV filetype plugin
+" Language: Mermaid
+" Maintainer: Craig MacEachern <https://github.com/craigmac/mnv-mermaid>
+" Last Change: 2022 Oct 13
+" 2024 Jul 18 by MNV Project (adjust comments)
+
+if exists("b:did_ftplugin")
+ finish
+endif
+
+let s:keepcpo= &cpo
+set cpo&mnv
+
+" Use mermaid live editor's style
+setlocal expandtab
+setlocal shiftwidth=2
+setlocal softtabstop=-1
+setlocal tabstop=4
+
+setlocal comments=:%%
+setlocal commentstring=%%\ %s
+" TODO: comments, formatlist stuff, based on what?
+setlocal formatoptions+=tcqln formatoptions-=r formatoptions-=o
+setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^\\s*[-*+]\\s\\+\\\|^\\[^\\ze[^\\]]\\+\\]:\\&^.\\{4\\}
+
+if exists('b:undo_ftplugin')
+ let b:undo_ftplugin .= "|setl cms< com< fo< flp< et< ts< sts< sw<"
+else
+ let b:undo_ftplugin = "setl cms< com< fo< flp< et< ts< sts< sw<"
+endif
+
+if !exists("g:no_plugin_maps") && !exists("g:no_markdown_maps")
+ nnoremap <silent><buffer> [[ :<C-U>call search('\%(^#\{1,5\}\s\+\S\\|^\S.*\n^[=-]\+$\)', "bsW")<CR>
+ nnoremap <silent><buffer> ]] :<C-U>call search('\%(^#\{1,5\}\s\+\S\\|^\S.*\n^[=-]\+$\)', "sW")<CR>
+ xnoremap <silent><buffer> [[ :<C-U>exe "normal! gv"<Bar>call search('\%(^#\{1,5\}\s\+\S\\|^\S.*\n^[=-]\+$\)', "bsW")<CR>
+ xnoremap <silent><buffer> ]] :<C-U>exe "normal! gv"<Bar>call search('\%(^#\{1,5\}\s\+\S\\|^\S.*\n^[=-]\+$\)', "sW")<CR>
+ let b:undo_ftplugin .= '|sil! nunmap <buffer> [[|sil! nunmap <buffer> ]]|sil! xunmap <buffer> [[|sil! xunmap <buffer> ]]'
+endif
+
+" if has("folding") && get(g:, "markdown_folding", 0)
+" setlocal foldexpr=MarkdownFold()
+" setlocal foldmethod=expr
+" setlocal foldtext=MarkdownFoldText()
+" let b:undo_ftplugin .= "|setl foldexpr< foldmethod< foldtext<"
+" endif
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
+" mnv:set sw=2: