vroom.vim (3492B)
1 " Vim syntax file 2 " Language: Vroom (vim testing and executable documentation) 3 " Maintainer: David Barnett (https://github.com/google/vim-ft-vroom) 4 " Last Change: 2014 Jul 23 5 6 " quit when a syntax file was already loaded 7 if exists('b:current_syntax') 8 finish 9 endif 10 11 let s:cpo_save = &cpo 12 set cpo-=C 13 14 15 syn include @vroomVim syntax/vim.vim 16 syn include @vroomShell syntax/sh.vim 17 18 syntax region vroomAction 19 \ matchgroup=vroomOutput 20 \ start='\m^ ' end='\m$' keepend 21 \ contains=vroomControlBlock 22 23 syntax region vroomAction 24 \ matchgroup=vroomOutput 25 \ start='\m^ & ' end='\m$' keepend 26 \ contains=vroomControlBlock 27 28 syntax match vroomOutput '\m^ &$' 29 30 syntax region vroomMessageBody 31 \ matchgroup=vroomMessage 32 \ start='\m^ \~ ' end='\m$' keepend 33 \ contains=vroomControlBlock 34 35 syntax region vroomColoredAction 36 \ matchgroup=vroomInput 37 \ start='\m^ > ' end='\m$' keepend 38 \ contains=vimNotation,vroomControlBlock 39 syntax region vroomAction 40 \ matchgroup=vroomInput 41 \ start='\m^ % ' end='\m$' keepend 42 \ contains=vimNotation,vroomControlBlock 43 44 syntax region vroomAction 45 \ matchgroup=vroomContinuation 46 \ start='\m^ |' end='\m$' keepend 47 48 syntax region vroomAction 49 \ start='\m^ \ze:' end='\m$' keepend 50 \ contains=@vroomVim,vroomControlBlock 51 52 syntax region vroomAction 53 \ matchgroup=vroomDirective 54 \ start='\m^ @\i\+' end='\m$' keepend 55 \ contains=vroomControlBlock 56 57 syntax region vroomSystemAction 58 \ matchgroup=vroomSystem 59 \ start='\m^ ! ' end='\m$' keepend 60 \ contains=@vroomShell,vroomControlBlock 61 62 syntax region vroomHijackAction 63 \ matchgroup=vroomHijack 64 \ start='\m^ \$ ' end='\m$' keepend 65 \ contains=vroomControlBlock 66 67 syntax match vroomControlBlock contains=vroomControlEscape,@vroomControls 68 \ '\v \([^&()][^()]*\)$' 69 70 syntax match vroomControlEscape '\m&' contained 71 72 syntax cluster vroomControls 73 \ contains=vroomDelay,vroomMode,vroomBuffer,vroomRange 74 \,vroomChannel,vroomBind,vroomStrictness 75 syntax match vroomRange '\v\.(,\+?(\d+|\$)?)?' contained 76 syntax match vroomRange '\v\d*,\+?(\d+|\$)?' contained 77 syntax match vroomBuffer '\v\d+,@!' contained 78 syntax match vroomDelay '\v\d+(\.\d+)?s' contained 79 syntax match vroomMode '\v<%(regex|glob|verbatim)' contained 80 syntax match vroomChannel '\v<%(stderr|stdout|command|status)>' contained 81 syntax match vroomBind '\v<bind>' contained 82 syntax match vroomStrictness '\v\<%(STRICT|RELAXED|GUESS-ERRORS)\>' contained 83 84 highlight default link vroomInput Identifier 85 highlight default link vroomDirective vroomInput 86 highlight default link vroomControlBlock vroomInput 87 highlight default link vroomSystem vroomInput 88 highlight default link vroomOutput Statement 89 highlight default link vroomContinuation Constant 90 highlight default link vroomHijack Special 91 highlight default link vroomColoredAction Statement 92 highlight default link vroomSystemAction vroomSystem 93 highlight default link vroomHijackAction vroomHijack 94 highlight default link vroomMessage vroomOutput 95 highlight default link vroomMessageBody Constant 96 97 highlight default link vroomControlEscape Special 98 highlight default link vroomBuffer vroomInput 99 highlight default link vroomRange Include 100 highlight default link vroomMode Constant 101 highlight default link vroomDelay Type 102 highlight default link vroomStrictness vroomMode 103 highlight default link vroomChannel vroomMode 104 highlight default link vroomBind vroomMode 105 106 let b:current_syntax = 'vroom' 107 108 109 let &cpo = s:cpo_save 110 unlet s:cpo_save