view runtime/syntax/treetop.vim @ 9904:24900147aa44 v7.4.2226

commit https://github.com/vim/vim/commit/339288377072f66ec88e21903e75a82d23ffbf4f Author: Bram Moolenaar <Bram@vim.org> Date: Thu Aug 18 21:22:04 2016 +0200 patch 7.4.2226 Problem: The field names used by getbufinfo(), gettabinfo() and getwininfo() are not consistent. Solution: Use bufnr, winnr and tabnr. (Yegappan Lakshmanan)
author Christian Brabandt <cb@256bit.org>
date Thu, 18 Aug 2016 21:30:07 +0200
parents 6f63330ec225
children 1218c5353e2b
line wrap: on
line source

" Vim syntax file
" Language:         Treetop
" Maintainer:       Nikolai Weibull <now@bitwi.se>
" Latest Revision:  2011-03-14

if exists("b:current_syntax")
  finish
endif

let s:cpo_save = &cpo
set cpo&vim

syn keyword treetopTodo
      \ contained
      \ TODO
      \ FIXME
      \ XXX
      \ NOTE

syn match treetopComment
                        \ '#.*'
                        \ display
                        \ contains=treetopTodo

syn include @treetopRuby syntax/ruby.vim
unlet b:current_syntax

syn keyword treetopKeyword
                         \ require
                         \ end
syn region  treetopKeyword
                         \ matchgroup=treetopKeyword
                         \ start='\<\%(grammar\|include\|module\)\>\ze\s'
                         \ end='$'
                         \ transparent
                         \ oneline
                         \ keepend
                         \ contains=@treetopRuby
syn keyword treetopKeyword
                         \ rule
                         \ nextgroup=treetopRuleName
                         \ skipwhite skipnl

syn match   treetopGrammarName
                             \ '\u\w*'
                             \ contained

syn match   treetopRubyModuleName
                                \ '\u\w*'
                                \ contained

syn match   treetopRuleName
                          \ '\h\w*'
                          \ contained

syn region  treetopString
                        \ matchgroup=treetopStringDelimiter
                        \ start=+"+
                        \ end=+"+
syn region  treetopString
                        \ matchgroup=treetopStringDelimiter
                        \ start=+'+
                        \ end=+'+

syn region  treetopCharacterClass
                                \ matchgroup=treetopCharacterClassDelimiter
                                \ start=+\[+
                                \ skip=+\\\]+
                                \ end=+\]+

syn region  treetopRubyBlock
                           \ matchgroup=treetopRubyBlockDelimiter
                           \ start=+{+
                           \ end=+}+
                           \ contains=@treetopRuby

syn region  treetopSemanticPredicate
                           \ matchgroup=treetopSemanticPredicateDelimiter
                           \ start=+[!&]{+
                           \ end=+}+
                           \ contains=@treetopRuby

syn region  treetopSubclassDeclaration
                           \ matchgroup=treetopSubclassDeclarationDelimiter
                           \ start=+<+
                           \ end=+>+
                           \ contains=@treetopRuby

syn match   treetopEllipsis
                          \ +''+

hi def link treetopTodo                         Todo
hi def link treetopComment                      Comment
hi def link treetopKeyword                      Keyword
hi def link treetopGrammarName                  Constant
hi def link treetopRubyModuleName               Constant
hi def link treetopRuleName                     Identifier
hi def link treetopString                       String
hi def link treetopStringDelimiter              treetopString
hi def link treetopCharacterClass               treetopString
hi def link treetopCharacterClassDelimiter      treetopCharacterClass
hi def link treetopRubyBlockDelimiter           PreProc
hi def link treetopSemanticPredicateDelimiter   PreProc
hi def link treetopSubclassDeclarationDelimiter PreProc
hi def link treetopEllipsis                     Special

let b:current_syntax = 'treetop'

let &cpo = s:cpo_save
unlet s:cpo_save