X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/8d3d1132bfd271842f1da6835bc22a9f1efc1012..4b7ce1ffb672ce8fad55e028fda978b93b29f78b:/indent/markdown.vim diff --git a/indent/markdown.vim b/indent/markdown.vim index 540bc04..2fa4cda 100755 --- a/indent/markdown.vim +++ b/indent/markdown.vim @@ -5,15 +5,15 @@ setlocal indentexpr=GetMarkdownIndent() setlocal nolisp setlocal autoindent -" Automatically insert bullets -setlocal formatoptions+=r -" Do not automatically insert bullets when auto-wrapping with text-width -setlocal formatoptions-=c -" Accept various markers as bullets -setlocal comments=b:*,b:+,b:- - " Automatically continue blockquote on line break -setlocal comments+=b:> +setlocal formatoptions+=r +setlocal comments=b:> +if get(g:, "vim_markdown_auto_insert_bullets", 1) + " Do not automatically insert bullets when auto-wrapping with text-width + setlocal formatoptions-=c + " Accept various markers as bullets + setlocal comments+=b:*,b:+,b:- +endif " Only define the function once if exists("*GetMarkdownIndent") | finish | endif @@ -28,6 +28,10 @@ function! s:IsLiStart(line) \ a:line =~ '^\s*[*+-] \+' endfunction +function! s:IsHeaderLine(line) + return a:line =~ '^\s*#' +endfunction + function! s:IsBlankLine(line) return a:line =~ '^$' endfunction @@ -44,7 +48,7 @@ function GetMarkdownIndent() if v:lnum > 2 && s:IsBlankLine(getline(v:lnum - 1)) && s:IsBlankLine(getline(v:lnum - 2)) return 0 endif - let list_ind = 4 + let list_ind = get(g:, "vim_markdown_new_list_item_indent", 4) " Find a non-blank line above the current line. let lnum = s:PrevNonBlank(v:lnum - 1) " At the start of the file use zero indent. @@ -55,6 +59,9 @@ function GetMarkdownIndent() if s:IsLiStart(cline) " Current line is the first line of a list item, do not change indent return indent(v:lnum) + elseif s:IsHeaderLine(cline) && !s:IsMkdCode(v:lnum) + " Current line is the header, do not indent + return 0 elseif s:IsLiStart(line) if s:IsMkdCode(lnum) return ind