diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2015-08-15 14:56:46 -0400 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2015-08-15 14:56:46 -0400 |
commit | 197a5ad376ed7b5b75fb62a91f00b1eadc2bc2c7 (patch) | |
tree | c144054da00b7a3691e7bdf287543d3a22fecb62 /runtime/syntax | |
parent | d8f1acbf9d75171d37973e39eceac750f51e4145 (diff) | |
parent | 4fc1ab779dd23416af08f4124d5f72c2c0629e56 (diff) | |
download | rneovim-197a5ad376ed7b5b75fb62a91f00b1eadc2bc2c7.tar.gz rneovim-197a5ad376ed7b5b75fb62a91f00b1eadc2bc2c7.tar.bz2 rneovim-197a5ad376ed7b5b75fb62a91f00b1eadc2bc2c7.zip |
Merge pull request #2700 from fmoralesc/vim-tutor-mode
runtime: Include vim-tutor-mode
Diffstat (limited to 'runtime/syntax')
-rw-r--r-- | runtime/syntax/tutor.vim | 83 | ||||
-rw-r--r-- | runtime/syntax/vimnormal.vim | 16 |
2 files changed, 99 insertions, 0 deletions
diff --git a/runtime/syntax/tutor.vim b/runtime/syntax/tutor.vim new file mode 100644 index 0000000000..99bcb78270 --- /dev/null +++ b/runtime/syntax/tutor.vim @@ -0,0 +1,83 @@ +if exists("b:current_syntax") + finish +endif + +syn include @VIM syntax/vim.vim +unlet b:current_syntax +syn include @TUTORSHELL syntax/sh.vim +unlet b:current_syntax +syn include @VIMNORMAL syntax/vimnormal.vim + +syn match tutorLink /\[.\{-}\](.\{-})/ contains=tutorInlineNormal +syn match tutorLinkBands /\[\|\]\|(\|)/ contained containedin=tutorLink,tutorLinkAnchor conceal +syn match tutorLinkAnchor /(.\{-})/ contained containedin=tutorLink conceal +syn match tutorURL /\(https\?\|file\):\/\/[[:graph:]]\+\>\/\?/ +syn match tutorEmail /\<[[:graph:]]\+@[[:graph:]]\+\>/ +syn match tutorInternalAnchor /\*[[:alnum:]-]\+\*/ contained conceal containedin=tutorSection + +syn match tutorSection /^#\{1,6}\s.\+$/ fold +syn match tutorSectionBullet /#/ contained containedin=tutorSection + +syn match tutorTOC /\ctable of contents:/ + +syn match tutorConcealedEscapes /\\[`*!\[\]()«»:$-]\@=/ conceal + +syn region tutorEmphasis matchgroup=Delimiter start=/[\*]\@<!\*\*\@!/ end=/[\*]\@<!\*\*\@!/ + \ concealends contains=tutorInlineCommand,tutorInlineNormal +syn region tutorBold matchgroup=Delimiter start=/\*\{2}/ end=/\*\{2}/ + \ concealends contains=tutorInlineCommand,tutorInlineNormal + +syn keyword tutorMarks TODO NOTE IMPORTANT TIP ATTENTION EXERCISE +syn keyword tutorMarks todo note tip attention exercise +syn keyword tutorMarks Todo Note Tip Excersise + +syn match tutorTextMark /\\\@<!--->/ conceal cchar=→ +syn region tutorSampleText start=/^\(--->\)\@=/ end=/$/ keepend contains=@SPELL +syn match tutorSampleTextMark /^--->/ contained containedin=tutorSampleText conceal cchar=→ +syn match tutorSampleTextExpect /\}\@<! {expect:.\+}\s*$/ contained containedin=tutorSampleText conceal +syn match tutorSampleTextExpect /|\@<! |expect:.\+|\s*$/ contained containedin=tutorSampleText conceal + +syn region tutorCodeblock matchgroup=Delimiter start=/^\~\{3}.*$/ end=/^\~\{3}/ + +syn region tutorShell matchgroup=Delimiter start=/^\~\{3} sh\s*$/ end=/^\~\{3}/ keepend contains=@TUTORSHELL concealends +syn match tutorShellPrompt /\(^\s*\)\@<=[$#]/ contained containedin=tutorShell + +syn region tutorInlineCode matchgroup=Delimiter start=/\\\@<!`/ end=/\\\@<!\(`{\@!\|`\s\)/ concealends + +syn region tutorCommand matchgroup=Delimiter start=/^\~\{3} cmd\( :\)\?\s*$/ end=/^\~\{3}/ keepend contains=@VIM concealends +syn region tutorInlineCommand matchgroup=Delimiter start=/\\\@<!`\(.*{vim}\)\@=/ end=/\\\@<!`\({vim}\)\@=/ nextgroup=tutorInlineType contains=@VIM concealends + +syn region tutorNormal matchgroup=Delimiter start=/^\~\{3} norm\(al\?\)\?\s*$/ end=/^\~\{3}/ contains=@VIMNORMAL concealends +syn region tutorInlineNormal matchgroup=Delimiter start=/\\\@<!`\(\S*{normal}\)\@=/ end=/\\\@<!`\({normal}\)\@=/ nextgroup=tutorInlineType contains=@VIMNORMAL concealends + +syn match tutorInlineType /{\(normal\|vim\)}/ contained conceal + +syn match tutorInlineOK /✓/ +syn match tutorInlineX /✗/ + +hi! tutorLink cterm=underline gui=underline ctermfg=lightblue guifg=#0088ff +hi! link tutorLinkBands Delimiter +hi! link tutorLinkAnchor Underlined +hi! link tutorInternalAnchor Underlined +hi! link tutorURL tutorLink +hi! link tutorEmail tutorLink + +hi! link tutorSection Title +hi! link tutorSectionBullet Delimiter + +hi! link tutorTOC Directory + +hi! tutorMarks cterm=bold gui=bold + +hi! tutorEmphasis gui=italic cterm=italic +hi! tutorBold gui=bold cterm=bold + +hi! link tutorSampleText Special +hi! tutorOK ctermfg=green guifg=#00ff88 cterm=bold gui=bold +hi! tutorX ctermfg=red guifg=#ff2000 cterm=bold gui=bold +hi! link tutorInlineOK tutorOK +hi! link tutorInlineX tutorX + +hi! link tutorShellPrompt Delimiter + +let b:current_syntax = "tutor" diff --git a/runtime/syntax/vimnormal.vim b/runtime/syntax/vimnormal.vim new file mode 100644 index 0000000000..df672c5236 --- /dev/null +++ b/runtime/syntax/vimnormal.vim @@ -0,0 +1,16 @@ +syn match normalOp /[dcrypoaxv!"#%&.-\/:<>=?@ABCDGHIJKLMNOPQRSUVWXYZgmqstz~iu]/ nextgroup=normalMod +syn match normalMod /m\@<![ia]/ +syn match normalObject /["'()<>BW\[\]`bstweE{}ftFT;,$]/ +syn match normalCount /[0-9]/ +syn region normalSearch start=/[/?]\@<=./ end=/.<CR>\@=/ contains=normalKey keepend +syn region normalChange start=/\([cr][wWbBeE()\[\]{}pst]\)\@<=./ end=/.\@=/ contains=normalKey keepend +syn match normalCharSearch /\c[ftr]\@<=\w/ +syn match normalMark /\(f\@<!m\)\@<=[a-zA-Z0-9]/ +syn match normalKey /<'\@!.\{-}>'\@!/ + +hi! link normalOp Operator +hi! link normalMod PreProc +hi! link normalObject Structure +hi! link normalCount Number +hi! link normalMark Identifier +hi! link normalKey Special |