1071d4279SBram Moolenaar" Vim filetype plugin file 2071d4279SBram Moolenaar" Language: xml 37db25fedSBram Moolenaar" Maintainer: Christian Brabandt <[email protected]> 4*d47d5223SBram Moolenaar" Last Changed: Dec 07th, 2018 57db25fedSBram Moolenaar" Repository: https://github.com/chrisbra/vim-xml-ftplugin 67db25fedSBram Moolenaar" Previous Maintainer: Dan Sharp <dwsharp at users dot sourceforge dot net> 75c73622aSBram Moolenaar" URL: http://dwsharp.users.sourceforge.net/vim/ftplugin 8071d4279SBram Moolenaar 9071d4279SBram Moolenaarif exists("b:did_ftplugin") | finish | endif 10071d4279SBram Moolenaarlet b:did_ftplugin = 1 11071d4279SBram Moolenaar 12071d4279SBram Moolenaar" Make sure the continuation lines below do not cause problems in 13071d4279SBram Moolenaar" compatibility mode. 14071d4279SBram Moolenaarlet s:save_cpo = &cpo 157db25fedSBram Moolenaarset cpo&vim 16071d4279SBram Moolenaar 17071d4279SBram Moolenaarsetlocal commentstring=<!--%s--> 187db25fedSBram Moolenaar" Remove the middlepart from the comments section, as this causes problems: 197db25fedSBram Moolenaar" https://groups.google.com/d/msg/vim_dev/x4GT-nqa0Kg/jvtRnEbtAnMJ 207db25fedSBram Moolenaarsetlocal comments=s:<!--,e:--> 21e37d50a5SBram Moolenaar 22e37d50a5SBram Moolenaarsetlocal formatoptions-=t 23e37d50a5SBram Moolenaarsetlocal formatoptions+=croql 247db25fedSBram Moolenaarsetlocal formatexpr=xmlformat#Format() 25071d4279SBram Moolenaar 26071d4279SBram Moolenaar" XML: thanks to Johannes Zellner and Akbar Ibrahim 27071d4279SBram Moolenaar" - case sensitive 28071d4279SBram Moolenaar" - don't match empty tags <fred/> 29071d4279SBram Moolenaar" - match <!--, --> style comments (but not --, --) 30071d4279SBram Moolenaar" - match <!, > inlined dtd's. This is not perfect, as it 31071d4279SBram Moolenaar" gets confused for example by 32071d4279SBram Moolenaar" <!ENTITY gt ">"> 33071d4279SBram Moolenaarif exists("loaded_matchit") 34071d4279SBram Moolenaar let b:match_ignorecase=0 35071d4279SBram Moolenaar let b:match_words = 36071d4279SBram Moolenaar \ '<:>,' . 37071d4279SBram Moolenaar \ '<\@<=!\[CDATA\[:]]>,'. 38071d4279SBram Moolenaar \ '<\@<=!--:-->,'. 39071d4279SBram Moolenaar \ '<\@<=?\k\+:?>,'. 40071d4279SBram Moolenaar \ '<\@<=\([^ \t>/]\+\)\%(\s\+[^>]*\%([^/]>\|$\)\|>\|$\):<\@<=/\1>,'. 41071d4279SBram Moolenaar \ '<\@<=\%([^ \t>/]\+\)\%(\s\+[^/>]*\|$\):/>' 42071d4279SBram Moolenaarendif 43071d4279SBram Moolenaar 44a5792f58SBram Moolenaar" For Omni completion, by Mikolaj Machowski. 45a5792f58SBram Moolenaarif exists('&ofu') 46a5792f58SBram Moolenaar setlocal ofu=xmlcomplete#CompleteTags 47a5792f58SBram Moolenaarendif 48a5792f58SBram Moolenaarcommand! -nargs=+ XMLns call xmlcomplete#CreateConnection(<f-args>) 49a5792f58SBram Moolenaarcommand! -nargs=? XMLent call xmlcomplete#CreateEntConnection(<f-args>) 50a5792f58SBram Moolenaar 51071d4279SBram Moolenaar" Change the :browse e filter to primarily show xml-related files. 527db25fedSBram Moolenaarif (has("gui_win32") || has("gui_gtk")) && !exists("b:browsefilter") 53071d4279SBram Moolenaar let b:browsefilter="XML Files (*.xml)\t*.xml\n" . 54071d4279SBram Moolenaar \ "DTD Files (*.dtd)\t*.dtd\n" . 557db25fedSBram Moolenaar \ "XSD Files (*.xsd)\t*.xsd\n" . 56071d4279SBram Moolenaar \ "All Files (*.*)\t*.*\n" 57071d4279SBram Moolenaarendif 58071d4279SBram Moolenaar 59071d4279SBram Moolenaar" Undo the stuff we changed. 607db25fedSBram Moolenaarlet b:undo_ftplugin = "setlocal commentstring< comments< formatoptions< formatexpr< " . 61071d4279SBram Moolenaar \ " | unlet! b:match_ignorecase b:match_words b:browsefilter" 62071d4279SBram Moolenaar 63071d4279SBram Moolenaar" Restore the saved compatibility options. 64071d4279SBram Moolenaarlet &cpo = s:save_cpo 6584f7235bSBram Moolenaarunlet s:save_cpo 66