# HG changeset patch # User Bram Moolenaar # Date 1281691802 -7200 # Node ID 0d3f0e3d289b767db7999533939d187ebab602fc # Parent 298d8d6e69be4db725c2dbce8b89fcb3702df985 Updates for :TOhtml. (Benjamin Fritz) diff --git a/runtime/autoload/tohtml.vim b/runtime/autoload/tohtml.vim --- a/runtime/autoload/tohtml.vim +++ b/runtime/autoload/tohtml.vim @@ -1,6 +1,6 @@ " Vim autoload file for the tohtml plugin. " Maintainer: Ben Fritz -" Last Change: 2010 Aug 06 +" Last Change: 2010 Aug 12 " " Additional contributors: " @@ -52,6 +52,11 @@ func! tohtml#Diff2HTML(win_list, buf_lis let xml_line = "" let tag_close = '>' + let s:old_paste = &paste + set paste + let s:old_magic = &magic + set magic + if s:settings.use_xhtml if s:settings.encoding != "" let xml_line = "" @@ -250,6 +255,9 @@ func! tohtml#Diff2HTML(win_list, buf_lis \ ]) endif endif + + let &paste = s:old_paste + let &magic = s:old_magic endfunc " Gets a single user option and sets it in the passed-in Dict, or gives it the diff --git a/runtime/plugin/tohtml.vim b/runtime/plugin/tohtml.vim --- a/runtime/plugin/tohtml.vim +++ b/runtime/plugin/tohtml.vim @@ -1,22 +1,23 @@ " Vim plugin for converting a syntax highlighted file to HTML. " Maintainer: Ben Fritz -" Last Change: 2010 Aug 07 +" Last Change: 2010 Aug 12 " " The core of the code is in $VIMRUNTIME/autoload/tohtml.vim and " $VIMRUNTIME/syntax/2html.vim " " TODO: -" * Bug: error thrown when nowrapscan is set -" * Line number column has one character too few on empty lines -" without CSS. +" * Restore open/closed folds and cursor position after processing each file +" with option not to restore for speed increase " * Add extra meta info (generation time, etc.) " * Tidy up so we can use strict doctype more? +" * Implementation detail: add threshold for writing the lines to the html +" buffer before we're done (5000 or so lines should do it) " * TODO comments for code cleanup scattered throughout if exists('g:loaded_2html_plugin') finish endif -let g:loaded_2html_plugin = 'vim7.3_v4' +let g:loaded_2html_plugin = 'vim7.3_v6' " Define the :TOhtml command when: " - 'compatible' is not set diff --git a/runtime/syntax/2html.vim b/runtime/syntax/2html.vim --- a/runtime/syntax/2html.vim +++ b/runtime/syntax/2html.vim @@ -1,6 +1,6 @@ " Vim syntax support file " Maintainer: Ben Fritz -" Last Change: 2010 Aug 07 +" Last Change: 2010 Aug 12 " " Additional contributors: " @@ -126,10 +126,11 @@ function! s:HtmlFormat(text, style_name, " Replace the reserved html characters let formatted = substitute(substitute(substitute(substitute(substitute(formatted, '&', '\&', 'g'), '<', '\<', 'g'), '>', '\>', 'g'), '"', '\"', 'g'), "\x0c", '
', 'g') - " Replace double spaces and leading spaces + " Replace double spaces, leading spaces, and trailing spaces if needed if ' ' != s:HtmlSpace let formatted = substitute(formatted, ' ', s:HtmlSpace . s:HtmlSpace, 'g') let formatted = substitute(formatted, '^ ', s:HtmlSpace, 'g') + let formatted = substitute(formatted, ' \+$', s:HtmlSpace, 'g') endif " Enclose in a span of class style_name @@ -201,9 +202,11 @@ endif " Set some options to make it work faster. " Don't report changes for :substitute, there will be many of them. +" Don't change other windows; turn off scroll bind temporarily let s:old_title = &title let s:old_icon = &icon let s:old_et = &l:et +let s:old_bind = &l:scrollbind let s:old_report = &report let s:old_search = @/ let s:old_more = &more @@ -211,6 +214,7 @@ set notitle noicon setlocal et set nomore set report=1000000 +setlocal noscrollbind if exists(':ownsyntax') && exists('w:current_syntax') let s:current_syntax = w:current_syntax @@ -247,7 +251,9 @@ let s:newwin_stl = &l:stl " on the new window, set the least time-consuming fold method let s:old_fdm = &foldmethod +let s:old_fen = &foldenable setlocal foldmethod=manual +setlocal nofoldenable let s:newwin = winnr() let s:orgwin = bufwinnr(s:orgbufnr) @@ -327,7 +333,7 @@ if s:settings.use_css \ ".closed-fold:hover > .toggle-filler { display: none; }", \ ".closed-fold:hover > .Folded { display: none; }", \ s:settings.use_xhtml ? "" : '-->', - \ '']) " TODO: IE7 doesn't *actually* support XHTML, maybe we should remove this. " But if it's served up as tag soup, maybe the following will work, so " leave it in for now. @@ -1055,6 +1061,7 @@ endif %s:\s\+$::e " Restore old settings +let &l:foldenable = s:old_fen let &l:foldmethod = s:old_fdm let &report = s:old_report let &title = s:old_title @@ -1065,6 +1072,7 @@ let @/ = s:old_search let &more = s:old_more exe s:orgwin . "wincmd w" let &l:et = s:old_et +let &l:scrollbind = s:old_bind exe s:newwin . "wincmd w" exec 'resize' s:old_winheight let &l:winfixheight = s:old_winfixheight @@ -1075,10 +1083,12 @@ let &ls=s:ls " Save a little bit of memory (worth doing?) unlet s:htmlfont -unlet s:old_et s:old_paste s:old_icon s:old_report s:old_title s:old_search s:old_magic s:old_more s:old_fdm s:old_winheight s:old_winfixheight -unlet s:whatterm s:idlist s:lnum s:end s:margin s:fgc s:bgc +unlet s:old_et s:old_paste s:old_icon s:old_report s:old_title s:old_search +unlet s:old_magic s:old_more s:old_fdm s:old_fen s:old_winheight +unlet s:whatterm s:idlist s:lnum s:end s:margin s:fgc s:bgc s:old_winfixheight unlet! s:col s:id s:attr s:len s:line s:new s:expandedtab s:concealinfo -unlet! s:orgwin s:newwin s:orgbufnr s:idx s:i s:offset s:ls s:origwin_stl s:newwin_stl s:current_syntax +unlet! s:orgwin s:newwin s:orgbufnr s:idx s:i s:offset s:ls s:origwin_stl +unlet! s:newwin_stl s:current_syntax if !v:profiling delfunc s:HtmlColor delfunc s:HtmlFormat @@ -1099,7 +1109,8 @@ if !v:profiling endif endif -unlet! s:new_lnum s:diffattr s:difffillchar s:foldfillchar s:HtmlSpace s:LeadingSpace s:HtmlEndline s:firstfold s:foldcolumn +unlet! s:new_lnum s:diffattr s:difffillchar s:foldfillchar s:HtmlSpace +unlet! s:LeadingSpace s:HtmlEndline s:firstfold s:foldcolumn unlet s:foldstack s:allfolds s:foldId s:numcol s:settings let &cpo = s:cpo_sav