Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
V
Vim
Manage
Activity
Members
Labels
Plan
Issues
0
Issue boards
Milestones
Wiki
Code
Merge requests
0
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Someone-Else
Vim
Commits
8408a9ad
Commit
8408a9ad
authored
14 years ago
by
Bram Moolenaar
Browse files
Options
Downloads
Patches
Plain Diff
More updated runtime files.
parent
f878bcfb
Loading
Loading
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
runtime/doc/indent.txt
+8
-4
8 additions, 4 deletions
runtime/doc/indent.txt
runtime/doc/todo.txt
+3
-0
3 additions, 0 deletions
runtime/doc/todo.txt
runtime/indent/php.vim
+73
-43
73 additions, 43 deletions
runtime/indent/php.vim
with
84 additions
and
47 deletions
runtime/doc/indent.txt
+
8
−
4
View file @
8408a9ad
*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-format
t
ing 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
(
B
y default they are indented at the same level than the 'switch()' to avoid
(
Since in PHP braces are not required inside 'case/default' blocks, b
y default they are indented at the same level than the 'switch()' to avoid
unnecessary indentation)
...
...
This diff is collapsed.
Click to expand it.
runtime/doc/todo.txt
+
3
−
0
View file @
8408a9ad
...
...
@@ -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.
...
...
This diff is collapsed.
Click to expand it.
runtime/indent/php.vim
+
73
−
43
View file @
8408a9ad
...
...
@@ -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
" Newsletter:
http://www.2072productions.com/?to=php-indent-for-vim-newsletter.php
" Version: 1.3
0
" Last Change:
2010 Jully 26th
" Newsletter:
http://www.2072productions.com/?to=php-indent-for-vim-newsletter.php
" Version: 1.3
3
"
"
" 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.i
sp.de
/data/php.vim ) or with the
" script by Lutz Eymers (http://www.i
pdienste.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
...
...
@@ -198,7 +205,7 @@ function! Skippmatch2()
endif
endfun
function
!
Skippmatch
()
"
{{{
function
!
Skippmatch
()
"
{{{
let
synname
=
synIDattr
(
synID
(
line
(
"."
),
col
(
"."
),
0
),
"name"
)
if
synname
==
"Delimiter"
||
synname
==
"phpRegionDelimiter"
||
synname
=~
#
"^phpParent"
||
synname
==
"phpArrayParens"
||
synname
=~
#
'^php\%(Block\|Brace\)'
||
synname
==
"javaScriptBraces"
||
synname
=~
#
"^phpComment"
&&
b:UserIsTypingComment
return
0
...
...
@@ -243,7 +250,7 @@ function! FindTheIfOfAnElse (lnum, StopAfterFirstPrevElse) " {{{
if
getline
(
beforeelse
)
!~
#
'^\s*if\>'
&& beforeelse
>
1
||
s:iftoskip
&& beforeelse
>
1
if
s:iftoskip
&&
getline
(
beforeelse
)
=~
#
'^\s*if\>'
if
s:iftoskip
&&
getline
(
beforeelse
)
=~
#
'^\s*if\>'
let
s:iftoskip
=
s:iftoskip
-
1
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
...
...
@@ -286,7 +323,7 @@ if ! s:autoresetoptions
endif
function
!
ResetPhpOptions
()
if
!
b:optionsset
&& &
filetype
==
"php"
if
!
b:optionsset
&& &
filetype
==
"php"
if
b:PHP_autoformatcomment
setlocal
comments
=
s1
:
/*,mb:*,ex:*/
,:
//
,:
#
...
...
@@ -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.3
0
)'
echom
'Large indenting detected, speed optimizations engaged (v1.3
3
)'
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
...
...
@@ -399,7 +436,7 @@ function! GetPhpIndent()
if
b:InPHPcode_tofind
!=
""
if
cline
=~
?
b:InPHPcode_tofind
let
b:InPHPcode
=
1
let
b:InPHPcode
=
1
let
b:InPHPcode_tofind
=
""
let
b:UserIsTypingComment
=
0
if
cline
=~
'\*/'
...
...
@@ -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
pl
ine
=
getline
(
plinnum
)
let
AntepenultimateL
ine
=
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*(.*,$'
&&
pl
ine
!~
'[,(]'
.
endline
if
last_line
=~
#
'[{(]'
.
endline
||
last_line
=~
?
'\h\w*\s*(.*,$'
&&
AntepenultimateL
ine
!~
'[,(]'
.
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
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment