summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbuild1
-rw-r--r--ftdetect/polyglot.vim1
-rw-r--r--indent/blade.vim12
-rw-r--r--syntax/blade.vim35
4 files changed, 49 insertions, 0 deletions
diff --git a/build b/build
index a4c29b33..d53a94a1 100755
--- a/build
+++ b/build
@@ -67,6 +67,7 @@ concat_ftdetect() {
PACKS="
arduino:sudar/vim-arduino-syntax
+ blade:xsbeats/vim-blade
c++11:octol/vim-cpp-enhanced-highlight
c/c++:vim-jp/cpp-vim
c-extensions:kergoth/aftersyntaxc.vim
diff --git a/ftdetect/polyglot.vim b/ftdetect/polyglot.vim
index 0cdbebcd..26103a5a 100644
--- a/ftdetect/polyglot.vim
+++ b/ftdetect/polyglot.vim
@@ -1,4 +1,5 @@
au BufRead,BufNewFile *.ino,*.pde set filetype=arduino
+autocmd BufRead,BufNewFile *.blade.php set filetype=blade
autocmd BufNewFile,BufRead *.clj,*.cljs,*.edn setlocal filetype=clojure
autocmd BufNewFile,BufRead *.coffee set filetype=coffee
autocmd BufNewFile,BufRead *Cakefile set filetype=coffee
diff --git a/indent/blade.vim b/indent/blade.vim
new file mode 100644
index 00000000..73550fb7
--- /dev/null
+++ b/indent/blade.vim
@@ -0,0 +1,12 @@
+" Language: Blade (Laravel)
+" Maintainer: xsbeats <jwalton512@gmail.com>
+" URL: http://github.com/xsbeats/vim-blade
+" License: WTFPL
+
+if exists("b:did_indent")
+ finish
+endif
+
+runtime! indent/html.vim
+
+let b:did_indent = 1
diff --git a/syntax/blade.vim b/syntax/blade.vim
new file mode 100644
index 00000000..a02b88ae
--- /dev/null
+++ b/syntax/blade.vim
@@ -0,0 +1,35 @@
+" Language: Blade (Laravel)
+" Maintainer: xsbeats <jwalton512@gmail.com>
+" URL: http://github.com/xsbeats/vim-blade
+" License: WTFPL
+
+if exists("b:current_syntax")
+ finish
+endif
+
+runtime! syntax/html.vim
+unlet b:current_syntax
+
+runtime! syntax/php.vim
+unlet b:current_syntax
+
+syn match bladeConditional /@\(choice\|each\|elseif\|extends\|for\|foreach\|if\|include\|lang\|section\|unless\|while\|yield\)\>\s*/ nextgroup=bladeParenBlock containedin=ALLBUT,bladeComment
+
+syn match bladeKeyword /@\(else\|endfor\|endforeach\|endif\|endsection\|endunless\|endwhile\|overwrite\|parent\|show\|stop\)\>/ containedin=ALL,bladeComment
+
+syn region bladeCommentBlock start="{{--" end="--}}" contains=bladeComment keepend containedin=TOP
+syn match bladeComment /.*/ contained containedin=bladeCommentBlock
+
+syn region bladeEchoUnescaped matchgroup=bladeEchoDelim start="\([@|{]\)\@<!{{\(--\)\@!" end="}}" contains=@phpClInside containedin=ALLBUT,bladeComment
+syn region bladeEchoEscaped matchgroup=bladeEchoDelim start="\(@\)\@<!{{{" end="}}}" contains=@phpClInside containedin=ALLBUT,bladeComment
+
+syn cluster bladeStatement contains=bladeConditional,bladeKeyword
+
+syn region bladeParenBlock start="(" end=")" contained oneline contains=bladeParenBlock,@phpClInside,@bladeStatement extend keepend
+
+hi def link bladeComment Comment
+hi def link bladeConditional Conditional
+hi def link bladeKeyword Keyword
+hi def link bladeEchoDelim Delimiter
+
+let b:current_syntax = 'blade'