blob: 277ba94e8b7b20864bb8c2d8e56cedb51c6bb2a9 [file] [log] [blame]
Bram Moolenaar7a329912010-05-21 12:05:36 +02001" Vim filetype plugin
2" Language: Markdown
3" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
Bram Moolenaar89bcfda2016-08-30 23:26:57 +02004" Last Change: 2016 Aug 29
Bram Moolenaar7a329912010-05-21 12:05:36 +02005
6if exists("b:did_ftplugin")
7 finish
8endif
9
10runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
Bram Moolenaar7a329912010-05-21 12:05:36 +020011
12setlocal comments=fb:*,fb:-,fb:+,n:> commentstring=>\ %s
Bram Moolenaar543b7ef2013-06-01 14:50:56 +020013setlocal formatoptions+=tcqln formatoptions-=r formatoptions-=o
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020014setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^[-*+]\\s\\+\\\|^\\[^\\ze[^\\]]\\+\\]:
Bram Moolenaar7a329912010-05-21 12:05:36 +020015
Bram Moolenaarf1568ec2011-12-14 21:17:39 +010016if exists('b:undo_ftplugin')
17 let b:undo_ftplugin .= "|setl cms< com< fo< flp<"
18else
19 let b:undo_ftplugin = "setl cms< com< fo< flp<"
20endif
Bram Moolenaar7a329912010-05-21 12:05:36 +020021
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020022function! MarkdownFold()
23 let line = getline(v:lnum)
24
25 " Regular headers
26 let depth = match(line, '\(^#\+\)\@<=\( .*$\)\@=')
27 if depth > 0
28 return ">" . depth
29 endif
30
31 " Setext style headings
32 let nextline = getline(v:lnum + 1)
33 if (line =~ '^.\+$') && (nextline =~ '^=\+$')
34 return ">1"
35 endif
36
37 if (line =~ '^.\+$') && (nextline =~ '^-\+$')
38 return ">2"
39 endif
40
41 return "="
42endfunction
43
44if has("folding") && exists("g:markdown_folding")
45 setlocal foldexpr=MarkdownFold()
46 setlocal foldmethod=expr
47 let b:undo_ftplugin .= " foldexpr< foldmethod<"
48endif
49
Bram Moolenaar7a329912010-05-21 12:05:36 +020050" vim:set sw=2: