Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 55244 Details for
Bug 87866
vim indent
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
new indentation file for php
php.vim (text/plain), 3.78 KB, created by
Jason Carlson
on 2005-04-03 21:55:16 UTC
(
hide
)
Description:
new indentation file for php
Filename:
MIME Type:
Creator:
Jason Carlson
Created:
2005-04-03 21:55:16 UTC
Size:
3.78 KB
patch
obsolete
>" Vim indent file >" Language: PHP >" Author: Miles Lott <milos@groupwhere.org> >" URL: http://milosch.dyndns.org/php.vim >" Last Change: 2005 March 21 >" Version: 0.6 >" Notes: Close all switches with default:\nbreak; and it will look better. >" Also, open and close brackets should be alone on a line. >" This is my preference, and the only way this will look nice. >" Try an older version if you care less about the formatting of >" switch/case. It is nearly perfect for anyone regardless of your >" stance on brackets. >" >" Changes: 0.6 - fix indentation for closing bracket (patch from ITLab at MUSC - http://www.itlab.musc.edu/) >" 0.5 - fix duplicate indent on open tag, and empty bracketed statements. >" 0.4 - Fixes for closing php tag, switch statement closure, and php_indent_shortopentags >" option from Steffen Bruentjen <vim@kontraphon.de> >" >" Options: php_noindent_switch=1 -- do not try to indent switch/case statements (version 0.1 behavior) >" php_indent_shortopentags=1 -- indent after short php open tags, too > >" Only load this indent file when no other was loaded. >if exists("b:did_indent") > finish >endif >let b:did_indent = 1 > >setlocal indentexpr=GetPhpIndent() >"setlocal indentkeys+=0=,0),=EO >setlocal indentkeys+=0=,0),=EO,=> > >" Only define the function once. >if exists("*GetPhpIndent") > finish >endif > >" Handle option(s) >if exists("php_noindent_switch") > let b:php_noindent_switch=1 >endif > >function GetPhpIndent() > " Find a non-blank line above the current line. > let lnum = prevnonblank(v:lnum - 1) > " Hit the start of the file, use zero indent. > if lnum == 0 > return 0 > endif > let line = getline(lnum) " last line > let cline = getline(v:lnum) " current line > let pline = getline(lnum - 1) " previous to last line > let ind = indent(lnum) > > " Indent after php open tag > if line =~ '<?php' > let ind = ind + &sw > elseif exists('g:php_indent_shortopentags') > " indent after short open tag > if line =~ '<?' > let ind = ind + &sw > endif > endif > " indent after php closing tag > if cline =~ '\M?>' > let ind = ind - &sw > endif > > if exists("b:php_noindent_switch") " version 1 behavior, diy switch/case,etc > " Indent blocks enclosed by {} or () > if line =~ '[{(]\s*\(#[^)}]*\)\=$' > let ind = ind + &sw > endif > if cline =~ '^\s*[)}]' > let ind = ind - &sw > endif > return ind > else > " Search the matching bracket (with searchpair()) and set the indent of > " to the indent of the matching line. > if cline =~ '^\s*}' > call cursor(line('.'), 1) > let ind = indent(searchpair('{', '', '}','bW', 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string"')) > return ind > endif > " Try to indent switch/case statements as well > " Indent blocks enclosed by {} or () or case statements, with some anal requirements > if line =~ 'case.*:\|[{(]\s*\(#[^)}]*\)\=$' > let ind = ind + &sw > " return if the current line is not another case statement of the previous line is a bracket open > if cline !~ '.*case.*:\|default:' || line =~ '[{(]\s*\(#[^)}]*\)\=$' > return ind > endif > endif > if cline =~ '^\s*case.*:\|^\s*default:\|^\s*[)}]' > let ind = ind - &sw > " if the last line is a break or return, or the current line is a close bracket, > " or if the previous line is a default statement, subtract another > if line =~ '^\s*break;\|^\s*return\|' && cline =~ '^\s*[)}]' && pline =~ 'default:' > let ind = ind - &sw > endif > endif > " Search the matching bracket (with searchpair()) and set the indent of cline > " to the indent of the matching line. > if cline =~ '^\s*}' > call cursor(line('. '), 1) > let ind = indent(searchpair('{', '', '}', 'bW', 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string"')) > return ind > endif > > if line =~ 'default:' > let ind = ind + &sw > endif > return ind > endif >endfunction >" vim: set ts=4 sw=4:
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 87866
: 55244