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