view runtime/syntax/vroom.vim @ 32196:d6771e63521c v9.0.1429

patch 9.0.1429: invalid memory access when ending insert mode Commit: https://github.com/vim/vim/commit/1a08a3e2a584889f19b84a27672134649b73da58 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Mar 26 21:27:24 2023 +0100 patch 9.0.1429: invalid memory access when ending insert mode Problem: Invalid memory access when ending insert mode. Solution: Check if the insert_skip value is valid.
author Bram Moolenaar <Bram@vim.org>
date Sun, 26 Mar 2023 22:30:04 +0200
parents 43efa4f5a8ea
children
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

" quit when a syntax file was already loaded
if 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