1" Vim filetype plugin file 2" Language: php 3" Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net> 4" Last Changed: 20 Jan 2009 5" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin 6 7if exists("b:did_ftplugin") | finish | endif 8 9" Make sure the continuation lines below do not cause problems in 10" compatibility mode. 11let s:save_cpo = &cpo 12set cpo-=C 13 14" Define some defaults in case the included ftplugins don't set them. 15let s:undo_ftplugin = "" 16let s:browsefilter = "HTML Files (*.html, *.htm)\t*.html;*.htm\n" . 17 \ "All Files (*.*)\t*.*\n" 18let s:match_words = "" 19 20runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim 21let b:did_ftplugin = 1 22 23" Override our defaults if these were set by an included ftplugin. 24if exists("b:undo_ftplugin") 25 let s:undo_ftplugin = b:undo_ftplugin 26endif 27if exists("b:browsefilter") 28 let s:browsefilter = b:browsefilter 29endif 30if exists("b:match_words") 31 let s:match_words = b:match_words 32endif 33if exists("b:match_skip") 34 unlet b:match_skip 35endif 36 37" Change the :browse e filter to primarily show PHP-related files. 38if has("gui_win32") 39 let b:browsefilter="PHP Files (*.php)\t*.php\n" . s:browsefilter 40endif 41 42" ### 43" Provided by Mikolaj Machowski <mikmach at wp dot pl> 44setlocal include=\\\(require\\\|include\\\)\\\(_once\\\)\\\? 45" Disabled changing 'iskeyword', it breaks a command such as "*" 46" setlocal iskeyword+=$ 47 48if exists("loaded_matchit") 49 let b:match_words = '<?php:?>,\<switch\>:\<endswitch\>,' . 50 \ '\<if\>:\<elseif\>:\<else\>:\<endif\>,' . 51 \ '\<while\>:\<endwhile\>,' . 52 \ '\<do\>:\<while\>,' . 53 \ '\<for\>:\<endfor\>,' . 54 \ '\<foreach\>:\<endforeach\>,' . 55 \ '(:),[:],{:},' . 56 \ s:match_words 57endif 58" ### 59 60if exists('&omnifunc') 61 setlocal omnifunc=phpcomplete#CompletePHP 62endif 63 64" Section jumping: [[ and ]] provided by Antony Scriven <adscriven at gmail dot com> 65let s:function = '\(abstract\s\+\|final\s\+\|private\s\+\|protected\s\+\|public\s\+\|static\s\+\)*function' 66let s:class = '\(abstract\s\+\|final\s\+\)*class' 67let s:interface = 'interface' 68let s:section = '\(.*\%#\)\@!\_^\s*\zs\('.s:function.'\|'.s:class.'\|'.s:interface.'\)' 69exe 'nno <buffer> <silent> [[ ?' . escape(s:section, '|') . '?<CR>:nohls<CR>' 70exe 'nno <buffer> <silent> ]] /' . escape(s:section, '|') . '/<CR>:nohls<CR>' 71exe 'ono <buffer> <silent> [[ ?' . escape(s:section, '|') . '?<CR>:nohls<CR>' 72exe 'ono <buffer> <silent> ]] /' . escape(s:section, '|') . '/<CR>:nohls<CR>' 73 74setlocal commentstring=/*%s*/ 75 76" Undo the stuff we changed. 77let b:undo_ftplugin = "setlocal commentstring< include< omnifunc<" . 78 \ " | unlet! b:browsefilter b:match_words | " . 79 \ s:undo_ftplugin 80 81" Restore the saved compatibility options. 82let &cpo = s:save_cpo 83