Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
markdown.vim201 linesDownload Raw Back to syntax
1" Vim syntax file2" Language:     Markdown3" Maintainer:   Tim Pope <https://github.com/tpope/vim-markdown>4" Filenames:    *.markdown5" Last Change:  2022 Oct 136 7if exists("b:current_syntax")8  finish9endif10 11if !exists('main_syntax')12  let main_syntax = 'markdown'13endif14 15if has('folding')16  let s:foldmethod = &l:foldmethod17  let s:foldtext = &l:foldtext18endif19let s:iskeyword = &l:iskeyword20 21runtime! syntax/html.vim22unlet! b:current_syntax23 24if !exists('g:markdown_fenced_languages')25  let g:markdown_fenced_languages = []26endif27let s:done_include = {}28for s:type in map(copy(g:markdown_fenced_languages),'matchstr(v:val,"[^=]*$")')29  if has_key(s:done_include, matchstr(s:type,'[^.]*'))30    continue31  endif32  if s:type =~ '\.'33    let b:{matchstr(s:type,'[^.]*')}_subtype = matchstr(s:type,'\.\zs.*')34  endif35  syn case match36  exe 'syn include @markdownHighlight_'.tr(s:type,'.','_').' syntax/'.matchstr(s:type,'[^.]*').'.vim'37  unlet! b:current_syntax38  let s:done_include[matchstr(s:type,'[^.]*')] = 139endfor40unlet! s:type41unlet! s:done_include42 43syn spell toplevel44if exists('s:foldmethod') && s:foldmethod !=# &l:foldmethod45  let &l:foldmethod = s:foldmethod46  unlet s:foldmethod47endif48if exists('s:foldtext') && s:foldtext !=# &l:foldtext49  let &l:foldtext = s:foldtext50  unlet s:foldtext51endif52if s:iskeyword !=# &l:iskeyword53  let &l:iskeyword = s:iskeyword54endif55unlet s:iskeyword56 57if !exists('g:markdown_minlines')58  let g:markdown_minlines = 5059endif60execute 'syn sync minlines=' . g:markdown_minlines61syn sync linebreaks=162syn case ignore63 64syn match markdownValid '[<>]\c[a-z/$!]\@!' transparent contains=NONE65syn match markdownValid '&\%(#\=\w*;\)\@!' transparent contains=NONE66 67syn match markdownLineStart "^[<@]\@!" nextgroup=@markdownBlock,htmlSpecialChar68 69syn cluster markdownBlock contains=markdownH1,markdownH2,markdownH3,markdownH4,markdownH5,markdownH6,markdownBlockquote,markdownListMarker,markdownOrderedListMarker,markdownCodeBlock,markdownRule70syn cluster markdownInline contains=markdownLineBreak,markdownLinkText,markdownItalic,markdownBold,markdownCode,markdownEscape,@htmlTop,markdownError,markdownValid71 72syn match markdownH1 "^.\+\n=\+$" contained contains=@markdownInline,markdownHeadingRule,markdownAutomaticLink73syn match markdownH2 "^.\+\n-\+$" contained contains=@markdownInline,markdownHeadingRule,markdownAutomaticLink74 75syn match markdownHeadingRule "^[=-]\+$" contained76 77syn region markdownH1 matchgroup=markdownH1Delimiter start=" \{,3}#\s"      end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained78syn region markdownH2 matchgroup=markdownH2Delimiter start=" \{,3}##\s"     end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained79syn region markdownH3 matchgroup=markdownH3Delimiter start=" \{,3}###\s"    end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained80syn region markdownH4 matchgroup=markdownH4Delimiter start=" \{,3}####\s"   end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained81syn region markdownH5 matchgroup=markdownH5Delimiter start=" \{,3}#####\s"  end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained82syn region markdownH6 matchgroup=markdownH6Delimiter start=" \{,3}######\s" end="#*\s*$" keepend oneline contains=@markdownInline,markdownAutomaticLink contained83 84syn match markdownBlockquote ">\%(\s\|$\)" contained nextgroup=@markdownBlock85 86syn region markdownCodeBlock start="^\n\( \{4,}\|\t\)" end="^\ze \{,3}\S.*$" keepend87 88" TODO: real nesting89syn match markdownListMarker "\%(\t\| \{0,4\}\)[-*+]\%(\s\+\S\)\@=" contained90syn match markdownOrderedListMarker "\%(\t\| \{0,4}\)\<\d\+\.\%(\s\+\S\)\@=" contained91 92syn match markdownRule "\* *\* *\*[ *]*$" contained93syn match markdownRule "- *- *-[ -]*$" contained94 95syn match markdownLineBreak " \{2,\}$"96 97syn region markdownIdDeclaration matchgroup=markdownLinkDelimiter start="^ \{0,3\}!\=\[" end="\]:" oneline keepend nextgroup=markdownUrl skipwhite98syn match markdownUrl "\S\+" nextgroup=markdownUrlTitle skipwhite contained99syn region markdownUrl matchgroup=markdownUrlDelimiter start="<" end=">" oneline keepend nextgroup=markdownUrlTitle skipwhite contained100syn region markdownUrlTitle matchgroup=markdownUrlTitleDelimiter start=+"+ end=+"+ keepend contained101syn region markdownUrlTitle matchgroup=markdownUrlTitleDelimiter start=+'+ end=+'+ keepend contained102syn region markdownUrlTitle matchgroup=markdownUrlTitleDelimiter start=+(+ end=+)+ keepend contained103 104syn region markdownLinkText matchgroup=markdownLinkTextDelimiter start="!\=\[\%(\_[^][]*\%(\[\_[^][]*\]\_[^][]*\)*]\%( \=[[(]\)\)\@=" end="\]\%( \=[[(]\)\@=" nextgroup=markdownLink,markdownId skipwhite contains=@markdownInline,markdownLineStart105syn region markdownLink matchgroup=markdownLinkDelimiter start="(" end=")" contains=markdownUrl keepend contained106syn region markdownId matchgroup=markdownIdDelimiter start="\[" end="\]" keepend contained107syn region markdownAutomaticLink matchgroup=markdownUrlDelimiter start="<\%(\w\+:\|[[:alnum:]_+-]\+@\)\@=" end=">" keepend oneline108 109let s:concealends = ''110if has('conceal') && get(g:, 'markdown_syntax_conceal', 1) == 1111  let s:concealends = ' concealends'112endif113exe 'syn region markdownItalic matchgroup=markdownItalicDelimiter start="\*\S\@=" end="\S\@<=\*\|^$" skip="\\\*" contains=markdownLineStart,@Spell' . s:concealends114exe 'syn region markdownItalic matchgroup=markdownItalicDelimiter start="\w\@<!_\S\@=" end="\S\@<=_\w\@!\|^$" skip="\\_" contains=markdownLineStart,@Spell' . s:concealends115exe 'syn region markdownBold matchgroup=markdownBoldDelimiter start="\*\*\S\@=" end="\S\@<=\*\*\|^$" skip="\\\*" contains=markdownLineStart,markdownItalic,@Spell' . s:concealends116exe 'syn region markdownBold matchgroup=markdownBoldDelimiter start="\w\@<!__\S\@=" end="\S\@<=__\w\@!\|^$" skip="\\_" contains=markdownLineStart,markdownItalic,@Spell' . s:concealends117exe 'syn region markdownBoldItalic matchgroup=markdownBoldItalicDelimiter start="\*\*\*\S\@=" end="\S\@<=\*\*\*\|^$" skip="\\\*" contains=markdownLineStart,@Spell' . s:concealends118exe 'syn region markdownBoldItalic matchgroup=markdownBoldItalicDelimiter start="\w\@<!___\S\@=" end="\S\@<=___\w\@!\|^$" skip="\\_" contains=markdownLineStart,@Spell' . s:concealends119exe 'syn region markdownStrike matchgroup=markdownStrikeDelimiter start="\~\~\S\@=" end="\S\@<=\~\~\|^$" contains=markdownLineStart,@Spell' . s:concealends120 121syn region markdownCode matchgroup=markdownCodeDelimiter start="`" end="`" keepend contains=markdownLineStart122syn region markdownCode matchgroup=markdownCodeDelimiter start="`` \=" end=" \=``" keepend contains=markdownLineStart123syn region markdownCodeBlock matchgroup=markdownCodeDelimiter start="^\s*\z(`\{3,\}\).*$" end="^\s*\z1\ze\s*$" keepend124syn region markdownCodeBlock matchgroup=markdownCodeDelimiter start="^\s*\z(\~\{3,\}\).*$" end="^\s*\z1\ze\s*$" keepend125 126syn match markdownFootnote "\[^[^\]]\+\]"127syn match markdownFootnoteDefinition "^\[^[^\]]\+\]:"128 129let s:done_include = {}130for s:type in g:markdown_fenced_languages131  if has_key(s:done_include, matchstr(s:type,'[^.]*'))132    continue133  endif134  exe 'syn region markdownHighlight_'.substitute(matchstr(s:type,'[^=]*$'),'\..*','','').' matchgroup=markdownCodeDelimiter start="^\s*\z(`\{3,\}\)\s*\%({.\{-}\.\)\='.matchstr(s:type,'[^=]*').'}\=\S\@!.*$" end="^\s*\z1\ze\s*$" keepend contains=@markdownHighlight_'.tr(matchstr(s:type,'[^=]*$'),'.','_') . s:concealends135  exe 'syn region markdownHighlight_'.substitute(matchstr(s:type,'[^=]*$'),'\..*','','').' matchgroup=markdownCodeDelimiter start="^\s*\z(\~\{3,\}\)\s*\%({.\{-}\.\)\='.matchstr(s:type,'[^=]*').'}\=\S\@!.*$" end="^\s*\z1\ze\s*$" keepend contains=@markdownHighlight_'.tr(matchstr(s:type,'[^=]*$'),'.','_') . s:concealends136  let s:done_include[matchstr(s:type,'[^.]*')] = 1137endfor138unlet! s:type139unlet! s:done_include140 141if get(b:, 'markdown_yaml_head', get(g:, 'markdown_yaml_head', main_syntax ==# 'markdown'))142  syn include @markdownYamlTop syntax/yaml.vim143  unlet! b:current_syntax144  syn region markdownYamlHead start="\%^---$" end="^\%(---\|\.\.\.\)\s*$" keepend contains=@markdownYamlTop,@Spell145endif146 147syn match markdownEscape "\\[][\\`*_{}()<>#+.!-]"148syn match markdownError "\w\@<=_\w\@="149 150hi def link markdownH1                    htmlH1151hi def link markdownH2                    htmlH2152hi def link markdownH3                    htmlH3153hi def link markdownH4                    htmlH4154hi def link markdownH5                    htmlH5155hi def link markdownH6                    htmlH6156hi def link markdownHeadingRule           markdownRule157hi def link markdownH1Delimiter           markdownHeadingDelimiter158hi def link markdownH2Delimiter           markdownHeadingDelimiter159hi def link markdownH3Delimiter           markdownHeadingDelimiter160hi def link markdownH4Delimiter           markdownHeadingDelimiter161hi def link markdownH5Delimiter           markdownHeadingDelimiter162hi def link markdownH6Delimiter           markdownHeadingDelimiter163hi def link markdownHeadingDelimiter      Delimiter164hi def link markdownOrderedListMarker     markdownListMarker165hi def link markdownListMarker            htmlTagName166hi def link markdownBlockquote            Comment167hi def link markdownRule                  PreProc168 169hi def link markdownFootnote              Typedef170hi def link markdownFootnoteDefinition    Typedef171 172hi def link markdownLinkText              htmlLink173hi def link markdownIdDeclaration         Typedef174hi def link markdownId                    Type175hi def link markdownAutomaticLink         markdownUrl176hi def link markdownUrl                   Float177hi def link markdownUrlTitle              String178hi def link markdownIdDelimiter           markdownLinkDelimiter179hi def link markdownUrlDelimiter          htmlTag180hi def link markdownUrlTitleDelimiter     Delimiter181 182hi def link markdownItalic                htmlItalic183hi def link markdownItalicDelimiter       markdownItalic184hi def link markdownBold                  htmlBold185hi def link markdownBoldDelimiter         markdownBold186hi def link markdownBoldItalic            htmlBoldItalic187hi def link markdownBoldItalicDelimiter   markdownBoldItalic188hi def link markdownStrike                htmlStrike189hi def link markdownStrikeDelimiter       markdownStrike190hi def link markdownCodeDelimiter         Delimiter191 192hi def link markdownEscape                Special193hi def link markdownError                 Error194 195let b:current_syntax = "markdown"196if main_syntax ==# 'markdown'197  unlet main_syntax198endif199 200" vim:set sw=2:201 
codekingpro/portable-devtools · Team Ai