123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- " 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
|