Merged from the latest developing branch.
[MacVim.git] / runtime / ftplugin / xml.vim
blob55d9ee6c5bfbb5cfca5b1fff5a9db6190065216d
1 " Vim filetype plugin file
2 " Language:     xml
3 " Maintainer:   Dan Sharp <dwsharp at hotmail dot com>
4 " Last Changed: 30 Jun 2008
5 " URL:          http://mywebpage.netscape.com/sharppeople/vim/ftplugin
7 if exists("b:did_ftplugin") | finish | endif
8 let b:did_ftplugin = 1
10 " Make sure the continuation lines below do not cause problems in
11 " compatibility mode.
12 let s:save_cpo = &cpo
13 set cpo-=C
15 setlocal commentstring=<!--%s-->
16 setlocal comments=s:<!--,m:\ \ \ \ \ ,e:-->
18 setlocal formatoptions-=t
19 if !exists("g:ft_xml_autocomment") || (g:ft_xml_autocomment == 1)
20     setlocal formatoptions+=croql
21 endif
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 ">">
31 if 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\+[^/>]*\|$\):/>'
40 endif
43 " For Omni completion, by Mikolaj Machowski.
44 if exists('&ofu')
45   setlocal ofu=xmlcomplete#CompleteTags
46 endif
47 command! -nargs=+ XMLns call xmlcomplete#CreateConnection(<f-args>)
48 command! -nargs=? XMLent call xmlcomplete#CreateEntConnection(<f-args>)
51 " Change the :browse e filter to primarily show xml-related files.
52 if 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"
56 endif
58 " Undo the stuff we changed.
59 let b:undo_ftplugin = "setlocal commentstring< comments< formatoptions<" .
60                 \     " | unlet! b:match_ignorecase b:match_words b:browsefilter"
62 " Restore the saved compatibility options.
63 let &cpo = s:save_cpo