blob: fe84ab37cfe4162a7a118f89781916348fa3e41d [file] [log] [blame]
Bram Moolenaarb59ae592022-11-23 23:46:31 +00001" Vim filetype plugin
2" Language: Mermaid
3" Maintainer: Craig MacEachern <https://github.com/craigmac/vim-mermaid>
4" Last Change: 2022 Oct 13
5
6if exists("b:did_ftplugin")
7 finish
8endif
9
10let s:keepcpo= &cpo
11set cpo&vim
12
13" Use mermaid live editor's style
14setlocal expandtab
15setlocal shiftwidth=2
16setlocal softtabstop=-1
17setlocal tabstop=4
18
19" TODO: comments, formatlist stuff, based on what?
20setlocal comments=b:#,fb:-
21setlocal commentstring=#\ %s
22setlocal formatoptions+=tcqln formatoptions-=r formatoptions-=o
23setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^\\s*[-*+]\\s\\+\\\|^\\[^\\ze[^\\]]\\+\\]:\\&^.\\{4\\}
24
25if exists('b:undo_ftplugin')
26 let b:undo_ftplugin .= "|setl cms< com< fo< flp< et< ts< sts< sw<"
27else
28 let b:undo_ftplugin = "setl cms< com< fo< flp< et< ts< sts< sw<"
29endif
30
31if !exists("g:no_plugin_maps") && !exists("g:no_markdown_maps")
32 nnoremap <silent><buffer> [[ :<C-U>call search('\%(^#\{1,5\}\s\+\S\\|^\S.*\n^[=-]\+$\)', "bsW")<CR>
33 nnoremap <silent><buffer> ]] :<C-U>call search('\%(^#\{1,5\}\s\+\S\\|^\S.*\n^[=-]\+$\)', "sW")<CR>
34 xnoremap <silent><buffer> [[ :<C-U>exe "normal! gv"<Bar>call search('\%(^#\{1,5\}\s\+\S\\|^\S.*\n^[=-]\+$\)', "bsW")<CR>
35 xnoremap <silent><buffer> ]] :<C-U>exe "normal! gv"<Bar>call search('\%(^#\{1,5\}\s\+\S\\|^\S.*\n^[=-]\+$\)', "sW")<CR>
36 let b:undo_ftplugin .= '|sil! nunmap <buffer> [[|sil! nunmap <buffer> ]]|sil! xunmap <buffer> [[|sil! xunmap <buffer> ]]'
37endif
38
39" if has("folding") && get(g:, "markdown_folding", 0)
40" setlocal foldexpr=MarkdownFold()
41" setlocal foldmethod=expr
42" setlocal foldtext=MarkdownFoldText()
43" let b:undo_ftplugin .= "|setl foldexpr< foldmethod< foldtext<"
44" endif
45
46let &cpo = s:keepcpo
47unlet s:keepcpo
48
49" vim:set sw=2: