diff --git a/indent/vue.vim b/indent/vue.vim index fc5cf33..11c4b68 100644 --- a/indent/vue.vim +++ b/indent/vue.vim @@ -3,39 +3,62 @@ " Maintainer: Eduardo San Martin Morote " Author: Adriaan Zonnenberg -if exists("b:did_indent") +if exists('b:did_indent') finish endif -" Load indent files for required languages -for language in ['stylus', 'pug', 'css', 'javascript', 'html', 'coffee'] +function! s:get_indentexpr(language) unlet! b:did_indent - exe "runtime! indent/".language.".vim" - exe "let s:".language."indent = &indentexpr" + execute 'runtime! indent/' . a:language . '.vim' + return &indentexpr +endfunction + +" The order is important here, tags without attributes go last. +" HTML is left out, it will be used when there is no match. +let s:languages = [ + \ { 'name': 'pug', 'pairs': [' + +Given vue (Template tag inside a template): + + +Do (Indent the whole buffer): + gg=G + +Expect (It didn't get unindented): + + # # JavaScript # @@ -35,8 +57,7 @@ Given vue (An unindented JavaScript region): Do (Indent the whole buffer): gg=G -Expect vue (TODO): -* TODO: fix the indent script to exclude the surrounding html tag +Expect vue (The JavaScript region got indented):