" Author: Eric Van Dewoestine " " Description: {{{ " Dtd indent file using IndentAnything. " " License: " " Copyright (C) 2005 - 2012 Eric Van Dewoestine " " This program is free software: you can redistribute it and/or modify " it under the terms of the GNU General Public License as published by " the Free Software Foundation, either version 3 of the License, or " (at your option) any later version. " " This program is distributed in the hope that it will be useful, " but WITHOUT ANY WARRANTY; without even the implied warranty of " MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the " GNU General Public License for more details. " " You should have received a copy of the GNU General Public License " along with this program. If not, see . " " }}} let b:did_indent = 1 if &indentexpr =~ 'EclimGetDtdIndent' || \ (!exists('b:disableOverride') && exists('g:EclimDtdIndentDisabled')) finish endif runtime eclim/indent/indentanything.vim setlocal indentexpr=EclimGetDtdIndent(v:lnum) setlocal indentkeys=o,O,*,<>>,<<> " EclimGetDtdIndent(lnum) {{{ function! EclimGetDtdIndent(lnum) let adj = 0 " handle case where previous line is a multi-line comment () on one " line, which IndentAnything doesn't handle properly. let prevline = prevnonblank(a:lnum - 1) if getline(prevline) =~ '^\s\+' let adj = indent(prevline) endif return IndentAnything() + adj endfunction " }}} " DtdIndentAnythingSettings() {{{ function! DtdIndentAnythingSettings() " Syntax name REs for comments and strings. let b:blockCommentRE = 'dtdComment\|xmlComment' let b:commentRE = b:blockCommentRE let b:lineCommentRE = b:blockCommentRE let b:stringRE = 'dtdString\|xmlString' let b:singleQuoteStringRE = b:stringRE let b:doubleQuoteStringRE = b:stringRE setlocal comments=sr: let b:blockCommentStartRE = '' let b:blockCommentMiddleExtra = 2 " Indent another level for each non-closed element tag. let b:indentTrios = [ \ [ '<\!\w', '', '>' ], \ [ '(', '', ')' ], \ ] endfunction " }}} call DtdIndentAnythingSettings() " vim:ft=vim:fdm=marker