Permalink
Browse files

[indent] better indent for html in php files

  • Loading branch information...
1 parent 9b9bf1f commit 0e46ea26e64cef5c9568c5900489d561a599fc3c @teranex committed Mar 10, 2011
Showing with 40 additions and 0 deletions.
  1. +40 −0 indent/php.vim
View
40 indent/php.vim
@@ -0,0 +1,40 @@
+" Better indent support for PHP by making it possible to indent HTML sections
+" as well.
+if exists("b:did_indent")
+ finish
+endif
+
+" This script pulls in the default indent/php.vim with the :runtime command
+" which could re-run this script recursively unless we catch that:
+if exists('s:doing_indent_inits')
+ finish
+endif
+let s:doing_indent_inits = 1
+runtime! indent/html.vim
+unlet b:did_indent
+runtime! indent/php.vim
+unlet s:doing_indent_inits
+
+function! GetPhpHtmlIndent(lnum)
+ if exists('*HtmlIndent')
+ let html_ind = HtmlIndent()
+ else
+ let html_ind = HtmlIndentGet(a:lnum)
+ endif
+ let php_ind = GetPhpIndent()
+ " priority one for php indent script
+ if php_ind > -1
+ return php_ind
+ endif
+ if html_ind > -1
+ if getline(a:num) =~ "^<?" && (0< searchpair('<?', '', '?>', 'nWb')
+ \ || 0 < searchpair('<?', '', '?>', 'nW'))
+ return -1
+ endif
+ return html_ind
+ endif
+ return -1
+endfunction
+
+setlocal indentexpr=GetPhpHtmlIndent(v:lnum)
+setlocal indentkeys+=<>>

0 comments on commit 0e46ea2

Please sign in to comment.