mirror of
https://github.com/neovim/neovim.git
synced 2024-12-25 13:45:15 -07:00
107 lines
4.3 KiB
VimL
107 lines
4.3 KiB
VimL
|
" 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
|