summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2010-07-29 20:43:36 +0200
committerBram Moolenaar <Bram@vim.org>2010-07-29 20:43:36 +0200
commit8ada2cca0a6f0135441c520cac269468928e65ef (patch)
tree1b2bbd9fc44ef9d6334937397d7afc6688160445
parent16c98f9c9f392d86e7c6c57f66023b250182a9eb (diff)
downloadvim-8ada2cca0a6f0135441c520cac269468928e65ef.zip
Updated runtime files. :TOhtml improvements by Benjamin Fritz.
-rw-r--r--runtime/autoload/tohtml.vim44
-rw-r--r--runtime/doc/pi_netrw.txt96
-rw-r--r--runtime/doc/syntax.txt2
-rw-r--r--runtime/doc/todo.txt1
-rw-r--r--runtime/indent/vb.vim2
-rw-r--r--runtime/plugin/tohtml.vim12
-rw-r--r--runtime/syntax/2html.vim96
7 files changed, 165 insertions, 88 deletions
diff --git a/runtime/autoload/tohtml.vim b/runtime/autoload/tohtml.vim
index 620c9c350..55399a788 100644
--- a/runtime/autoload/tohtml.vim
+++ b/runtime/autoload/tohtml.vim
@@ -1,6 +1,6 @@
" Vim autoload file for the tohtml plugin.
" Maintainer: Ben Fritz <fritzophrenic@gmail.com>
-" Last Change: 2010 July 24
+" Last Change: 2010 Jul 29
"
" Additional contributors:
"
@@ -39,7 +39,6 @@ func! tohtml#Convert2HTML(line1, line2)
let g:html_diff_win_num += 1
runtime syntax/2html.vim
call add(buf_list, bufnr('%'))
- "exec '%s#<span id=''\zsfold\d\+\ze''#win'.win_num.'\0#ge'
endfor
unlet g:html_diff_win_num
if !save_hwf
@@ -56,7 +55,9 @@ endfunc
func! tohtml#Diff2HTML(win_list, buf_list)
" TODO: add logic for xhtml
- let style = []
+ let style = ['-->']
+ let body_line = ''
+
let html = []
call add(html, '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"')
call add(html, ' "http://www.w3.org/TR/html4/loose.dtd">')
@@ -69,6 +70,7 @@ func! tohtml#Diff2HTML(win_list, buf_list)
" validate without warnings about encoding
call add(html, '</head>')
+ let body_line_num = len(html)
call add(html, '<body>')
call add(html, '<table border="1" width="100%">')
@@ -78,6 +80,9 @@ func! tohtml#Diff2HTML(win_list, buf_list)
endfor
call add(html, '</tr><tr>')
+ let diff_style_start = 0
+ let insert_index = 0
+
for buf in a:buf_list
let temp = []
exe bufwinnr(buf) . 'wincmd w'
@@ -86,13 +91,40 @@ func! tohtml#Diff2HTML(win_list, buf_list)
" to act on everything in a fold by mistake.
setlocal nofoldenable
+ " When not using CSS or when using xhtml, the <body> line can be important.
+ " Assume it will be the same for all buffers and grab it from the first
+ " buffer. Similarly, need to grab the body end line as well.
+ if body_line == ''
+ 1
+ call search('<body')
+ let body_line = getline('.')
+ $
+ call search('</body>', 'b')
+ let s:body_end_line = getline('.')
+ endif
+
" Grab the style information. Some of this will be duplicated...
1
let style_start = search('^<style type="text/css">')
1
let style_end = search('^</style>')
if style_start > 0 && style_end > 0
- let style += getline(style_start + 1, style_end - 1)
+ let buf_styles = getline(style_start + 1, style_end - 1)
+ for a_style in buf_styles
+ if index(style, a_style) == -1
+ if diff_style_start == 0
+ if a_style =~ '\<Diff\(Change\|Text\|Add\|Delete\)'
+ let diff_style_start = len(style)-1
+ endif
+ endif
+ call insert(style, a_style, insert_index)
+ let insert_index += 1
+ endif
+ endfor
+ endif
+
+ if diff_style_start != 0
+ let insert_index = diff_style_start
endif
" Delete those parts that are not needed so
@@ -115,9 +147,11 @@ func! tohtml#Diff2HTML(win_list, buf_list)
quit!
endfor
+ let html[body_line_num] = body_line
+
call add(html, '</tr>')
call add(html, '</table>')
- call add(html, '</body>')
+ call add(html, s:body_end_line)
call add(html, '</html>')
let i = 1
diff --git a/runtime/doc/pi_netrw.txt b/runtime/doc/pi_netrw.txt
index ec6c13985..ec3404f5f 100644
--- a/runtime/doc/pi_netrw.txt
+++ b/runtime/doc/pi_netrw.txt
@@ -1,4 +1,4 @@
-*pi_netrw.txt* For Vim version 7.3c. Last change: 2010 Jul 27
+*pi_netrw.txt* For Vim version 7.3c. Last change: 2010 Jul 28
-----------------------------------------------------
NETRW REFERENCE MANUAL by Charles E. Campbell, Jr.
@@ -316,20 +316,20 @@ settings are described below, in |netrw-browser-options|, and in
|netrw-externapp|:
*b:netrw_lastfile* last file Network-read/written retained on a
- per-buffer basis (supports plain :Nw )
+ per-buffer basis (supports plain :Nw )
*g:netrw_bufsettings* the settings that netrw buffers have
- (default) noma nomod nonu nowrap ro nobl
+ (default) noma nomod nonu nowrap ro nobl
*g:netrw_chgwin* specifies a window number where file edits will take
- place. (also see |netrw-C|)
- (default) not defined
+ place. (also see |netrw-C|)
+ (default) not defined
*g:Netrw_funcref* specifies a function (or functions) to be called when
- netrw edits a file. The file is first edited, and
- then the function reference (|Funcref|) is called.
- This variable may also hold a |List| of Funcrefs.
- (default) not defined
+ netrw edits a file. The file is first edited, and
+ then the function reference (|Funcref|) is called.
+ This variable may also hold a |List| of Funcrefs.
+ (default) not defined
>
Example: place in .vimrc; affects all file opening
fun! MyFuncRef()
@@ -337,74 +337,74 @@ settings are described below, in |netrw-browser-options|, and in
let g:Netrw_funcref= function("MyFuncRef")
<
*g:netrw_ftp* if it doesn't exist, use default ftp
- =0 use default ftp (uid password)
- =1 use alternate ftp method (user uid password)
- If you're having trouble with ftp, try changing the
- value of this variable to see if the alternate ftp
- method works for your setup.
+ =0 use default ftp (uid password)
+ =1 use alternate ftp method (user uid password)
+ If you're having trouble with ftp, try changing the
+ value of this variable to see if the alternate ftp
+ method works for your setup.
*g:netrw_ftpextracmd* default: doesn't exist
- If this variable exists, then any string it contains
- will be placed into the commands set to your ftp
- client. As an example:
- ="passive"
+ If this variable exists, then any string it contains
+ will be placed into the commands set to your ftp
+ client. As an example:
+ ="passive"
*g:netrw_ftpmode* ="binary" (default)
- ="ascii"
+ ="ascii"
*g:netrw_ignorenetrc* =0 (default for linux, cygwin)
- =1 If you have a <.netrc> file but it doesn't work and
- you want it ignored, then set this variable as
- shown. (default for Windows + cmd.exe)
+ =1 If you have a <.netrc> file but it doesn't work and
+ you want it ignored, then set this variable as
+ shown. (default for Windows + cmd.exe)
*g:netrw_menu* =0 disable netrw's menu
- =1 (default) netrw's menu enabled
+ =1 (default) netrw's menu enabled
*g:netrw_nogx* if this variable exists, then the "gx" map will not
- be available (see |netrw-gx|)
+ be available (see |netrw-gx|)
*g:netrw_uid* (ftp) user-id, retained on a per-vim-session basis
*s:netrw_passwd* (ftp) password, retained on a per-vim-session basis
*g:netrw_preview* =0 (default) preview window shown in a horizontally
- split window
- =1 preview window shown in a vertically split window.
- Also affects the "previous window" (see |netrw-P|) in
- the same way.
+ split window
+ =1 preview window shown in a vertically split window.
+ Also affects the "previous window" (see |netrw-P|) in
+ the same way.
*g:netrw_scpport* = "-P" : option to use to set port for scp
*g:netrw_sshport* = "-p" : option to use to set port for ssh
*g:netrw_sepchr* =\0xff
- =\0x01 for enc == euc-jp (and perhaps it should be for
+ =\0x01 for enc == euc-jp (and perhaps it should be for
others, too, please let me
know)
- Separates priority codes from filenames internally.
- See |netrw-p12|.
+ Separates priority codes from filenames internally.
+ See |netrw-p12|.
*g:netrw_silent* =0 : transfers done normally
- =1 : transfers done silently
+ =1 : transfers done silently
*g:netrw_use_errorwindow* =1 : messages from netrw will use a separate one
- line window. This window provides reliable
- delivery of messages. (default)
- =0 : messages from netrw will use echoerr ;
- messages don't always seem to show up this
- way, but one doesn't have to quit the window.
+ line window. This window provides reliable
+ delivery of messages. (default)
+ =0 : messages from netrw will use echoerr ;
+ messages don't always seem to show up this
+ way, but one doesn't have to quit the window.
*g:netrw_win95ftp* =1 if using Win95, will remove four trailing blank
- lines that o/s's ftp "provides" on transfers
- =0 force normal ftp behavior (no trailing line removal)
+ lines that o/s's ftp "provides" on transfers
+ =0 force normal ftp behavior (no trailing line removal)
*g:netrw_cygwin* =1 assume scp under windows is from cygwin. Also
- permits network browsing to use ls with time and
- size sorting (default if windows)
- =0 assume Windows' scp accepts windows-style paths
- Network browsing uses dir instead of ls
- This option is ignored if you're using unix
+ permits network browsing to use ls with time and
+ size sorting (default if windows)
+ =0 assume Windows' scp accepts windows-style paths
+ Network browsing uses dir instead of ls
+ This option is ignored if you're using unix
*g:netrw_use_nt_rcp* =0 don't use the rcp of WinNT, Win2000 and WinXP
- =1 use WinNT's rcp in binary mode (default)
+ =1 use WinNT's rcp in binary mode (default)
PATHS *netrw-path* {{{2
@@ -598,7 +598,7 @@ password.
PASSWORD *netrw-passwd*
The script attempts to get passwords for ftp invisibly using |inputsecret()|,
-a built-in Vim function. See |netrw-uidpass| for how to change the password
+a built-in Vim function. See |netrw-userpass| for how to change the password
after one has set it.
Unfortunately there doesn't appear to be a way for netrw to feed a password to
@@ -809,12 +809,12 @@ temporary file:
open machine [port] open machine [port]
user userid password userid password
[g:netrw_ftpmode] password
- [g:netrw_extracmd] [g:netrw_ftpmode]
+ [g:netrw_ftpextracmd] [g:netrw_ftpmode]
get filename tempfile [g:netrw_extracmd]
get filename tempfile >
---------------------------------------------------------------------
<
-The |g:netrw_ftpmode| and |g:netrw_extracmd| are optional.
+The |g:netrw_ftpmode| and |g:netrw_ftpextracmd| are optional.
Netrw then executes the lines above by use of a filter:
>
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 73e740405..399eed3eb 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -431,7 +431,7 @@ shorter and valid HTML 4 file), use: >
Concealed text is removed from the HTML and replaced with the appropriate
character from |:syn-cchar| or 'listchars' depending on the current value of
'conceallevel'. If you always want to display all text in your document,
-either set 'conceallevel' to before invoking 2html, or use: >
+either set 'conceallevel' to zero before invoking 2html, or use: >
:let g:html_ignore_conceal = 1
Similarly, closed folds are put in the HTML as they are displayed. If you
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 743eaf736..66bbf5dc4 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -33,6 +33,7 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
Patch for :filetype completion. (Dominique Pelle, Jul 28)
Windows 7: "Open with..." menu starts Vim without a file.
+Need to use other registry methods in if_ole.cpp?
Windows 7: installing Vim again doesn't find the previously installed Vim.
diff --git a/runtime/indent/vb.vim b/runtime/indent/vb.vim
index 5f386f791..55a8ea302 100644
--- a/runtime/indent/vb.vim
+++ b/runtime/indent/vb.vim
@@ -48,7 +48,7 @@ fun! VbGetIndent(lnum)
let ind = indent(lnum)
" Add
- if previous_line =~? '^\s*\<\(begin\|\%(\%(private\|public\|friend\)\s\+\)\=\%(function\|sub\|property\)\|select\|case\|default\|if\>.\{-}\<then\>\s*$\|else\|elseif\|do\|for\|while\|enum\|with\)\>'
+ if previous_line =~? '^\s*\<\(begin\|\%(\%(private\|public\|friend\)\s\+\)\=\%(function\|sub\|property\)\|select\|case\|default\|if\|else\|elseif\|do\|for\|while\|enum\|with\)\>'
let ind = ind + &sw
endif
diff --git a/runtime/plugin/tohtml.vim b/runtime/plugin/tohtml.vim
index 867b85d40..5ef59ca5a 100644
--- a/runtime/plugin/tohtml.vim
+++ b/runtime/plugin/tohtml.vim
@@ -1,14 +1,22 @@
" Vim plugin for converting a syntax highlighted file to HTML.
" Maintainer: Ben Fritz <fritzophrenic@gmail.com>
-" Last Change: 2010 July 24
+" Last Change: 2010 Jul 28
"
" The core of the code is in $VIMRUNTIME/autoload/tohtml.vim and
" $VIMRUNTIME/syntax/2html.vim
+"
+" TODO:
+" * Diff mode with xhtml gives invalid markup
+" * Diff mode does not determine encoding
+" * Line number column has one character too few on empty lines
+" without CSS.
+" * Add extra meta info (generation time, etc.)
+" * TODO comments for code cleanup scattered throughout
if exists('g:loaded_2html_plugin')
finish
endif
-let g:loaded_2html_plugin = 'vim7.3_v1'
+let g:loaded_2html_plugin = 'vim7.3_v2'
" Define the :TOhtml command when:
" - 'compatible' is not set
diff --git a/runtime/syntax/2html.vim b/runtime/syntax/2html.vim
index 5094433cd..cf4620e9e 100644
--- a/runtime/syntax/2html.vim
+++ b/runtime/syntax/2html.vim
@@ -1,6 +1,6 @@
" Vim syntax support file
" Maintainer: Ben Fritz <fritzophrenic@gmail.com>
-" Last Change: 2010 July 24
+" Last Change: 2010 Jul 28
"
" Additional contributors:
"
@@ -129,10 +129,14 @@ endif
" Return HTML valid characters enclosed in a span of class style_name with
" unprintable characters expanded and double spaces replaced as necessary.
-function! s:HtmlFormat(text, style_name)
+function! s:HtmlFormat(text, style_name, diff_style_name)
" Replace unprintable characters
let formatted = strtrans(a:text)
+ " separate the two classes by a space to apply them both if there is a diff
+ " style name
+ let l:style_name = a:style_name . (a:diff_style_name == '' ? '' : ' ') . a:diff_style_name
+
" Replace the reserved html characters
let formatted = substitute(substitute(substitute(substitute(substitute(formatted, '&', '\&amp;', 'g'), '<', '\&lt;', 'g'), '>', '\&gt;', 'g'), '"', '\&quot;', 'g'), "\x0c", '<hr class="PAGE-BREAK">', 'g')
@@ -143,12 +147,26 @@ function! s:HtmlFormat(text, style_name)
endif
" Enclose in a span of class style_name
- let formatted = '<span class="' . a:style_name . '">' . formatted . '</span>'
+ let formatted = '<span class="' . l:style_name . '">' . formatted . '</span>'
- " Add the class to class list if it's not there yet
+ " Add the class to class list if it's not there yet.
+ " Add normal groups to the beginning so diff groups can override them.
let s:id = hlID(a:style_name)
- if stridx(s:idlist, "," . s:id . ",") == -1
- let s:idlist = s:idlist . s:id . ","
+ if index(s:idlist, s:id ) == -1
+ if a:style_name =~ 'Diff\%(Add\|Change\|Delete\|Text\)'
+ call add(s:idlist, s:id)
+ else
+ call insert(s:idlist, s:id)
+ endif
+ endif
+
+ " Add the diff highlight class to class list if used and it's not there yet.
+ " Add diff groups to the end so they override the other highlighting.
+ if a:diff_style_name != ""
+ let s:diff_id = hlID(a:diff_style_name)
+ if index(s:idlist, s:diff_id) == -1
+ call add(s:idlist, s:diff_id)
+ endif
endif
return formatted
@@ -437,7 +455,7 @@ endif
exe s:orgwin . "wincmd w"
" List of all id's
-let s:idlist = ","
+let s:idlist = []
" set up progress bar in the status line
if !s:html_no_progress && has("statusline")
@@ -702,7 +720,7 @@ while s:lnum <= s:end
let s:new = s:new . repeat(s:difffillchar, 3)
endif
- let s:new = s:HtmlFormat(s:new, "DiffDelete")
+ let s:new = s:HtmlFormat(s:new, "DiffDelete", "")
if s:numblines
" Indent if line numbering is on; must be after escaping.
let s:new = repeat(s:LeadingSpace, s:margin) . s:new
@@ -734,7 +752,7 @@ while s:lnum <= s:end
let s:new = s:new . repeat(s:foldfillchar, &columns - strlen(s:new))
endif
- let s:new = s:HtmlFormat(s:new, "Folded")
+ let s:new = s:HtmlFormat(s:new, "Folded", "")
" Skip to the end of the fold
let s:new_lnum = foldclosedend(s:lnum)
@@ -807,7 +825,7 @@ while s:lnum <= s:end
" add fold text, moving the span ending to the next line so collapsing
" of folds works correctly
- let s:new = s:new . substitute(s:HtmlFormat(s:numcol . foldtextresult(s:lnum), "Folded"), '</span>', s:HtmlEndline.'\n\0', '')
+ let s:new = s:new . substitute(s:HtmlFormat(s:numcol . foldtextresult(s:lnum), "Folded", ""), '</span>', s:HtmlEndline.'\n\0', '')
let s:new = s:new . "<span class='fulltext'>"
" open the fold now that we have the fold text to allow retrieval of
@@ -827,7 +845,7 @@ while s:lnum <= s:end
" add the empty foldcolumn for unfolded lines if there is a fold
" column at all
if s:foldcolumn > 0
- let s:new = s:new . s:HtmlFormat(repeat(' ', s:foldcolumn), "FoldColumn")
+ let s:new = s:new . s:HtmlFormat(repeat(' ', s:foldcolumn), "FoldColumn", "")
endif
else
" add the fold column for folds not on the opening line
@@ -842,7 +860,8 @@ while s:lnum <= s:end
" Now continue with the unfolded line text
if s:numblines
- let s:new = s:new . s:HtmlFormat(s:numcol, "lnr")
+ " TODO: why not use the real highlight name here?
+ let s:new = s:new . s:HtmlFormat(s:numcol, "lnr", "")
endif
" Get the diff attribute, if any.
@@ -853,6 +872,11 @@ while s:lnum <= s:end
" Loop over each character in the line
let s:col = 1
+
+ " most of the time we won't use the diff_id, initialize to zero
+ let s:diff_id = 0
+ let s:diff_id_name = ""
+
while s:col <= s:len || (s:col == 1 && s:diffattr)
let s:startcol = s:col " The start column for processing text
if !exists('g:html_ignore_conceal') && has('conceal')
@@ -866,13 +890,18 @@ while s:lnum <= s:end
" characters.
while s:col <= s:len && s:concealinfo == synconcealed(s:lnum, s:col) | let s:col = s:col + 1 | endwhile
elseif s:diffattr
- let s:id = diff_hlID(s:lnum, s:col)
+ let s:diff_id = diff_hlID(s:lnum, s:col)
+ let s:id = synID(s:lnum, s:col, 1)
let s:col = s:col + 1
" Speed loop (it's small - that's the trick)
" Go along till we find a change in hlID
- while s:col <= s:len && s:id == diff_hlID(s:lnum, s:col) | let s:col = s:col + 1 | endwhile
+ while s:col <= s:len && s:id == synID(s:lnum, s:col, 1)
+ \ && s:diff_id == diff_hlID(s:lnum, s:col) |
+ \ let s:col = s:col + 1 |
+ \ endwhile
if s:len < &columns && !exists("g:html_no_pre")
- " Add spaces at the end to mark the changed line.
+ " Add spaces at the end of the raw text line to extend the changed
+ " line to the full width.
let s:line = s:line . repeat(' ', &columns - virtcol([s:lnum, s:len]) - s:margin)
let s:len = &columns
endif
@@ -913,6 +942,9 @@ while s:lnum <= s:end
" get the highlight group name to use
let s:id = synIDtrans(s:id)
let s:id_name = synIDattr(s:id, "name", s:whatterm)
+ if s:diff_id
+ let s:diff_id_name = synIDattr(s:diff_id, "name", s:whatterm)
+ endif
else
" use Conceal highlighting for concealed text
let s:id_name = 'Conceal'
@@ -920,9 +952,9 @@ while s:lnum <= s:end
endif
" Output the text with the same synID, with class set to {s:id_name},
- " unless it has been concealed completely. Always output empty lines.
+ " unless it has been concealed completely.
if strlen(s:expandedtab) > 0
- let s:new = s:new . s:HtmlFormat(s:expandedtab, s:id_name)
+ let s:new = s:new . s:HtmlFormat(s:expandedtab, s:id_name, s:diff_id_name)
endif
endwhile
endif
@@ -948,18 +980,18 @@ if exists("g:html_dynamic_folds")
" add fold column to the style list if not already there
let s:id = hlID('FoldColumn')
- if stridx(s:idlist, "," . s:id . ",") == -1
- let s:idlist = s:idlist . s:id . ","
+ if index(s:idlist, s:id) == -1
+ call insert(s:idlist, s:id)
endif
endif
-" Close off the font tag that encapsulates the whole <body>
-if !exists("g:html_use_css")
- let s:lines[-1].="</font>"
-endif
-
if exists("g:html_no_pre")
- call extend(s:lines, ["</body>", "</html>"])
+ if !exists("g:html_use_css")
+ " Close off the font tag that encapsulates the whole <body>
+ call extend(s:lines, ["</font></body>", "</html>"])
+ else
+ call extend(s:lines, ["</body>", "</html>"])
+ endif
else
call extend(s:lines, ["</pre>", "</body>", "</html>"])
endif
@@ -1009,9 +1041,6 @@ if s:numblines
endif
" Gather attributes for all other classes
-let s:idlist_str = s:idlist
-unlet s:idlist
-let s:idlist = split(s:idlist_str, ',')
if !s:html_no_progress && !empty(s:idlist)
let s:pgb = s:ProgressBar("Processing classes:", len(s:idlist),s:newwin)
endif
@@ -1027,12 +1056,18 @@ while !empty(s:idlist)
if exists("g:html_use_css")
execute "normal! A\n." . s:id_name . " { " . s:attr . "}"
else
- execute '%s+<span class="' . s:id_name . '">\([^<]*\)</span>+' . s:HtmlOpening(s:id) . '\1' . s:HtmlClosing(s:id) . '+g'
+ " replace spans of just this class name with non-CSS style markup
+ execute '%s+<span class="' . s:id_name . '">\([^<]*\)</span>+' . s:HtmlOpening(s:id) . '\1' . s:HtmlClosing(s:id) . '+ge'
+ " Replace spans of this class name AND a diff class with non-CSS style
+ " markup surrounding a span of just the diff class. The diff class will
+ " be handled later because we know that information is at the end.
+ execute '%s+<span class="' . s:id_name . ' \(Diff\%(Add\|Change\|Delete\|Text\)\)">\([^<]*\)</span>+' . s:HtmlOpening(s:id) . '<span class="\1">\2</span>' . s:HtmlClosing(s:id) . '+ge'
endif
else
execute '%s+<span class="' . s:id_name . '">\([^<]*\)</span>+\1+ge'
+ execute '%s+<span class="' . s:id_name . ' \(Diff\%(Add\|Change\|Delete\|Text\)\)">\([^<]*\)</span>+<span class="\1">\2</span>+ge'
if exists("g:html_use_css")
- 1;/<style type="text/+1
+ 1;/<\/style>/-2
endif
endif
@@ -1045,7 +1080,6 @@ while !empty(s:idlist)
endif
endif
endwhile
-unlet s:idlist_str
" Add hyperlinks
%s+\(https\=://\S\{-}\)\(\([.,;:}]\=\(\s\|$\)\)\|[\\"'<>]\|&gt;\|&lt;\|&quot;\)+<a href="\1">\1</a>\2+ge