diff options
Diffstat (limited to 'syntax')
| -rw-r--r-- | syntax/raml.vim | 108 | 
1 files changed, 108 insertions, 0 deletions
| diff --git a/syntax/raml.vim b/syntax/raml.vim new file mode 100644 index 00000000..2e25e48d --- /dev/null +++ b/syntax/raml.vim @@ -0,0 +1,108 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'raml') == -1 +   +" Vim syntax file +" Language:    RAML (RESTful API Modeling Language) +" Maintainer:  Eric Hopkins <eric.on.tech@gmail.com> +" Last Change: 2016-02-29 + +if exists("b:current_syntax") +  finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +syn keyword ramlTodo            contained TODO FIXME XXX NOTE + +syn region  ramlComment         display oneline start='\%(^\|\s\)#' end='$' +                                \ contains=ramlTodo,@Spell + +syn region  ramlVersion         display oneline start='#%RAML' end='$' + +syn match   ramlNodeProperty    '!\%(![^\\^%     ]\+\|[^!][^:/   ]*\)' + +syn match   ramlAnchor          '&.\+' + +syn match   ramlAlias           '\*.\+' + +syn match   ramlDelimiter       '[-,:]' +syn match   ramlBlock           '[\[\]{}>|]' +syn match   ramlOperator        '[?+-]' +syn match   ramlKey             '\h\+\(?\)\?\ze\s*:' +syn match   ramlKey             '\w\+\(\s\+\w\+\)*\(?\)\?\ze\s*:' +syn match   routeKey            '\/\w\+\(\s\+\w\+\)*\ze\s*:' +syn match   routeKey            'application\/\w\+\ze\s*:' +syn match   routeParamKey       '\/{\w\+}*\ze\s*:' + +syn region  ramlString          matchgroup=ramlStringDelimiter +                                \ start=+\s"+ skip=+\\"+ end=+"+ +                                \ contains=ramlEscape +syn region  ramlString          matchgroup=ramlStringDelimiter +                                \ start=+\s'+ skip=+''+ end=+'+ +                                \ contains=ramlStringEscape +syn region  ramlParameter       matchgroup=ramlParameterDelimiter +                                \ start=+<<+ skip=+''+ end=+>>+ +syn match   ramlEscape          contained display +\\[\\"abefnrtv^0_ NLP]+ +syn match   ramlEscape          contained display '\\x\x\{2}' +syn match   ramlEscape          contained display '\\u\x\{4}' +syn match   ramlEscape          contained display '\\U\x\{8}' +syn match   ramlEscape          display '\\\%(\r\n\|[\r\n]\)' +syn match   ramlStringEscape    contained +''+ + +syn match   ramlNumber          display +                                \ '\<[+-]\=\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\=' +syn match   ramlNumber          display '0\o\+' +syn match   ramlNumber          display '0x\x\+' +syn match   ramlNumber          display '([+-]\=[iI]nf)' +syn match   ramlNumber          display '(NaN)' + +syn match   ramlConstant        '\<[~yn]\>' +syn keyword ramlConstant        true True TRUE false False FALSE +syn keyword ramlConstant        yes Yes on ON no No off OFF +syn keyword ramlConstant        null Null NULL nil Nil NIL + +syn keyword httpVerbs           get post put delete head patch options +syn keyword ramlTypes           string number integer date boolean file + +syn match   ramlTimestamp       '\d\d\d\d-\%(1[0-2]\|\d\)-\%(3[0-2]\|2\d\|1\d\|\d\)\%( \%([01]\d\|2[0-3]\):[0-5]\d:[0-5]\d.\d\d [+-]\%([01]\d\|2[0-3]\):[0-5]\d\|t\%([01]\d\|2[0-3]\):[0-5]\d:[0-5]\d.\d\d[+-]\%([01]\d\|2[0-3]\):[0-5]\d\|T\%([01]\d\|2[0-3]\):[0-5]\d:[0-5]\d.\dZ\)\=' + +syn region  ramlDocumentHeader  start='---' end='$' contains=ramlDirective +syn match   ramlDocumentEnd     '\.\.\.' + +syn match   ramlDirective       contained '%[^:]\+:.\+' + +hi def link ramlVersion            String +hi def link routeInterpolation     String +hi def link ramlInterpolation      Constant +hi def link ramlTodo               Todo +hi def link ramlComment            Comment +hi def link ramlDocumentHeader     PreProc +hi def link ramlDocumentEnd        PreProc +hi def link ramlDirective          Keyword +hi def link ramlNodeProperty       Type +hi def link ramlAnchor             Type +hi def link ramlAlias              Type +hi def link ramlBlock              Operator +hi def link ramlOperator           Operator +hi def link routeParamKey          SpecialChar +hi def link ramlKey                Identifier +hi def link routeKey               SpecialChar +hi def link ramlParameterDelimiter Type +hi def link ramlParameter          Type +hi def link ramlString             String +hi def link ramlStringDelimiter    ramlString +hi def link ramlEscape             SpecialChar +hi def link ramlStringEscape       SpecialChar +hi def link ramlNumber             Number +hi def link ramlConstant           Constant +hi def link ramlTimestamp          Number +hi def link httpVerbs              Statement +hi def link ramlTypes              Type +hi def link ramlDelimiter          Delimiter + +let b:current_syntax = "raml" + +let &cpo = s:cpo_save +unlet s:cpo_save + +endif | 
