summaryrefslogtreecommitdiffstats
path: root/syntax
diff options
context:
space:
mode:
authorAdam Stankiewicz <sheerun@sher.pl>2017-03-23 13:21:01 +0100
committerAdam Stankiewicz <sheerun@sher.pl>2017-03-23 13:21:01 +0100
commitef4435cffcc6e30d51feb76d34b9061b0f2e5550 (patch)
tree73b57f402b72c544dfbd5ecbdc76c685b78a5b65 /syntax
parentc2a7f363c66b198f5ca24a9482198b30551d7af5 (diff)
downloadvim-polyglot-2.15.0.tar.gz
vim-polyglot-2.15.0.zip
Add api blueprint support, closes #182v2.15.0
Diffstat (limited to 'syntax')
-rw-r--r--syntax/apiblueprint.vim38
1 files changed, 38 insertions, 0 deletions
diff --git a/syntax/apiblueprint.vim b/syntax/apiblueprint.vim
new file mode 100644
index 00000000..90d36386
--- /dev/null
+++ b/syntax/apiblueprint.vim
@@ -0,0 +1,38 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'apiblueprint') == -1
+
+runtime! syntax/markdown.vim
+unlet! b:current_syntax
+
+" Metadata
+syntax region apibMarkdownMetadata start=/\%^.*:.*$/ end=/^$/ contains=apibMarkdownMetadataKey,apibMarkdownMetadataValue fold
+syntax match apibMarkdownMetadataKey /^[^:]*\ze:/ contained
+syntax match apibMarkdownMetadataValue /:.*/ contained
+
+syntax region apibHTTPStatusCode start=/\d\d\d/ end=// contained containedin=apibResponseSection
+syntax region apibHTTPContentType start=/(.*)/ end=// contained containedin=apibResponseSection
+
+syntax region apibModelSection start=/^+ Model/ end=/$/ oneline
+syntax region apibRequestSection start=/^[-+*] Request.*/ end=/^$/ contains=apibHTTPContentType
+syntax region apibResponseSection start=/^[-+*] Response \d\d\d/ end=/^$/ contains=apibHTTPStatusCode,apibHTTPContentType
+syntax region apibHeadersSection start=/^+ Headers$/ end=/^\S.*$/ contains=apibHeadersSectionKey,apibHeadersSectionValue
+
+syntax region apibActionRelationKey start=/: .*/ end=/$/ contained
+syntax region apibActionRelation start=/^[-+*] Relation: .*$/ end=/$/ oneline contains=apibActionRelationKey
+
+syntax match apibHeadersSectionKey /^[^:]*\ze:/ contained
+syntax match apibHeadersSectionValue /:.*/ contained
+
+highlight default link apibMarkdownMetadataKey Function
+highlight default link apibRequestSection Function
+highlight default link apibResponseSection Function
+highlight default link apibModelSection Function
+highlight default link apibHeadersSectionKey Function
+highlight default link apibHTTPStatusCode Delimiter
+highlight default link apibHTTPContentType Comment
+highlight default link apibActionRelation Function
+highlight default link apibActionRelationKey Identifier
+
+let b:current_syntax = 'apiblueprint'
+
+
+endif