123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- " Vim syntax file
- " Language: RAML (RESTful API Modeling Language)
- " Maintainer: Eric Hopkins <eric.on.tech@gmail.com>
- " URL: https://github.com/in3d/vim-raml
- " License: Same as Vim
- " Last Change: 2018-11-03
- 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
|