Markdown improvements

git-svn-id: http://photonzero.com/dotfiles/trunk@51 23f722f6-122a-0410-8cef-c75bd312dd78
This commit is contained in:
michener 2010-03-24 23:50:41 +00:00
parent 6e57e985bb
commit edb42d8a63
2 changed files with 63 additions and 35 deletions

View file

@ -1,7 +1,8 @@
" markdown filetype file
" general per-language filetype file
if exists("did\_load\_filetypes")
finish
endif
" Filetype mappingss
augroup markdown
au! BufRead,BufNewFile *.mkd setfiletype mkd
augroup END
@ -11,6 +12,10 @@ augroup END
augroup csv
au! BufNewFile,BufRead *.csv setf csv
augroup END
au BufRead,BufNewFile *.go set filetype=go
"Settings per filetype
augroup python
"autocmd FileType python set omnifunc=pythoncomplete#Complete
"autocmd FileType python call SuperTabSetCompletionType("<C-X><C-O>")
@ -26,4 +31,7 @@ autocmd FileType javascript set softtabstop=4
autocmd FileType javascript set shiftwidth=4
autocmd FileType javascript set expandtab
augroup END
au BufRead,BufNewFile *.go set filetype=go
augroup mkd
autocmd FileType mkd set ai formatoptions=tcroqn2 comments=n:&gt;
augroup END

View file

