| " 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:save_cpo = &cpo |
| set cpo-=C |
| |
| " 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:save_cpo |