Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 1 | " Vim filetype plugin file |
| 2 | " Language: php |
| 3 | " Maintainer: Dan Sharp <dwsharp at hotmail dot com> |
Bram Moolenaar | c1a11ed | 2008-06-24 22:09:24 +0000 | [diff] [blame] | 4 | " Last Changed: 2007 Nov 10 |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 5 | " URL: http://mywebpage.netscape.com/sharppeople/vim/ftplugin |
| 6 | |
| 7 | if exists("b:did_ftplugin") | finish | endif |
| 8 | |
| 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 |
| 13 | |
| 14 | " Define some defaults in case the included ftplugins don't set them. |
| 15 | let s:undo_ftplugin = "" |
Bram Moolenaar | 8299df9 | 2004-07-10 09:47:34 +0000 | [diff] [blame] | 16 | let s:browsefilter = "HTML Files (*.html, *.htm)\t*.html;*.htm\n" . |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 17 | \ "All Files (*.*)\t*.*\n" |
| 18 | let s:match_words = "" |
| 19 | |
| 20 | runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim |
| 21 | let b:did_ftplugin = 1 |
| 22 | |
| 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 |
Bram Moolenaar | c81e5e7 | 2007-05-05 18:24:42 +0000 | [diff] [blame] | 33 | if exists("b:match_skip") |
| 34 | unlet b:match_skip |
| 35 | endif |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 36 | |
| 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 |
| 41 | |
| 42 | " ### |
| 43 | " Provided by Mikolaj Machowski <mikmach at wp dot pl> |
| 44 | setlocal include=\\\(require\\\|include\\\)\\\(_once\\\)\\\? |
Bram Moolenaar | c1a11ed | 2008-06-24 22:09:24 +0000 | [diff] [blame] | 45 | " Disabled changing 'iskeyword', it breaks a command such as "*" |
| 46 | " setlocal iskeyword+=$ |
| 47 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 48 | if exists("loaded_matchit") |
Bram Moolenaar | c81e5e7 | 2007-05-05 18:24:42 +0000 | [diff] [blame] | 49 | let b:match_words = '<?php:?>,\<switch\>:\<endswitch\>,' . |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 50 | \ '\<if\>:\<elseif\>:\<else\>:\<endif\>,' . |
| 51 | \ '\<while\>:\<endwhile\>,' . |
| 52 | \ '\<do\>:\<while\>,' . |
| 53 | \ '\<for\>:\<endfor\>,' . |
| 54 | \ '\<foreach\>:\<endforeach\>,' . |
Bram Moolenaar | c81e5e7 | 2007-05-05 18:24:42 +0000 | [diff] [blame] | 55 | \ '(:),[:],{:},' . |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 56 | \ s:match_words |
| 57 | endif |
| 58 | " ### |
| 59 | |
Bram Moolenaar | c1a11ed | 2008-06-24 22:09:24 +0000 | [diff] [blame] | 60 | if exists('&omnifunc') |
| 61 | setlocal omnifunc=phpcomplete#CompletePHP |
Bram Moolenaar | 362e1a3 | 2006-03-06 23:29:24 +0000 | [diff] [blame] | 62 | endif |
| 63 | |
Bram Moolenaar | c1a11ed | 2008-06-24 22:09:24 +0000 | [diff] [blame] | 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>' |
Bram Moolenaar | 362e1a3 | 2006-03-06 23:29:24 +0000 | [diff] [blame] | 73 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 74 | setlocal commentstring=/*%s*/ |
| 75 | |
| 76 | " Undo the stuff we changed. |
Bram Moolenaar | c1a11ed | 2008-06-24 22:09:24 +0000 | [diff] [blame] | 77 | let b:undo_ftplugin = "setlocal commentstring< include< omnifunc<" . |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 78 | \ " | unlet! b:browsefilter b:match_words | " . |
| 79 | \ s:undo_ftplugin |
| 80 | |
| 81 | " Restore the saved compatibility options. |
| 82 | let &cpo = s:save_cpo |