view runtime/syntax/vroom.vim @ 8092:d82fb42b611b v7.4.1340

commit https://github.com/vim/vim/commit/7d63f624603ebeae336d4c504f82ab3da3481f46 Author: Bram Moolenaar <Bram@vim.org> Date: Tue Feb 16 20:31:31 2016 +0100 patch 7.4.1340 Problem: Merge left extra #endif behind. Solution: Remove the #endif
author Christian Brabandt <cb@256bit.org>
date Tue, 16 Feb 2016 20:45:05 +0100
parents 1e8ebf870720
children 43efa4f5a8ea
line wrap: on
line source

" Vim syntax file
" Language:	Vroom (vim testing and executable documentation)
" Maintainer:	David Barnett (https://github.com/google/vim-ft-vroom)
" Last Change:	2014 Jul 23

" For version 5.x: Clear all syntax items.
" For version 6.x and later: Quit when a syntax file was already loaded.
if v:version < 600
  syntax clear
elseif exists('b:current_syntax')
  finish
endif

let s:cpo_save = &cpo
set cpo-=C


syn include @vroomVim syntax/vim.vim
syn include @vroomShell syntax/sh.vim

syntax region vroomAction
    \ matchgroup=vroomOutput
    \ start='\m^  ' end='\m$' keepend
    \ contains=vroomControlBlock

syntax region vroomAction
    \ matchgroup=vroomOutput
    \ start='\m^  & ' end='\m$' keepend
    \ contains=vroomControlBlock

syntax match vroomOutput '\m^  &$'

syntax region vroomMessageBody
    \ matchgroup=vroomMessage
    \ start='\m^  \~ ' end='\m$' keepend
    \ contains=vroomControlBlock

syntax region vroomColoredAction
    \ matchgroup=vroomInput
    \ start='\m^  > ' end='\m$' keepend
    \ contains=vimNotation,vroomControlBlock
syntax region vroomAction
    \ matchgroup=vroomInput
    \ start='\m^  % ' end='\m$' keepend
    \ contains=vimNotation,vroomControlBlock

syntax region vroomAction
    \ matchgroup=vroomContinuation
    \ start='\m^  |' end='\m$' keepend

syntax region vroomAction
    \ start='\m^  \ze:' end='\m$' keepend
    \ contains=@vroomVim,vroomControlBlock

syntax region vroomAction
    \ matchgroup=vroomDirective
    \ start='\m^  @\i\+' end='\m$' keepend
    \ contains=vroomControlBlock

syntax region vroomSystemAction
    \ matchgroup=vroomSystem
    \ start='\m^  ! ' end='\m$' keepend
    \ contains=@vroomShell,vroomControlBlock

syntax region vroomHijackAction
    \ matchgroup=vroomHijack
    \ start='\m^  \$ ' end='\m$' keepend
    \ contains=vroomControlBlock

syntax match vroomControlBlock contains=vroomControlEscape,@vroomControls
    \ '\v \([^&()][^()]*\)$'

syntax match vroomControlEscape '\m&' contained

syntax cluster vroomControls
    \ contains=vroomDelay,vroomMode,vroomBuffer,vroomRange
    \,vroomChannel,vroomBind,vroomStrictness
syntax match vroomRange '\v\.(,\+?(\d+|\$)?)?' contained
syntax match vroomRange '\v\d*,\+?(\d+|\$)?' contained
syntax match vroomBuffer '\v\d+,@!' contained
syntax match vroomDelay '\v\d+(\.\d+)?s' contained
syntax match vroomMode '\v<%(regex|glob|verbatim)' contained
syntax match vroomChannel '\v<%(stderr|stdout|command|status)>' contained
syntax match vroomBind '\v<bind>' contained
syntax match vroomStrictness '\v\<%(STRICT|RELAXED|GUESS-ERRORS)\>' contained

highlight default link vroomInput Identifier
highlight default link vroomDirective vroomInput
highlight default link vroomControlBlock vroomInput
highlight default link vroomSystem vroomInput
highlight default link vroomOutput Statement
highlight default link vroomContinuation Constant
highlight default link vroomHijack Special
highlight default link vroomColoredAction Statement
highlight default link vroomSystemAction vroomSystem
highlight default link vroomHijackAction vroomHijack
highlight default link vroomMessage vroomOutput
highlight default link vroomMessageBody Constant

highlight default link vroomControlEscape Special
highlight default link vroomBuffer vroomInput
highlight default link vroomRange Include
highlight default link vroomMode Constant
highlight default link vroomDelay Type
highlight default link vroomStrictness vroomMode
highlight default link vroomChannel vroomMode
highlight default link vroomBind vroomMode

let b:current_syntax = 'vroom'


let &cpo = s:cpo_save
unlet s:cpo_save