Update runtime files
[MacVim.git] / runtime / ftplugin / php.vim
blobf59cf122f47e82fe6d99070ea2bb40f810eaeb6e
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
7 if exists("b:did_ftplugin") | finish | endif
9 " Make sure the continuation lines below do not cause problems in
10 " compatibility mode.
11 let s:save_cpo = &cpo
12 set cpo-=C
14 " Define some defaults in case the included ftplugins don't set them.
15 let s:undo_ftplugin = ""
16 let s:browsefilter = "HTML Files (*.html, *.htm)\t*.html;*.htm\n" .
17             \        "All Files (*.*)\t*.*\n"
18 let s:match_words = ""
20 runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
21 let b:did_ftplugin = 1
23 " Override our defaults if these were set by an included ftplugin.
24 if exists("b:undo_ftplugin")
25     let s:undo_ftplugin = b:undo_ftplugin
26 endif
27 if exists("b:browsefilter")
28     let s:browsefilter = b:browsefilter
29 endif
30 if exists("b:match_words")
31     let s:match_words = b:match_words
32 endif
33 if exists("b:match_skip")
34     unlet b:match_skip
35 endif
37 " Change the :browse e filter to primarily show PHP-related files.
38 if has("gui_win32")
39     let  b:browsefilter="PHP Files (*.php)\t*.php\n" . s:browsefilter
40 endif
42 " ###
43 " Provided by Mikolaj Machowski <mikmach at wp dot pl>
44 setlocal include=\\\(require\\\|include\\\)\\\(_once\\\)\\\?
45 " Disabled changing 'iskeyword', it breaks a command such as "*"
46 " setlocal iskeyword+=$
48 if 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
57 endif
58 " ###
60 if exists('&omnifunc')
61   setlocal omnifunc=phpcomplete#CompletePHP
62 endif
64 " Section jumping: [[ and ]] provided by Antony Scriven <adscriven at gmail dot com>
65 let s:function = '\(abstract\s\+\|final\s\+\|private\s\+\|protected\s\+\|public\s\+\|static\s\+\)*function'
66 let s:class = '\(abstract\s\+\|final\s\+\)*class'
67 let s:interface = 'interface'
68 let s:section = '\(.*\%#\)\@!\_^\s*\zs\('.s:function.'\|'.s:class.'\|'.s:interface.'\)'
69 exe 'nno <buffer> <silent> [[ ?' . escape(s:section, '|') . '?<CR>:nohls<CR>'
70 exe 'nno <buffer> <silent> ]] /' . escape(s:section, '|') . '/<CR>:nohls<CR>'
71 exe 'ono <buffer> <silent> [[ ?' . escape(s:section, '|') . '?<CR>:nohls<CR>'
72 exe 'ono <buffer> <silent> ]] /' . escape(s:section, '|') . '/<CR>:nohls<CR>'
74 setlocal commentstring=/*%s*/
76 " Undo the stuff we changed.
77 let b:undo_ftplugin = "setlocal commentstring< include< omnifunc<" .
78             \         " | unlet! b:browsefilter b:match_words | " .
79             \         s:undo_ftplugin
81 " Restore the saved compatibility options.
82 let &cpo = s:save_cpo