blob: 1d01c58ee16f7cfc289c9ced118a8a866e7c6949 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
" Autoload functions for after/ftplugin/markdown/autoformat.vim
" Suspend auto-format when pasting anything with a linebreak
function! ftplugin#markdown#autoformat#Line() abort
if getline('.') =~# '\m^ '
if &formatoptions =~# '\ma'
setlocal formatoptions-=a
let b:markdown_autoformat_suspended = 1
endif
elseif exists('b:markdown_autoformat_suspended')
setlocal formatoptions+=a
unlet b:markdown_autoformat_suspended
endif
endfunction
" Suspend auto-formatting when in a code block (four-space indent)
function! ftplugin#markdown#autoformat#Put(above) abort
let l:suspended = 0
if &formatoptions =~# '\ma' && @" =~# '\m\n'
setlocal formatoptions-=a
let l:suspended = 1
endif
if a:above
normal! P
else
normal! p
endif
if l:suspended
setlocal formatoptions+=a
endif
endfunction
" Wrapper functions for #Put() above/below
function! ftplugin#markdown#autoformat#PutAbove() abort
call ftplugin#markdown#autoformat#Put(1)
endfunction
function! ftplugin#markdown#autoformat#PutBelow() abort
call ftplugin#markdown#autoformat#Put(0)
endfunction
|