1071d4279SBram Moolenaar" Vim filetype plugin file 2071d4279SBram Moolenaar" Language: html 3071d4279SBram Moolenaar" Maintainer: Dan Sharp <dwsharp at hotmail dot com> 4*f193fffdSBram Moolenaar" Last Changed: 2006 Apr 26 5071d4279SBram Moolenaar" URL: http://mywebpage.netscape.com/sharppeople/vim/ftplugin 6071d4279SBram Moolenaar 7071d4279SBram Moolenaarif exists("b:did_ftplugin") | finish | endif 8071d4279SBram Moolenaarlet b:did_ftplugin = 1 9071d4279SBram Moolenaar 10071d4279SBram Moolenaar" Make sure the continuation lines below do not cause problems in 11071d4279SBram Moolenaar" compatibility mode. 12071d4279SBram Moolenaarlet s:save_cpo = &cpo 13071d4279SBram Moolenaarset cpo-=C 14071d4279SBram Moolenaar 15071d4279SBram Moolenaarsetlocal commentstring=<!--%s--> 16071d4279SBram Moolenaar 17*f193fffdSBram Moolenaarif exists('&omnifunc') 18*f193fffdSBram Moolenaar" Distinguish between HTML versions 19*f193fffdSBram Moolenaar" To use with other HTML versions add another 20*f193fffdSBram Moolenaar" elseif condition to match proper DOCTYPE 21f75a963eSBram Moolenaarsetlocal omnifunc=htmlcomplete#CompleteTags 22f75a963eSBram Moolenaar 234a85b415SBram Moolenaarif &filetype == 'xhtml' 244a85b415SBram Moolenaar let b:html_omni_flavor = 'xhtml10s' 254a85b415SBram Moolenaarelse 264a85b415SBram Moolenaar let b:html_omni_flavor = 'html401t' 274a85b415SBram Moolenaarendif 284a85b415SBram Moolenaarlet i = 1 294a85b415SBram Moolenaarwhile i < 10 && i < line("$") 304a85b415SBram Moolenaar let line = getline(i) 314a85b415SBram Moolenaar if line =~ '<!DOCTYPE.*\<DTD HTML 3\.2' 324a85b415SBram Moolenaar let b:html_omni_flavor = 'html32' 334a85b415SBram Moolenaar break 344a85b415SBram Moolenaar elseif line =~ '<!DOCTYPE.*\<DTD HTML 4\.0 Transitional' 354a85b415SBram Moolenaar let b:html_omni_flavor = 'html40t' 364a85b415SBram Moolenaar break 374a85b415SBram Moolenaar elseif line =~ '<!DOCTYPE.*\<DTD HTML 4\.0 Frameset' 384a85b415SBram Moolenaar let b:html_omni_flavor = 'html40f' 394a85b415SBram Moolenaar break 404a85b415SBram Moolenaar elseif line =~ '<!DOCTYPE.*\<DTD HTML 4\.0' 414a85b415SBram Moolenaar let b:html_omni_flavor = 'html40s' 424a85b415SBram Moolenaar break 434a85b415SBram Moolenaar elseif line =~ '<!DOCTYPE.*\<DTD HTML 4\.01 Transitional' 444a85b415SBram Moolenaar let b:html_omni_flavor = 'html401t' 454a85b415SBram Moolenaar break 464a85b415SBram Moolenaar elseif line =~ '<!DOCTYPE.*\<DTD HTML 4\.01 Frameset' 474a85b415SBram Moolenaar let b:html_omni_flavor = 'html401f' 484a85b415SBram Moolenaar break 494a85b415SBram Moolenaar elseif line =~ '<!DOCTYPE.*\<DTD HTML 4\.01' 504a85b415SBram Moolenaar let b:html_omni_flavor = 'html401s' 514a85b415SBram Moolenaar break 524a85b415SBram Moolenaar elseif line =~ '<!DOCTYPE.*\<DTD XHTML 1\.0 Transitional' 534a85b415SBram Moolenaar let b:html_omni_flavor = 'xhtml10t' 544a85b415SBram Moolenaar break 554a85b415SBram Moolenaar elseif line =~ '<!DOCTYPE.*\<DTD XHTML 1\.0 Frameset' 564a85b415SBram Moolenaar let b:html_omni_flavor = 'xhtml10f' 574a85b415SBram Moolenaar break 584a85b415SBram Moolenaar elseif line =~ '<!DOCTYPE.*\<DTD XHTML 1\.0 Strict' 594a85b415SBram Moolenaar let b:html_omni_flavor = 'xhtml10s' 604a85b415SBram Moolenaar break 614a85b415SBram Moolenaar elseif line =~ '<!DOCTYPE.*\<DTD XHTML 1\.1' 624a85b415SBram Moolenaar let b:html_omni_flavor = 'xhtml11' 634a85b415SBram Moolenaar break 644a85b415SBram Moolenaar endif 654a85b415SBram Moolenaar let i += 1 664a85b415SBram Moolenaarendwhile 67*f193fffdSBram Moolenaarendif 684a85b415SBram Moolenaar 69071d4279SBram Moolenaar" HTML: thanks to Johannes Zellner and Benji Fisher. 70071d4279SBram Moolenaarif exists("loaded_matchit") 71071d4279SBram Moolenaar let b:match_ignorecase = 1 72071d4279SBram Moolenaar let b:match_skip = 's:Comment' 73071d4279SBram Moolenaar let b:match_words = '<:>,' . 74071d4279SBram Moolenaar \ '<\@<=[ou]l\>[^>]*\%(>\|$\):<\@<=li\>:<\@<=/[ou]l>,' . 75071d4279SBram Moolenaar \ '<\@<=dl\>[^>]*\%(>\|$\):<\@<=d[td]\>:<\@<=/dl>,' . 76071d4279SBram Moolenaar \ '<\@<=\([^/][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>' 77071d4279SBram Moolenaarendif 78071d4279SBram Moolenaar 79071d4279SBram Moolenaar" Change the :browse e filter to primarily show HTML-related files. 80071d4279SBram Moolenaarif has("gui_win32") 818299df96SBram Moolenaar let b:browsefilter="HTML Files (*.html,*.htm)\t*.htm;*.html\n" . 82071d4279SBram Moolenaar \ "JavaScript Files (*.js)\t*.js\n" . 83071d4279SBram Moolenaar \ "Cascading StyleSheets (*.css)\t*.css\n" . 84071d4279SBram Moolenaar \ "All Files (*.*)\t*.*\n" 85071d4279SBram Moolenaarendif 86071d4279SBram Moolenaar 87071d4279SBram Moolenaar" Undo the stuff we changed. 88071d4279SBram Moolenaarlet b:undo_ftplugin = "setlocal commentstring<" 89071d4279SBram Moolenaar \ " | unlet! b:match_ignorecase b:match_skip b:match_words b:browsefilter" 90071d4279SBram Moolenaar 91071d4279SBram Moolenaar" Restore the saved compatibility options. 92071d4279SBram Moolenaarlet &cpo = s:save_cpo 93