summaryrefslogtreecommitdiffstats
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
parentc2a7f363c66b198f5ca24a9482198b30551d7af5 (diff)
downloadvim-polyglot-ef4435cffcc6e30d51feb76d34b9061b0f2e5550.tar.gz
vim-polyglot-ef4435cffcc6e30d51feb76d34b9061b0f2e5550.zip
Add api blueprint support, closes #182v2.15.0
-rw-r--r--README.md1
-rwxr-xr-xbuild1
-rw-r--r--ftdetect/polyglot.vim7
-rw-r--r--syntax/apiblueprint.vim38
4 files changed, 47 insertions, 0 deletions
diff --git a/README.md b/README.md
index eb6dd183..40ceb021 100644
--- a/README.md
+++ b/README.md
@@ -37,6 +37,7 @@ If you need full functionality of any plugin, please use it directly with your p
## Language packs
- [ansible](https://github.com/pearofducks/ansible-vim) (syntax, indent, ftplugin)
+- [apiblueprint](https://github.com/sheerun/apiblueprint.vim) (syntax)
- [applescript](https://github.com/vim-scripts/applescript.vim) (syntax)
- [arduino](https://github.com/sudar/vim-arduino-syntax) (syntax, indent)
- [blade](https://github.com/jwalton512/vim-blade) (syntax, indent, ftplugin)
diff --git a/build b/build
index fb77b26b..6cb99f58 100755
--- a/build
+++ b/build
@@ -104,6 +104,7 @@ EOF
}
PACKS="
+ apiblueprint:sheerun/apiblueprint.vim
applescript:vim-scripts/applescript.vim
yaml:stephpy/vim-yaml
ansible:pearofducks/ansible-vim
diff --git a/ftdetect/polyglot.vim b/ftdetect/polyglot.vim
index 6ff09572..63248b95 100644
--- a/ftdetect/polyglot.vim
+++ b/ftdetect/polyglot.vim
@@ -1,4 +1,11 @@
augroup filetypedetect
+" apiblueprint:sheerun/apiblueprint.vim
+autocmd BufReadPost,BufNewFile *.apib set filetype=apiblueprint
+autocmd FileType apiblueprint set syntax=apiblueprint
+autocmd FileType apiblueprint set makeprg=drafter\ -l\ %
+augroup END
+
+augroup filetypedetect
" applescript:vim-scripts/applescript.vim
augroup END
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