1" Vim filetype plugin file 2" Language: xml 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 6 7if exists("b:did_ftplugin") | finish | endif 8let b:did_ftplugin = 1 9 10" Make sure the continuation lines below do not cause problems in 11" compatibility mode. 12let s:save_cpo = &cpo 13set cpo-=C 14 15setlocal commentstring=<!--%s--> 16setlocal comments=s:<!--,m:\ \ \ \ \ ,e:--> 17 18setlocal formatoptions-=t 19if !exists("g:ft_xml_autocomment") || (g:ft_xml_autocomment == 1) 20 setlocal formatoptions+=croql 21endif 22 23 24" XML: thanks to Johannes Zellner and Akbar Ibrahim 25" - case sensitive 26" - don't match empty tags <fred/> 27" - match <!--, --> style comments (but not --, --) 28" - match <!, > inlined dtd's. This is not perfect, as it 29" gets confused for example by 30" <!ENTITY gt ">"> 31if exists("loaded_matchit") 32 let b:match_ignorecase=0 33 let b:match_words = 34 \ '<:>,' . 35 \ '<\@<=!\[CDATA\[:]]>,'. 36 \ '<\@<=!--:-->,'. 37 \ '<\@<=?\k\+:?>,'. 38 \ '<\@<=\([^ \t>/]\+\)\%(\s\+[^>]*\%([^/]>\|$\)\|>\|$\):<\@<=/\1>,'. 39 \ '<\@<=\%([^ \t>/]\+\)\%(\s\+[^/>]*\|$\):/>' 40endif 41 42" 43" For Omni completion, by Mikolaj Machowski. 44if exists('&ofu') 45 setlocal ofu=xmlcomplete#CompleteTags 46endif 47command! -nargs=+ XMLns call xmlcomplete#CreateConnection(<f-args>) 48command! -nargs=? XMLent call xmlcomplete#CreateEntConnection(<f-args>) 49 50 51" Change the :browse e filter to primarily show xml-related files. 52if has("gui_win32") 53 let b:browsefilter="XML Files (*.xml)\t*.xml\n" . 54 \ "DTD Files (*.dtd)\t*.dtd\n" . 55 \ "All Files (*.*)\t*.*\n" 56endif 57 58" Undo the stuff we changed. 59let b:undo_ftplugin = "setlocal commentstring< comments< formatoptions<" . 60 \ " | unlet! b:match_ignorecase b:match_words b:browsefilter" 61 62" Restore the saved compatibility options. 63let &cpo = s:save_cpo 64