From d4793f59631f601a698f5f3117c58a9b007cca20 Mon Sep 17 00:00:00 2001 From: Adriaan Zonnenberg Date: Sun, 26 Mar 2017 13:36:09 +0200 Subject: [PATCH] Fix indentation for script tags and refactor Fixes the indentation for script tags. The javascript indentation interpreted the `'] }, + \ { 'name': 'javascript', 'pairs': [''] }, + \ ] + +for language in s:languages + " Set 'indentexpr' if the user has an indent file installed for the language + if strlen(globpath(&rtp, 'indent/'. language.name .'.vim')) + let language.indentexpr = s:get_indentexpr(language.name) + endif endfor +let s:html_indent = s:get_indentexpr('html') + let b:did_indent = 1 setlocal indentexpr=GetVueIndent() -if exists("*GetVueIndent") +if exists('*GetVueIndent') finish endif function! GetVueIndent() - if searchpair(' -Do: +Do (Indent the whole buffer): gg=G Expect (The html template got indented): @@ -18,6 +18,28 @@ Expect (The html template got indented): + +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):