1*ba3ff539SBram Moolenaar" Vim syntax file 2*ba3ff539SBram Moolenaar" Language: RAML (RESTful API Modeling Language) 3*ba3ff539SBram Moolenaar" Maintainer: Eric Hopkins <[email protected]> 4*ba3ff539SBram Moolenaar" URL: https://github.com/in3d/vim-raml 5*ba3ff539SBram Moolenaar" License: Same as Vim 6*ba3ff539SBram Moolenaar" Last Change: 2018-11-03 7*ba3ff539SBram Moolenaar 8*ba3ff539SBram Moolenaarif exists("b:current_syntax") 9*ba3ff539SBram Moolenaar finish 10*ba3ff539SBram Moolenaarendif 11*ba3ff539SBram Moolenaar 12*ba3ff539SBram Moolenaarlet s:cpo_save = &cpo 13*ba3ff539SBram Moolenaarset cpo&vim 14*ba3ff539SBram Moolenaar 15*ba3ff539SBram Moolenaarsyn keyword ramlTodo contained TODO FIXME XXX NOTE 16*ba3ff539SBram Moolenaar 17*ba3ff539SBram Moolenaarsyn region ramlComment display oneline start='\%(^\|\s\)#' end='$' 18*ba3ff539SBram Moolenaar \ contains=ramlTodo,@Spell 19*ba3ff539SBram Moolenaar 20*ba3ff539SBram Moolenaarsyn region ramlVersion display oneline start='#%RAML' end='$' 21*ba3ff539SBram Moolenaar 22*ba3ff539SBram Moolenaarsyn match ramlNodeProperty '!\%(![^\\^% ]\+\|[^!][^:/ ]*\)' 23*ba3ff539SBram Moolenaar 24*ba3ff539SBram Moolenaarsyn match ramlAnchor '&.\+' 25*ba3ff539SBram Moolenaar 26*ba3ff539SBram Moolenaarsyn match ramlAlias '\*.\+' 27*ba3ff539SBram Moolenaar 28*ba3ff539SBram Moolenaarsyn match ramlDelimiter '[-,:]' 29*ba3ff539SBram Moolenaarsyn match ramlBlock '[\[\]{}>|]' 30*ba3ff539SBram Moolenaarsyn match ramlOperator '[?+-]' 31*ba3ff539SBram Moolenaarsyn match ramlKey '\h\+\(?\)\?\ze\s*:' 32*ba3ff539SBram Moolenaarsyn match ramlKey '\w\+\(\s\+\w\+\)*\(?\)\?\ze\s*:' 33*ba3ff539SBram Moolenaarsyn match routeKey '\/\w\+\(\s\+\w\+\)*\ze\s*:' 34*ba3ff539SBram Moolenaarsyn match routeKey 'application\/\w\+\ze\s*:' 35*ba3ff539SBram Moolenaarsyn match routeParamKey '\/{\w\+}*\ze\s*:' 36*ba3ff539SBram Moolenaar 37*ba3ff539SBram Moolenaarsyn region ramlString matchgroup=ramlStringDelimiter 38*ba3ff539SBram Moolenaar \ start=+\s"+ skip=+\\"+ end=+"+ 39*ba3ff539SBram Moolenaar \ contains=ramlEscape 40*ba3ff539SBram Moolenaarsyn region ramlString matchgroup=ramlStringDelimiter 41*ba3ff539SBram Moolenaar \ start=+\s'+ skip=+''+ end=+'+ 42*ba3ff539SBram Moolenaar \ contains=ramlStringEscape 43*ba3ff539SBram Moolenaarsyn region ramlParameter matchgroup=ramlParameterDelimiter 44*ba3ff539SBram Moolenaar \ start=+<<+ skip=+''+ end=+>>+ 45*ba3ff539SBram Moolenaarsyn match ramlEscape contained display +\\[\\"abefnrtv^0_ NLP]+ 46*ba3ff539SBram Moolenaarsyn match ramlEscape contained display '\\x\x\{2}' 47*ba3ff539SBram Moolenaarsyn match ramlEscape contained display '\\u\x\{4}' 48*ba3ff539SBram Moolenaarsyn match ramlEscape contained display '\\U\x\{8}' 49*ba3ff539SBram Moolenaarsyn match ramlEscape display '\\\%(\r\n\|[\r\n]\)' 50*ba3ff539SBram Moolenaarsyn match ramlStringEscape contained +''+ 51*ba3ff539SBram Moolenaar 52*ba3ff539SBram Moolenaarsyn match ramlNumber display 53*ba3ff539SBram Moolenaar \ '\<[+-]\=\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\=' 54*ba3ff539SBram Moolenaarsyn match ramlNumber display '0\o\+' 55*ba3ff539SBram Moolenaarsyn match ramlNumber display '0x\x\+' 56*ba3ff539SBram Moolenaarsyn match ramlNumber display '([+-]\=[iI]nf)' 57*ba3ff539SBram Moolenaarsyn match ramlNumber display '(NaN)' 58*ba3ff539SBram Moolenaar 59*ba3ff539SBram Moolenaarsyn match ramlConstant '\<[~yn]\>' 60*ba3ff539SBram Moolenaarsyn keyword ramlConstant true True TRUE false False FALSE 61*ba3ff539SBram Moolenaarsyn keyword ramlConstant yes Yes on ON no No off OFF 62*ba3ff539SBram Moolenaarsyn keyword ramlConstant null Null NULL nil Nil NIL 63*ba3ff539SBram Moolenaar 64*ba3ff539SBram Moolenaarsyn keyword httpVerbs get post put delete head patch options 65*ba3ff539SBram Moolenaarsyn keyword ramlTypes string number integer date boolean file 66*ba3ff539SBram Moolenaar 67*ba3ff539SBram Moolenaarsyn 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\)\=' 68*ba3ff539SBram Moolenaar 69*ba3ff539SBram Moolenaarsyn region ramlDocumentHeader start='---' end='$' contains=ramlDirective 70*ba3ff539SBram Moolenaarsyn match ramlDocumentEnd '\.\.\.' 71*ba3ff539SBram Moolenaar 72*ba3ff539SBram Moolenaarsyn match ramlDirective contained '%[^:]\+:.\+' 73*ba3ff539SBram Moolenaar 74*ba3ff539SBram Moolenaarhi def link ramlVersion String 75*ba3ff539SBram Moolenaarhi def link routeInterpolation String 76*ba3ff539SBram Moolenaarhi def link ramlInterpolation Constant 77*ba3ff539SBram Moolenaarhi def link ramlTodo Todo 78*ba3ff539SBram Moolenaarhi def link ramlComment Comment 79*ba3ff539SBram Moolenaarhi def link ramlDocumentHeader PreProc 80*ba3ff539SBram Moolenaarhi def link ramlDocumentEnd PreProc 81*ba3ff539SBram Moolenaarhi def link ramlDirective Keyword 82*ba3ff539SBram Moolenaarhi def link ramlNodeProperty Type 83*ba3ff539SBram Moolenaarhi def link ramlAnchor Type 84*ba3ff539SBram Moolenaarhi def link ramlAlias Type 85*ba3ff539SBram Moolenaarhi def link ramlBlock Operator 86*ba3ff539SBram Moolenaarhi def link ramlOperator Operator 87*ba3ff539SBram Moolenaarhi def link routeParamKey SpecialChar 88*ba3ff539SBram Moolenaarhi def link ramlKey Identifier 89*ba3ff539SBram Moolenaarhi def link routeKey SpecialChar 90*ba3ff539SBram Moolenaarhi def link ramlParameterDelimiter Type 91*ba3ff539SBram Moolenaarhi def link ramlParameter Type 92*ba3ff539SBram Moolenaarhi def link ramlString String 93*ba3ff539SBram Moolenaarhi def link ramlStringDelimiter ramlString 94*ba3ff539SBram Moolenaarhi def link ramlEscape SpecialChar 95*ba3ff539SBram Moolenaarhi def link ramlStringEscape SpecialChar 96*ba3ff539SBram Moolenaarhi def link ramlNumber Number 97*ba3ff539SBram Moolenaarhi def link ramlConstant Constant 98*ba3ff539SBram Moolenaarhi def link ramlTimestamp Number 99*ba3ff539SBram Moolenaarhi def link httpVerbs Statement 100*ba3ff539SBram Moolenaarhi def link ramlTypes Type 101*ba3ff539SBram Moolenaarhi def link ramlDelimiter Delimiter 102*ba3ff539SBram Moolenaar 103*ba3ff539SBram Moolenaarlet b:current_syntax = "raml" 104*ba3ff539SBram Moolenaar 105*ba3ff539SBram Moolenaarlet &cpo = s:cpo_save 106*ba3ff539SBram Moolenaarunlet s:cpo_save 107