xref: /vim-8.2.3635/runtime/ftplugin/php.vim (revision 9a7224b5)
1071d4279SBram Moolenaar" Vim filetype plugin file
2071d4279SBram Moolenaar" Language:	php
35c73622aSBram Moolenaar" Maintainer:	Dan Sharp <dwsharp at users dot sourceforge dot net>
45c73622aSBram Moolenaar" Last Changed: 20 Jan 2009
55c73622aSBram Moolenaar" URL:		http://dwsharp.users.sourceforge.net/vim/ftplugin
6071d4279SBram Moolenaar
7071d4279SBram Moolenaarif exists("b:did_ftplugin") | finish | endif
8071d4279SBram Moolenaar
9071d4279SBram Moolenaar" Make sure the continuation lines below do not cause problems in
10071d4279SBram Moolenaar" compatibility mode.
11*9a7224b5SBram Moolenaarlet s:keepcpo= &cpo
12*9a7224b5SBram Moolenaarset cpo&vim
13071d4279SBram Moolenaar
14071d4279SBram Moolenaar" Define some defaults in case the included ftplugins don't set them.
15071d4279SBram Moolenaarlet s:undo_ftplugin = ""
168299df96SBram Moolenaarlet s:browsefilter = "HTML Files (*.html, *.htm)\t*.html;*.htm\n" .
17071d4279SBram Moolenaar	    \	     "All Files (*.*)\t*.*\n"
18071d4279SBram Moolenaarlet s:match_words = ""
19071d4279SBram Moolenaar
20071d4279SBram Moolenaarruntime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
21071d4279SBram Moolenaarlet b:did_ftplugin = 1
22071d4279SBram Moolenaar
23071d4279SBram Moolenaar" Override our defaults if these were set by an included ftplugin.
24071d4279SBram Moolenaarif exists("b:undo_ftplugin")
25071d4279SBram Moolenaar    let s:undo_ftplugin = b:undo_ftplugin
26071d4279SBram Moolenaarendif
27071d4279SBram Moolenaarif exists("b:browsefilter")
28071d4279SBram Moolenaar    let s:browsefilter = b:browsefilter
29071d4279SBram Moolenaarendif
30071d4279SBram Moolenaarif exists("b:match_words")
31071d4279SBram Moolenaar    let s:match_words = b:match_words
32071d4279SBram Moolenaarendif
33c81e5e79SBram Moolenaarif exists("b:match_skip")
34c81e5e79SBram Moolenaar    unlet b:match_skip
35c81e5e79SBram Moolenaarendif
36071d4279SBram Moolenaar
37071d4279SBram Moolenaar" Change the :browse e filter to primarily show PHP-related files.
38071d4279SBram Moolenaarif has("gui_win32")
39071d4279SBram Moolenaar    let  b:browsefilter="PHP Files (*.php)\t*.php\n" . s:browsefilter
40071d4279SBram Moolenaarendif
41071d4279SBram Moolenaar
42071d4279SBram Moolenaar" ###
43071d4279SBram Moolenaar" Provided by Mikolaj Machowski <mikmach at wp dot pl>
44071d4279SBram Moolenaarsetlocal include=\\\(require\\\|include\\\)\\\(_once\\\)\\\?
45c1a11ed5SBram Moolenaar" Disabled changing 'iskeyword', it breaks a command such as "*"
46c1a11ed5SBram Moolenaar" setlocal iskeyword+=$
47c1a11ed5SBram Moolenaar
48071d4279SBram Moolenaarif exists("loaded_matchit")
49c81e5e79SBram Moolenaar    let b:match_words = '<?php:?>,\<switch\>:\<endswitch\>,' .
50071d4279SBram Moolenaar		      \ '\<if\>:\<elseif\>:\<else\>:\<endif\>,' .
51071d4279SBram Moolenaar		      \ '\<while\>:\<endwhile\>,' .
52071d4279SBram Moolenaar		      \ '\<do\>:\<while\>,' .
53071d4279SBram Moolenaar		      \ '\<for\>:\<endfor\>,' .
54071d4279SBram Moolenaar		      \ '\<foreach\>:\<endforeach\>,' .
55c81e5e79SBram Moolenaar                      \ '(:),[:],{:},' .
56071d4279SBram Moolenaar		      \ s:match_words
57071d4279SBram Moolenaarendif
58071d4279SBram Moolenaar" ###
59071d4279SBram Moolenaar
60c1a11ed5SBram Moolenaarif exists('&omnifunc')
61c1a11ed5SBram Moolenaar  setlocal omnifunc=phpcomplete#CompletePHP
62362e1a30SBram Moolenaarendif
63362e1a30SBram Moolenaar
64c1a11ed5SBram Moolenaar" Section jumping: [[ and ]] provided by Antony Scriven <adscriven at gmail dot com>
65c1a11ed5SBram Moolenaarlet s:function = '\(abstract\s\+\|final\s\+\|private\s\+\|protected\s\+\|public\s\+\|static\s\+\)*function'
66c1a11ed5SBram Moolenaarlet s:class = '\(abstract\s\+\|final\s\+\)*class'
67c1a11ed5SBram Moolenaarlet s:interface = 'interface'
68c1a11ed5SBram Moolenaarlet s:section = '\(.*\%#\)\@!\_^\s*\zs\('.s:function.'\|'.s:class.'\|'.s:interface.'\)'
69c1a11ed5SBram Moolenaarexe 'nno <buffer> <silent> [[ ?' . escape(s:section, '|') . '?<CR>:nohls<CR>'
70c1a11ed5SBram Moolenaarexe 'nno <buffer> <silent> ]] /' . escape(s:section, '|') . '/<CR>:nohls<CR>'
71c1a11ed5SBram Moolenaarexe 'ono <buffer> <silent> [[ ?' . escape(s:section, '|') . '?<CR>:nohls<CR>'
72c1a11ed5SBram Moolenaarexe 'ono <buffer> <silent> ]] /' . escape(s:section, '|') . '/<CR>:nohls<CR>'
73362e1a30SBram Moolenaar
74071d4279SBram Moolenaarsetlocal commentstring=/*%s*/
75071d4279SBram Moolenaar
76071d4279SBram Moolenaar" Undo the stuff we changed.
77c1a11ed5SBram Moolenaarlet b:undo_ftplugin = "setlocal commentstring< include< omnifunc<" .
78071d4279SBram Moolenaar	    \	      " | unlet! b:browsefilter b:match_words | " .
79071d4279SBram Moolenaar	    \	      s:undo_ftplugin
80071d4279SBram Moolenaar
81071d4279SBram Moolenaar" Restore the saved compatibility options.
82*9a7224b5SBram Moolenaarlet &cpo = s:keepcpo
83*9a7224b5SBram Moolenaarunlet s:keepcpo
84