diff options
Diffstat (limited to 'runtime/ftplugin/php.vim')
-rw-r--r-- | runtime/ftplugin/php.vim | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/runtime/ftplugin/php.vim b/runtime/ftplugin/php.vim new file mode 100644 index 0000000..a2f8b4d --- /dev/null +++ b/runtime/ftplugin/php.vim @@ -0,0 +1,83 @@ +" Vim filetype plugin file +" Language: php +" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net> +" Last Changed: 20 Jan 2009 +" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin + +if exists("b:did_ftplugin") | finish | endif + +" Make sure the continuation lines below do not cause problems in +" compatibility mode. +let s:keepcpo= &cpo +set cpo&vim + +" Define some defaults in case the included ftplugins don't set them. +let s:undo_ftplugin = "" +let s:browsefilter = "HTML Files (*.html, *.htm)\t*.html;*.htm\n" . + \ "All Files (*.*)\t*.*\n" +let s:match_words = "" + +runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim +let b:did_ftplugin = 1 + +" Override our defaults if these were set by an included ftplugin. +if exists("b:undo_ftplugin") + let s:undo_ftplugin = b:undo_ftplugin +endif +if exists("b:browsefilter") + let s:browsefilter = b:browsefilter +endif +if exists("b:match_words") + let s:match_words = b:match_words +endif +if exists("b:match_skip") + unlet b:match_skip +endif + +" Change the :browse e filter to primarily show PHP-related files. +if has("gui_win32") + let b:browsefilter="PHP Files (*.php)\t*.php\n" . s:browsefilter +endif + +" ### +" Provided by Mikolaj Machowski <mikmach at wp dot pl> +setlocal include=\\\(require\\\|include\\\)\\\(_once\\\)\\\? +" Disabled changing 'iskeyword', it breaks a command such as "*" +" setlocal iskeyword+=$ + +if exists("loaded_matchit") + let b:match_words = '<?php:?>,\<switch\>:\<endswitch\>,' . + \ '\<if\>:\<elseif\>:\<else\>:\<endif\>,' . + \ '\<while\>:\<endwhile\>,' . + \ '\<do\>:\<while\>,' . + \ '\<for\>:\<endfor\>,' . + \ '\<foreach\>:\<endforeach\>,' . + \ '(:),[:],{:},' . + \ s:match_words +endif +" ### + +if exists('&omnifunc') + setlocal omnifunc=phpcomplete#CompletePHP +endif + +" Section jumping: [[ and ]] provided by Antony Scriven <adscriven at gmail dot com> +let s:function = '\(abstract\s\+\|final\s\+\|private\s\+\|protected\s\+\|public\s\+\|static\s\+\)*function' +let s:class = '\(abstract\s\+\|final\s\+\)*class' +let s:interface = 'interface' +let s:section = '\(.*\%#\)\@!\_^\s*\zs\('.s:function.'\|'.s:class.'\|'.s:interface.'\)' +exe 'nno <buffer> <silent> [[ ?' . escape(s:section, '|') . '?<CR>:nohls<CR>' +exe 'nno <buffer> <silent> ]] /' . escape(s:section, '|') . '/<CR>:nohls<CR>' +exe 'ono <buffer> <silent> [[ ?' . escape(s:section, '|') . '?<CR>:nohls<CR>' +exe 'ono <buffer> <silent> ]] /' . escape(s:section, '|') . '/<CR>:nohls<CR>' + +setlocal commentstring=/*%s*/ + +" Undo the stuff we changed. +let b:undo_ftplugin = "setlocal commentstring< include< omnifunc<" . + \ " | unlet! b:browsefilter b:match_words | " . + \ s:undo_ftplugin + +" Restore the saved compatibility options. +let &cpo = s:keepcpo +unlet s:keepcpo |