@ -2,12 +2,11 @@
" Language: Markdown
" Maintainer: Ben Williams <benw@plasticboy.com>
" URL: http://plasticboy.com/markdown-vim-mode/
" Version: 6
" Last Change: 2006 September 1
" Version: 9
" Last Change: 2009 May 18
" Remark: Uses HTML syntax file
" Remark: I don't do anything with angle brackets (<>) because that would too easily
" easily conflict with HTML syntax
" TODO: Do something appropriate with image syntax
" TODO: Handle stuff contained within stuff (e.g. headings within blockquotes)
@ -37,13 +36,23 @@ syn case ignore
syn sync linebreaks=1
"additions to HTML groups
syn region htmlBold start=/\*\@<!\*\*\*\@!/ end=/\*\@<!\*\*\*\@!/ contains=@Spell,htmlItalic
syn region htmlItalic start=/\*\@<!\*\*\@!/ end=/*\@<!\*\*\@!/ contains=htmlBold
syn region htmlBold start=/_\@<!___\@!/ end=/_\@<!___\@!/ contains=htmlItalic
syn region htmlItalic start=/_\@<!__\@!/ end=/_\@<!__\@!/ contains=htmlBold
syn region htmlString start="]("ms=s+2 end=")"me=e-1
syn region htmlLink start="\["ms=s+1 end="\]"me=e-1
syn region htmlString start="\(\[.*]: *\)\@<=.*" end="$"
syn region htmlBold start=/\\\@<!\(^\|\A\)\@=\*\@<!\*\*\*\@!/ end=/\\\@<!\*\@<!\*\*\*\@!\($\|\A\)\@=/ contains=@Spell,htmlItalic
syn region htmlItalic start=/\\\@<!\(^\|\A\)\@=\*\@<!\*\*\@!/ end=/\\\@<!\*\@<!\*\*\@!\($\|\A\)\@=/ contains=htmlBold,@Spell
syn region htmlBold start=/\\\@<!\(^\|\A\)\@=_\@<!___\@!/ end=/\\\@<!_\@<!___\@!\($\|\A\)\@=/ contains=htmlItalic,@Spell
syn region htmlItalic start=/\\\@<!\(^\|\A\)\@=_\@<!__\@!/ end=/\\\@<!_\@<!__\@!\($\|\A\)\@=/ contains=htmlBold,@Spell
" [link](URL) | [link][id] | [link][]
syn region mkdLink matchgroup=mkdDelimiter start="\!\?\[" end="\]\ze\s*[[(]" contains=@Spell nextgroup=mkdURL,mkdID skipwhite oneline
syn region mkdID matchgroup=mkdDelimiter start="\[" end="\]" contained
syn region mkdURL matchgroup=mkdDelimiter start="(" end=")" contained
" Link definitions: [id]: URL (Optional Title)
" TODO handle automatic links without colliding with htmlTag (<URL>)
syn region mkdLinkDef matchgroup=mkdDelimiter start="^ \{,3}\zs\[" end="]:" oneline nextgroup=mkdLinkDefTarget skipwhite
syn region mkdLinkDefTarget start="<\?\zs\S" excludenl end="\ze[>[:space:]\n]" contained nextgroup=mkdLinkTitle,mkdLinkDef skipwhite skipnl oneline
syn region mkdLinkTitle matchgroup=mkdDelimiter start=+"+ end=+"+ contained
syn region mkdLinkTitle matchgroup=mkdDelimiter start=+'+ end=+'+ contained
syn region mkdLinkTitle matchgroup=mkdDelimiter start=+(+ end=+)+ contained
"define Markdown groups
syn match mkdLineContinue ".$" contained
@ -54,20 +63,23 @@ syn match mkdRule /^\s*-\{3,}$/
syn match mkdRule /^\s*\*\{3,5}$/
syn match mkdListItem "^\s*[-*+]\s\+"
syn match mkdListItem "^\s*\d\+\.\s\+"
syn match mkdCode /^\(\s\{4,}\|[\t]\+\)[^*-+ ].*$/
syn region mkdCode start=/`/ end=/`/
syn region mkdCode start=/\s*``[^`]*/ skip=/`/ end=/[^`]*``\s*/
syn region mkdBlockquote start=/^\s*>/ end=/$/ contains=mkdLineContinue
syn match mkdCode /^\s*\n\(\(\s\{4,}[^ ]\|\t\+[^\t]\).*\n\)\+/
syn match mkdLineBreak / \+$/
syn region mkdCode start=/\\\@<!`/ end=/\\\@<!`/
syn region mkdCode start=/\s*``[^`]*/ end=/[^`]*``\s*/
syn region mkdBlockquote start=/^\s*>/ end=/$/ contains=mkdLineBreak,mkdLineContinue,@Spell
syn region mkdCode start="<pre[^>]*>" end="</pre>"
syn region mkdCode start="<code[^>]*>" end="</code>"
"HTML headings
syn region htmlH1 start="#" end="\($\|#\+\)"
syn region htmlH2 start="##" end="\($\|#\+\)"
syn region htmlH3 start="###" end="\($\|#\+\)"
syn region htmlH4 start="####" end="\($\|#\+\)"
syn region htmlH5 start="#####" end="\($\|#\+\)"
syn region htmlH6 start="######" end="\($\|#\+\)"
syn match htmlH1 /^.\+\n=\+$/
syn match htmlH2 /^.\+\n-\+$/
syn region htmlH1 start="^\s*#" end="\($\|#\+\)" contains=@Spell
syn region htmlH2 start="^\s*##" end="\($\|#\+\)" contains=@Spell
syn region htmlH3 start="^\s*###" end="\($\|#\+\)" contains=@Spell
syn region htmlH4 start="^\s*####" end="\($\|#\+\)" contains=@Spell
syn region htmlH5 start="^\s*#####" end="\($\|#\+\)" contains=@Spell
syn region htmlH6 start="^\s*######" end="\($\|#\+\)" contains=@Spell
syn match htmlH1 /^.\+\n=\+$/ contains=@Spell
syn match htmlH2 /^.\+\n-\+$/ contains=@Spell
"highlighting for Markdown groups
HtmlHiLink mkdString String
@ -76,7 +88,15 @@ HtmlHiLink mkdBlockquote Comment
HtmlHiLink mkdLineContinue Comment
HtmlHiLink mkdListItem Identifier
HtmlHiLink mkdRule Identifier
HtmlHiLink mkdLineBreak Todo
HtmlHiLink mkdLink htmlLink
HtmlHiLink mkdURL htmlString
HtmlHiLink mkdID Identifier
HtmlHiLink mkdLinkDef mkdID
HtmlHiLink mkdLinkDefTarget mkdURL
HtmlHiLink mkdLinkTitle htmlString
HtmlHiLink mkdDelimiter Delimiter
let b:current_syntax = "mkd"