xref: /vim-8.2.3635/runtime/syntax/raml.vim (revision ba3ff539)
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