blob: 93de5b90f45168b3722602df9acda0e1cb167730 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim filetype plugin file
2" Language: php
Bram Moolenaar5c736222010-01-06 20:54:52 +01003" 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
Bram Moolenaar071d4272004-06-13 20:20:40 +00006
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 = ""
Bram Moolenaar8299df92004-07-10 09:47:34 +000016let s:browsefilter = "HTML Files (*.html, *.htm)\t*.html;*.htm\n" .
Bram Moolenaar071d4272004-06-13 20:20:40 +000017 \ "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
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000033if exists("b:match_skip")
34 unlet b:match_skip
35endif
Bram Moolenaar071d4272004-06-13 20:20:40 +000036
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\\\)\\\?
Bram Moolenaarc1a11ed2008-06-24 22:09:24 +000045" Disabled changing 'iskeyword', it breaks a command such as "*"
46" setlocal iskeyword+=$
47
Bram Moolenaar071d4272004-06-13 20:20:40 +000048if exists("loaded_matchit")
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000049 let b:match_words = '<?php:?>,\<switch\>:\<endswitch\>,' .
Bram Moolenaar071d4272004-06-13 20:20:40 +000050 \ '\<if\>:\<elseif\>:\<else\>:\<endif\>,' .
51 \ '\<while\>:\<endwhile\>,' .
52 \ '\<do\>:\<while\>,' .
53 \ '\<for\>:\<endfor\>,' .
54 \ '\<foreach\>:\<endforeach\>,' .
Bram Moolenaarc81e5e72007-05-05 18:24:42 +000055 \ '(:),[:],{:},' .
Bram Moolenaar071d4272004-06-13 20:20:40 +000056 \ s:match_words
57endif
58" ###
59
Bram Moolenaarc1a11ed2008-06-24 22:09:24 +000060if exists('&omnifunc')
61 setlocal omnifunc=phpcomplete#CompletePHP
Bram Moolenaar362e1a32006-03-06 23:29:24 +000062endif
63
Bram Moolenaarc1a11ed2008-06-24 22:09:24 +000064" 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>'
Bram Moolenaar362e1a32006-03-06 23:29:24 +000073
Bram Moolenaar071d4272004-06-13 20:20:40 +000074setlocal commentstring=/*%s*/
75
76" Undo the stuff we changed.
Bram Moolenaarc1a11ed2008-06-24 22:09:24 +000077let b:undo_ftplugin = "setlocal commentstring< include< omnifunc<" .
Bram Moolenaar071d4272004-06-13 20:20:40 +000078 \ " | unlet! b:browsefilter b:match_words | " .
79 \ s:undo_ftplugin
80
81" Restore the saved compatibility options.
82let &cpo = s:save_cpo
Bram Moolenaar84f72352012-03-11 15:57:40 +010083unlet s:save_cpo