mirror of
https://github.com/vim/vim.git
synced 2025-09-23 03:43:49 -04:00
More updated runtime files.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
*indent.txt* For Vim version 7.3c. Last change: 2010 Mar 27
|
||||
*indent.txt* For Vim version 7.3c. Last change: 2010 Jul 30
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@@ -549,7 +549,7 @@ those useless characters first with a command like: >
|
||||
:%s /\r$//g
|
||||
|
||||
Or, you can simply |:let| the variable PHP_removeCRwhenUnix to 1 and the
|
||||
script will silently remove them when Vim loads a PHP file (at each |BufRead|).
|
||||
script will silently remove them when Vim loads a PHP file (at each|BufRead|).
|
||||
|
||||
OPTIONS: ~
|
||||
|
||||
@@ -557,7 +557,7 @@ PHP indenting can be altered in several ways by modifying the values of some
|
||||
variables:
|
||||
|
||||
*php-comment*
|
||||
To not enable auto-formatting of comments by default (if you want to use your
|
||||
To not enable auto-formating of comments by default (if you want to use your
|
||||
own 'formatoptions'): >
|
||||
:let g:PHP_autoformatcomment = 0
|
||||
|
||||
@@ -584,6 +584,10 @@ For example, with N = 1, this will give:
|
||||
(Notice the extra indent between the PHP container markers and the code)
|
||||
-------------
|
||||
|
||||
To indent PHP tags as the surrounding code: >
|
||||
:let g:PHP_outdentphpescape = 0
|
||||
-------------
|
||||
|
||||
To automatically remove '\r' characters when the 'fileformat' is set to Unix: >
|
||||
:let g:PHP_removeCRwhenUnix = 1
|
||||
-------------
|
||||
@@ -609,7 +613,7 @@ NOTE: Indenting will be a bit slower if this option is used because some
|
||||
To indent 'case:' and 'default:' statements in switch() blocks: >
|
||||
:let g:PHP_vintage_case_default_indent = 1
|
||||
|
||||
(By default they are indented at the same level than the 'switch()' to avoid
|
||||
(Since in PHP braces are not required inside 'case/default' blocks, by default they are indented at the same level than the 'switch()' to avoid
|
||||
unnecessary indentation)
|
||||
|
||||
|
||||
|
@@ -77,6 +77,9 @@ Results in E670. (Tony Mechelynck, 2010 May 2)
|
||||
":helpgrep" does not put the cursor in the correct column when preceded by
|
||||
accented character. (Tony Mechelynck, 2010 Apr 15)
|
||||
|
||||
Patch: Let rare word highlighting overrule good word highlighting.
|
||||
(Jakson A. Aquino, 2010 Jul 30)
|
||||
|
||||
Better Czech keymap. (Stepnem, 2010 May 4) Use if no response from Jiri
|
||||
Tobisek.
|
||||
|
||||
|
@@ -2,12 +2,13 @@
|
||||
" Language: PHP
|
||||
" Author: John Wellesz <John.wellesz (AT) teaser (DOT) fr>
|
||||
" URL: http://www.2072productions.com/vim/indent/php.vim
|
||||
" Last Change: 2008 November 22nd
|
||||
" Last Change: 2010 Jully 26th
|
||||
" Newsletter: http://www.2072productions.com/?to=php-indent-for-vim-newsletter.php
|
||||
" Version: 1.30
|
||||
" Version: 1.33
|
||||
"
|
||||
"
|
||||
" If you find a bug, please e-mail me at John.wellesz (AT) teaser (DOT) fr
|
||||
" If you find a bug, please report it on GitHub:
|
||||
" http://github.com/2072/PHP-Indenting-for-VIm/issues
|
||||
" with an example of code that breaks the algorithm.
|
||||
"
|
||||
"
|
||||
@@ -15,7 +16,7 @@
|
||||
"
|
||||
"
|
||||
" NOTE: This script must be used with PHP syntax ON and with the php syntax
|
||||
" script by Lutz Eymers (http://www.isp.de/data/php.vim ) or with the
|
||||
" script by Lutz Eymers (http://www.ipdienste.net/data/php.vim ) or with the
|
||||
" script by Peter Hodge (http://www.vim.org/scripts/script.php?script_id=1571 )
|
||||
" the later is bunbdled by default with Vim 7.
|
||||
"
|
||||
@@ -68,8 +69,15 @@ else
|
||||
let b:PHP_autoformatcomment = 1
|
||||
endif
|
||||
|
||||
if exists("PHP_vintage_case_default_indent")
|
||||
let b:PHP_vintage_case_default_indent = PHP_vintage_case_default_indent
|
||||
if exists("PHP_outdentphpescape")
|
||||
let b:PHP_outdentphpescape = PHP_outdentphpescape
|
||||
else
|
||||
let b:PHP_outdentphpescape = 1
|
||||
endif
|
||||
|
||||
|
||||
if exists("PHP_vintage_case_default_indent") && PHP_vintage_case_default_indent
|
||||
let b:PHP_vintage_case_default_indent = 1
|
||||
else
|
||||
let b:PHP_vintage_case_default_indent = 0
|
||||
endif
|
||||
@@ -108,12 +116,11 @@ endif
|
||||
|
||||
if exists("*GetPhpIndent")
|
||||
call ResetPhpOptions()
|
||||
finish " XXX
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:endline= '\s*\%(//.*\|#.*\|/\*.*\*/\s*\)\=$'
|
||||
let s:PHP_startindenttag = '<?\%(.*?>\)\@!\|<script[^>]*>\%(.*<\/script>\)\@!'
|
||||
"setlocal debug=msg " XXX
|
||||
|
||||
|
||||
function! GetLastRealCodeLNum(startline) " {{{
|
||||
@@ -164,8 +171,8 @@ function! GetLastRealCodeLNum(startline) " {{{
|
||||
endif
|
||||
|
||||
|
||||
elseif lastline =~? '^\a\w*;\=$' && lastline !~? s:notPhpHereDoc " XXX 0607
|
||||
let tofind=substitute( lastline, '\(\a\w*\);\=', '<<<''\\=\1''\\=$', '') " XXX 0607
|
||||
elseif lastline =~? '^\a\w*;\=$' && lastline !~? s:notPhpHereDoc
|
||||
let tofind=substitute( lastline, '\(\a\w*\);\=', '<<<''\\=\1''\\=$', '')
|
||||
while getline(lnum) !~? tofind && lnum > 1
|
||||
let lnum = lnum - 1
|
||||
endwhile
|
||||
@@ -174,7 +181,7 @@ function! GetLastRealCodeLNum(startline) " {{{
|
||||
endif
|
||||
endwhile
|
||||
|
||||
if lnum==1 && getline(lnum)!~ '<?'
|
||||
if lnum==1 && getline(lnum) !~ '<?'
|
||||
let lnum=0
|
||||
endif
|
||||
|
||||
@@ -255,6 +262,36 @@ function! FindTheIfOfAnElse (lnum, StopAfterFirstPrevElse) " {{{
|
||||
|
||||
endfunction " }}}
|
||||
|
||||
let s:defaultORcase = '^\s*\%(default\|case\).*:'
|
||||
|
||||
function! FindTheSwitchIndent (lnum) " {{{
|
||||
|
||||
|
||||
let test = GetLastRealCodeLNum(a:lnum - 1)
|
||||
|
||||
if test <= 1
|
||||
return indent(1) - &sw * b:PHP_vintage_case_default_indent
|
||||
end
|
||||
|
||||
if getline(test) =~ '^\s*}'
|
||||
let test = FindOpenBracket(test)
|
||||
|
||||
if getline(test) =~ '^\s*{'
|
||||
let test = GetLastRealCodeLNum(GetLastRealCodeLNum(test - 1) - 1)
|
||||
endif
|
||||
endif
|
||||
|
||||
if getline(test) =~# '^\s*switch\>'
|
||||
return indent(test)
|
||||
elseif getline(test) =~# s:defaultORcase
|
||||
return indent(test) - &sw * b:PHP_vintage_case_default_indent
|
||||
else
|
||||
return FindTheSwitchIndent(test)
|
||||
endif
|
||||
|
||||
endfunction "}}}
|
||||
|
||||
|
||||
function! IslinePHP (lnum, tofind) " {{{
|
||||
let cline = getline(a:lnum)
|
||||
|
||||
@@ -278,7 +315,7 @@ function! IslinePHP (lnum, tofind) " {{{
|
||||
endfunction " }}}
|
||||
|
||||
let s:notPhpHereDoc = '\%(break\|return\|continue\|exit\|else\)'
|
||||
let s:blockstart = '\%(\%(\%(}\s*\)\=else\%(\s\+\)\=\)\=if\>\|else\>\|while\>\|switch\>\|for\%(each\)\=\>\|declare\>\|class\>\|interface\>\|abstract\>\|try\>\|catch\>\)'
|
||||
let s:blockstart = '\%(\%(\%(}\s*\)\=else\%(\s\+\)\=\)\=if\>\|else\>\|while\>\|switch\>\|case\>\|default\>\|for\%(each\)\=\>\|declare\>\|class\>\|interface\>\|abstract\>\|try\>\|catch\>\)'
|
||||
|
||||
let s:autoresetoptions = 0
|
||||
if ! s:autoresetoptions
|
||||
@@ -324,7 +361,7 @@ function! GetPhpIndent()
|
||||
if !b:PHP_indentinghuge && b:PHP_lastindented > b:PHP_indentbeforelast
|
||||
if b:PHP_indentbeforelast
|
||||
let b:PHP_indentinghuge = 1
|
||||
echom 'Large indenting detected, speed optimizations engaged (v1.30)'
|
||||
echom 'Large indenting detected, speed optimizations engaged (v1.33)'
|
||||
endif
|
||||
let b:PHP_indentbeforelast = b:PHP_lastindented
|
||||
endif
|
||||
@@ -383,7 +420,7 @@ function! GetPhpIndent()
|
||||
let lnum = lnum - 1
|
||||
endwhile
|
||||
|
||||
let b:InPHPcode_tofind = substitute( getline(lnum), '^.*<<<''\=\(\a\w*\)''\=$', '^\\s*\1;\\=$', '') " XXX 0607
|
||||
let b:InPHPcode_tofind = substitute( getline(lnum), '^.*<<<''\=\(\a\w*\)''\=$', '^\\s*\1;\\=$', '')
|
||||
endif
|
||||
else
|
||||
let b:InPHPcode = 0
|
||||
@@ -436,9 +473,9 @@ function! GetPhpIndent()
|
||||
let b:InPHPcode_and_script = 1
|
||||
endif
|
||||
|
||||
elseif last_line =~? '<<<''\=\a\w*''\=$' " XXX 0607
|
||||
elseif last_line =~? '<<<''\=\a\w*''\=$'
|
||||
let b:InPHPcode = 0
|
||||
let b:InPHPcode_tofind = substitute( last_line, '^.*<<<''\=\(\a\w*\)''\=$', '^\\s*\1;\\=$', '') " XXX 0607
|
||||
let b:InPHPcode_tofind = substitute( last_line, '^.*<<<''\=\(\a\w*\)''\=$', '^\\s*\1;\\=$', '')
|
||||
|
||||
elseif !UserIsEditing && cline =~ '^\s*/\*\%(.*\*/\)\@!' && getline(v:lnum + 1) !~ '^\s*\*'
|
||||
let b:InPHPcode = 0
|
||||
@@ -488,15 +525,15 @@ function! GetPhpIndent()
|
||||
|
||||
|
||||
" Things always indented at col 1 (PHP delimiter: <?, ?>, Heredoc end) {{{
|
||||
if cline =~# '^\s*<?' && cline !~ '?>'
|
||||
if cline =~# '^\s*<?' && cline !~ '?>' && b:PHP_outdentphpescape
|
||||
return 0
|
||||
endif
|
||||
|
||||
if cline =~ '^\s*?>' && cline !~# '<?'
|
||||
if cline =~ '^\s*?>' && cline !~# '<?' && b:PHP_outdentphpescape
|
||||
return 0
|
||||
endif
|
||||
|
||||
if cline =~? '^\s*\a\w*;$\|^\a\w*$' && cline !~? s:notPhpHereDoc " XXX 0607
|
||||
if cline =~? '^\s*\a\w*;$\|^\a\w*$' && cline !~? s:notPhpHereDoc
|
||||
return 0
|
||||
endif " }}}
|
||||
|
||||
@@ -539,9 +576,8 @@ function! GetPhpIndent()
|
||||
endif
|
||||
endif
|
||||
|
||||
let defaultORcase = '^\s*\%(default\|case\).*:'
|
||||
|
||||
if last_line =~ '[;}]'.endline && last_line !~ '^)' && last_line !~# defaultORcase " Added && last_line !~ '^)' on 2007-12-30
|
||||
if last_line =~ '[;}]'.endline && last_line !~ '^)' && last_line !~# s:defaultORcase
|
||||
if ind==b:PHP_default_indenting
|
||||
return b:PHP_default_indenting
|
||||
elseif b:PHP_indentinghuge && ind==b:PHP_CurrentIndentLevel && cline !~# '^\s*\%(else\|\%(case\|default\).*:\|[})];\=\)' && last_line !~# '^\s*\%(\%(}\s*\)\=else\)' && getline(GetLastRealCodeLNum(lnum - 1))=~';'.endline
|
||||
@@ -551,13 +587,15 @@ function! GetPhpIndent()
|
||||
|
||||
let LastLineClosed = 0
|
||||
|
||||
let terminated = '\%(;\%(\s*?>\)\=\|<<<''\=\a\w*''\=$\|^\s*}\)'.endline " XXX 0607
|
||||
let terminated = '\%(;\%(\s*?>\)\=\|<<<''\=\a\w*''\=$\|^\s*}\)'.endline
|
||||
|
||||
let unstated = '\%(^\s*'.s:blockstart.'.*)\|\%(//.*\)\@<!\<e'.'lse\>\)'.endline
|
||||
|
||||
if ind != b:PHP_default_indenting && cline =~# '^\s*else\%(if\)\=\>'
|
||||
let b:PHP_CurrentIndentLevel = b:PHP_default_indenting
|
||||
return indent(FindTheIfOfAnElse(v:lnum, 1))
|
||||
elseif cline =~# s:defaultORcase
|
||||
return FindTheSwitchIndent(v:lnum) + &sw * b:PHP_vintage_case_default_indent
|
||||
elseif cline =~ '^\s*)\=\s*{'
|
||||
let previous_line = last_line
|
||||
let last_line_num = lnum
|
||||
@@ -580,10 +618,10 @@ function! GetPhpIndent()
|
||||
endwhile
|
||||
|
||||
elseif last_line =~# unstated && cline !~ '^\s*);\='.endline
|
||||
let ind = ind + &sw " we indent one level further when the preceding line is not stated
|
||||
let ind = ind + &sw
|
||||
return ind
|
||||
|
||||
elseif (ind != b:PHP_default_indenting || last_line =~ '^)' ) && last_line =~ terminated " Added || last_line =~ '^)' on 2007-12-30 (array indenting [rpblem broke other things)
|
||||
elseif (ind != b:PHP_default_indenting || last_line =~ '^)' ) && last_line =~ terminated
|
||||
let previous_line = last_line
|
||||
let last_line_num = lnum
|
||||
let LastLineClosed = 1
|
||||
@@ -616,7 +654,7 @@ function! GetPhpIndent()
|
||||
let previous_line = getline(last_line_num)
|
||||
|
||||
|
||||
if previous_line =~# defaultORcase.'\|{'.endline
|
||||
if previous_line =~# s:defaultORcase.'\|{'.endline
|
||||
break
|
||||
endif
|
||||
|
||||
@@ -636,15 +674,12 @@ function! GetPhpIndent()
|
||||
let ind = indent(last_match)
|
||||
let b:PHP_CurrentIndentLevel = b:PHP_default_indenting
|
||||
|
||||
if cline =~# defaultORcase
|
||||
let ind = ind - &sw
|
||||
endif
|
||||
return ind
|
||||
endif
|
||||
endif
|
||||
|
||||
let plinnum = GetLastRealCodeLNum(lnum - 1)
|
||||
let pline = getline(plinnum)
|
||||
let AntepenultimateLine = getline(plinnum)
|
||||
|
||||
let last_line = substitute(last_line,"\\(//\\|#\\)\\(\\(\\([^\"']*\\([\"']\\)[^\"']*\\5\\)\\+[^\"']*$\\)\\|\\([^\"']*$\\)\\)",'','')
|
||||
|
||||
@@ -658,13 +693,13 @@ function! GetPhpIndent()
|
||||
if !LastLineClosed
|
||||
|
||||
|
||||
if last_line =~# '[{(]'.endline || last_line =~? '\h\w*\s*(.*,$' && pline !~ '[,(]'.endline
|
||||
if last_line =~# '[{(]'.endline || last_line =~? '\h\w*\s*(.*,$' && AntepenultimateLine !~ '[,(]'.endline
|
||||
|
||||
if !b:PHP_BracesAtCodeLevel || last_line !~# '^\s*{'
|
||||
let ind = ind + &sw
|
||||
endif
|
||||
|
||||
if b:PHP_BracesAtCodeLevel || b:PHP_vintage_case_default_indent == 1 || cline !~# defaultORcase
|
||||
if b:PHP_BracesAtCodeLevel || b:PHP_vintage_case_default_indent == 1
|
||||
let b:PHP_CurrentIndentLevel = ind
|
||||
|
||||
return ind
|
||||
@@ -677,15 +712,13 @@ function! GetPhpIndent()
|
||||
if openedparent != lnum
|
||||
let ind = indent(openedparent)
|
||||
endif
|
||||
|
||||
elseif last_line =~ '^\s*'.s:blockstart
|
||||
let ind = ind + &sw
|
||||
|
||||
elseif last_line =~# defaultORcase && cline !~# defaultORcase
|
||||
let ind = ind + &sw
|
||||
|
||||
|
||||
elseif pline =~ '\%(;\%(\s*?>\)\=\|<<<''\=\a\w*''\=$\|^\s*}\|{\)'.endline . '\|' . defaultORcase && cline !~# defaultORcase
|
||||
|
||||
elseif AntepenultimateLine =~ '\%(;\%(\s*?>\)\=\|<<<''\=\a\w*''\=$\|^\s*}\|{\)'.endline . '\|' . s:defaultORcase
|
||||
let ind = ind + &sw
|
||||
endif
|
||||
|
||||
@@ -693,9 +726,6 @@ function! GetPhpIndent()
|
||||
|
||||
if cline =~ '^\s*);\='
|
||||
let ind = ind - &sw
|
||||
elseif cline =~# defaultORcase && last_line !~# defaultORcase
|
||||
let ind = ind - &sw
|
||||
|
||||
endif
|
||||
|
||||
let b:PHP_CurrentIndentLevel = ind
|
||||
|
Reference in New Issue
Block a user