# HG changeset patch # User Bram Moolenaar # Date 1294499197 -3600 # Node ID 85c5a72551e2e731dbf6ab03c50b128bf8e9b550 # Parent 27621abffed24f1e2849ea616f91f0a99747608f Updated runtime files. 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 Oct 07 +" Last Change: 2011 Jan 05 " " Additional contributors: " @@ -600,18 +600,18 @@ func! tohtml#GetUserSettings() "{{{ endif " get current option settings with appropriate defaults {{{ - call tohtml#GetOption(user_settings, 'no_progress', !has("statusline") ) - call tohtml#GetOption(user_settings, 'diff_one_file', 0 ) - call tohtml#GetOption(user_settings, 'number_lines', &number ) - call tohtml#GetOption(user_settings, 'use_css', 1 ) - call tohtml#GetOption(user_settings, 'ignore_conceal', 0 ) - call tohtml#GetOption(user_settings, 'ignore_folding', 0 ) - call tohtml#GetOption(user_settings, 'dynamic_folds', 0 ) - call tohtml#GetOption(user_settings, 'no_foldcolumn', 0 ) - call tohtml#GetOption(user_settings, 'hover_unfold', 0 ) - call tohtml#GetOption(user_settings, 'no_pre', 0 ) - call tohtml#GetOption(user_settings, 'whole_filler', 0 ) - call tohtml#GetOption(user_settings, 'use_xhtml', 0 ) + call tohtml#GetOption(user_settings, 'no_progress', !has("statusline") ) + call tohtml#GetOption(user_settings, 'diff_one_file', 0 ) + call tohtml#GetOption(user_settings, 'number_lines', &number ) + call tohtml#GetOption(user_settings, 'use_css', 1 ) + call tohtml#GetOption(user_settings, 'ignore_conceal', 0 ) + call tohtml#GetOption(user_settings, 'ignore_folding', 0 ) + call tohtml#GetOption(user_settings, 'dynamic_folds', 0 ) + call tohtml#GetOption(user_settings, 'no_foldcolumn', 0 ) + call tohtml#GetOption(user_settings, 'hover_unfold', 0 ) + call tohtml#GetOption(user_settings, 'no_pre', 0 ) + call tohtml#GetOption(user_settings, 'whole_filler', 0 ) + call tohtml#GetOption(user_settings, 'use_xhtml', 0 ) " }}} " override those settings that need it {{{ @@ -643,6 +643,18 @@ func! tohtml#GetUserSettings() "{{{ let user_settings.no_pre = 1 endif "}}} + " set up expand_tabs option after all the overrides so we know the + " appropriate defaults {{{ + if user_settings.no_pre == 0 + call tohtml#GetOption(user_settings, + \ 'expand_tabs', + \ &expandtab || &ts != 8 || user_settings.number_lines || + \ (user_settings.dynamic_folds && !user_settings.no_foldcolumn)) + else + let user_settings.expand_tabs = 1 + endif + " }}} + if exists("g:html_use_encoding") "{{{ " user specified the desired MIME charset, figure out proper " 'fileencoding' from it or warn the user if we cannot diff --git a/runtime/doc/debug.txt b/runtime/doc/debug.txt --- a/runtime/doc/debug.txt +++ b/runtime/doc/debug.txt @@ -1,4 +1,4 @@ -*debug.txt* For Vim version 7.3. Last change: 2010 Sep 14 +*debug.txt* For Vim version 7.3. Last change: 2010 Dec 22 VIM REFERENCE MANUAL by Bram Moolenaar @@ -21,8 +21,8 @@ When Vim crashes in one of the test file compilation, here is what you can do to find out exactly where Vim crashes. This also applies when using the MingW tools. -1. Compile Vim with the "-g" option (there is a line in the Makefile for this, - which you can uncomment). Also make sure "strip" is disabled (do not +1. Compile Vim with the "-g" option (there is a line in the src/Makefile for + this, which you can uncomment). Also make sure "strip" is disabled (do not install it, or use the line "STRIP = /bin/true"). 2. Execute these commands (replace "11" with the test that fails): > diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -6133,17 +6133,17 @@ cmdline_compl Compiled with |cmdline-co cmdline_hist Compiled with |cmdline-history| support. cmdline_info Compiled with 'showcmd' and 'ruler' support. comments Compiled with |'comments'| support. +compatible Compiled to be very Vi compatible. cryptv Compiled with encryption support |encryption|. cscope Compiled with |cscope| support. -compatible Compiled to be very Vi compatible. debug Compiled with "DEBUG" defined. dialog_con Compiled with console dialog support. dialog_gui Compiled with GUI dialog support. diff Compiled with |vimdiff| and 'diff' support. digraphs Compiled with support for digraphs. dnd Compiled with support for the "~ register |quote_~|. +dos16 16 bits DOS version of Vim. dos32 32 bits DOS (DJGPP) version of Vim. -dos16 16 bits DOS version of Vim. ebcdic Compiled on a machine with ebcdic character set. emacs_tags Compiled with support for Emacs tags. eval Compiled with expression evaluation support. Always @@ -6166,15 +6166,15 @@ fork Compiled to use fork()/exec() ins gettext Compiled with message translation |multi-lang| gui Compiled with GUI enabled. gui_athena Compiled with Athena GUI. +gui_gnome Compiled with Gnome support (gui_gtk is also defined). gui_gtk Compiled with GTK+ GUI (any version). gui_gtk2 Compiled with GTK+ 2 GUI (gui_gtk is also defined). -gui_gnome Compiled with Gnome support (gui_gtk is also defined). gui_mac Compiled with Macintosh GUI. gui_motif Compiled with Motif GUI. gui_photon Compiled with Photon GUI. +gui_running Vim is running in the GUI, or it will start soon. gui_win32 Compiled with MS Windows Win32 GUI. gui_win32s idem, and Win32s system being used (Windows 3.1) -gui_running Vim is running in the GUI, or it will start soon. hangul_input Compiled with Hangul input support. |hangul| iconv Can use iconv() for conversion. insert_expand Compiled with support for CTRL-X expansion commands in @@ -6196,20 +6196,20 @@ menu Compiled with support for |:menu| mksession Compiled with support for |:mksession|. modify_fname Compiled with file name modifiers. |filename-modifiers| mouse Compiled with support mouse. -mouseshape Compiled with support for 'mouseshape'. mouse_dec Compiled with support for Dec terminal mouse. mouse_gpm Compiled with support for gpm (Linux console mouse) mouse_netterm Compiled with support for netterm mouse. mouse_pterm Compiled with support for qnx pterm mouse. mouse_sysmouse Compiled with support for sysmouse (*BSD console mouse) mouse_xterm Compiled with support for xterm mouse. +mouseshape Compiled with support for 'mouseshape'. multi_byte Compiled with support for 'encoding' multi_byte_encoding 'encoding' is set to a multi-byte encoding. multi_byte_ime Compiled with support for IME input method. multi_lang Compiled with support for multiple languages. mzscheme Compiled with MzScheme interface |mzscheme|. +netbeans_enabled Compiled with support for |netbeans| and connected. netbeans_intg Compiled with support for |netbeans|. -netbeans_enabled Compiled with support for |netbeans| and connected. ole Compiled with OLE automation support for Win32. os2 OS/2 version of Vim. osfiletype Compiled with support for osfiletypes |+osfiletype| @@ -6230,11 +6230,11 @@ showcmd Compiled with 'showcmd' suppor signs Compiled with |:sign| support. smartindent Compiled with 'smartindent' support. sniff Compiled with SNiFF interface support. +spell Compiled with spell checking support |spell|. startuptime Compiled with |--startuptime| support. statusline Compiled with support for 'statusline', 'rulerformat' and special formats of 'titlestring' and 'iconstring'. sun_workshop Compiled with support for Sun |workshop|. -spell Compiled with spell checking support |spell|. syntax Compiled with syntax highlighting support |syntax|. syntax_items There are active syntax highlighting items for the current buffer. @@ -6255,9 +6255,9 @@ title Compiled with window title suppo toolbar Compiled with support for |gui-toolbar|. unix Unix version of Vim. user_commands User-defined commands. -viminfo Compiled with viminfo support. +vertsplit Compiled with vertically split windows |:vsplit|. vim_starting True while initial source'ing takes place. |startup| -vertsplit Compiled with vertically split windows |:vsplit|. +viminfo Compiled with viminfo support. virtualedit Compiled with 'virtualedit' option. visual Compiled with Visual mode. visualextra Compiled with extra Visual mode commands. @@ -6266,13 +6266,13 @@ vms VMS version of Vim. vreplace Compiled with |gR| and |gr| commands. wildignore Compiled with 'wildignore' option. wildmenu Compiled with 'wildmenu' option. -windows Compiled with support for more than one window. -winaltkeys Compiled with 'winaltkeys' option. win16 Win16 version of Vim (MS-Windows 3.1). win32 Win32 version of Vim (MS-Windows 95/98/ME/NT/2000/XP). +win32unix Win32 version of Vim, using Unix files (Cygwin) win64 Win64 version of Vim (MS-Windows 64 bit). -win32unix Win32 version of Vim, using Unix files (Cygwin) win95 Win32 version for MS-Windows 95/98/ME. +winaltkeys Compiled with 'winaltkeys' option. +windows Compiled with support for more than one window. writebackup Compiled with 'writebackup' default on. xfontset Compiled with X fontset support |xfontset|. xim Compiled with X input method support |xim|. diff --git a/runtime/doc/gui_w32.txt b/runtime/doc/gui_w32.txt --- a/runtime/doc/gui_w32.txt +++ b/runtime/doc/gui_w32.txt @@ -1,4 +1,4 @@ -*gui_w32.txt* For Vim version 7.3. Last change: 2007 Aug 30 +*gui_w32.txt* For Vim version 7.3. Last change: 2010 Dec 19 VIM REFERENCE MANUAL by Bram Moolenaar @@ -293,7 +293,9 @@ Normally, Vim waits for a command to com sense for most shell commands which produce output for Vim to use). If you want Vim to start a program and return immediately, you can use the following syntax on W95 & NT: > - :!start {command} + :!start [/min] {command} +The optional "/min" causes the window to be minimized. + On Win32s, you will have to go to another window instead. Don't forget that you must tell Windows 3.1x to keep executing a DOS command in the background while you switch back to Vim. diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt --- a/runtime/doc/index.txt +++ b/runtime/doc/index.txt @@ -1,4 +1,4 @@ -*index.txt* For Vim version 7.3. Last change: 2010 Jul 21 +*index.txt* For Vim version 7.3. Last change: 2011 Jan 04 VIM REFERENCE MANUAL by Bram Moolenaar @@ -29,7 +29,7 @@ For a complete listing of all help items ============================================================================== 1. Insert mode *insert-index* -tag char action ~ +tag char action in Insert mode ~ ----------------------------------------------------------------------- |i_CTRL-@| CTRL-@ insert previously inserted text and stop insert @@ -459,7 +459,7 @@ 2.1 Text objects *objects* These can be used after an operator or in Visual mode to select an object. -tag command action in Normal mode ~ +tag command action in op-pending and Visual mode ~ ------------------------------------------------------------------------------ |v_aquote| a" double quoted string |v_a'| a' single quoted string @@ -721,6 +721,7 @@ tag char note action in Normal mo |gJ| gJ 2 join lines without inserting space |gP| ["x]gP 2 put the text [from register x] before the cursor N times, leave the cursor after it +|gQ| gQ switch to "Ex" mode with Vim editing |gR| gR 2 enter Virtual Replace mode |gU| gU{motion} 2 make Nmove text uppercase |gV| gV don't reselect the previous Visual area @@ -951,11 +952,13 @@ Normal characters are inserted at the cu "Completion" below refers to context-sensitive completion. It will complete file names, tags, commands etc. as appropriate. +tag command action in Command-line editing mode ~ +------------------------------------------------------------------------------ CTRL-@ not used |c_CTRL-A| CTRL-A do completion on the pattern in front of the cursor and insert all matches |c_CTRL-B| CTRL-B cursor to begin of command-line -|c_CTRL-C| CTRL-C same as +|c_CTRL-C| CTRL-C same as |c_CTRL-D| CTRL-D list completions that match the pattern in front of the cursor |c_CTRL-E| CTRL-E cursor to end of command-line @@ -1046,6 +1049,8 @@ This is a brief but complete listing of mentioning any arguments. The optional part of the command name is inside []. The commands are sorted on the non-optional part of their name. +tag command action ~ +------------------------------------------------------------------------------ |:!| :! filter lines or execute an external command |:!!| :!! repeat last ":!" command |:#| :# same as ":number" diff --git a/runtime/doc/mlang.txt b/runtime/doc/mlang.txt --- a/runtime/doc/mlang.txt +++ b/runtime/doc/mlang.txt @@ -1,4 +1,4 @@ -*mlang.txt* For Vim version 7.3. Last change: 2010 Jul 20 +*mlang.txt* For Vim version 7.3. Last change: 2010 Dec 11 VIM REFERENCE MANUAL by Bram Moolenaar @@ -68,7 +68,7 @@ use of "-" and "_". With the "ctype" argument the language used for character encoding is set. This affects the libraries that Vim was linked with. It's unusual to set this to - a different value from 'encoding'. This sets + a different value from 'encoding' or "C". This sets $LC_CTYPE. With the "time" argument the language used for time and date messages is set. This affects strftime(). diff --git a/runtime/doc/motion.txt b/runtime/doc/motion.txt --- a/runtime/doc/motion.txt +++ b/runtime/doc/motion.txt @@ -1033,20 +1033,20 @@ The maximum number of entries is fixed a For example, after three jump commands you have this jump list: - jump line col file/line ~ + jump line col file/text ~ 3 1 0 some text ~ 2 70 0 another line ~ 1 1154 23 end. ~ > ~ -The "file/line" column shows the file name, or the text at the jump if it is +The "file/text" column shows the file name, or the text at the jump if it is in the current file (an indent is removed and a long line is truncated to fit in the window). You are currently in line 1167. If you then use the CTRL-O command, the cursor is put in line 1154. This results in: - jump line col file/line ~ + jump line col file/text ~ 2 1 0 some text ~ 1 70 0 another line ~ > 0 1154 23 end. ~ @@ -1076,7 +1076,7 @@ command. You can explicitly add a jump After the CTRL-O command that got you into line 1154 you could give another jump command (e.g., "G"). The jump list would then become: - jump line col file/line ~ + jump line col file/text ~ 4 1 0 some text ~ 3 70 0 another line ~ 2 1167 0 foo bar ~ diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -1,4 +1,4 @@ -*options.txt* For Vim version 7.3. Last change: 2010 Dec 08 +*options.txt* For Vim version 7.3. Last change: 2010 Dec 11 VIM REFERENCE MANUAL by Bram Moolenaar @@ -2862,7 +2862,7 @@ A jump table for the options with a shor When 'binary' is set, the value of 'fileformats' is not used. Note that when Vim starts up with an empty buffer this option is not - use. Set 'fileformat' in your .vimrc instead. + used. Set 'fileformat' in your .vimrc instead. For systems with a Dos-like (), when reading files that are ":source"ed and for vimrc files, automatic detection may be diff --git a/runtime/doc/os_win32.txt b/runtime/doc/os_win32.txt --- a/runtime/doc/os_win32.txt +++ b/runtime/doc/os_win32.txt @@ -1,4 +1,4 @@ -*os_win32.txt* For Vim version 7.3. Last change: 2010 Jul 20 +*os_win32.txt* For Vim version 7.3. Last change: 2010 Dec 19 VIM REFERENCE MANUAL by George Reilly @@ -313,6 +313,7 @@ A. When using :! to run an external comm with :!start do not get passed Vim's open file handles, which means they do not have to be closed before Vim. To avoid this special treatment, use ":! start". + The optional "/min" argument causes the window to be minimized. Q. I'm using Win32s, and when I try to run an external command like "make", Vim doesn't wait for it to finish! Help! diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt --- a/runtime/doc/repeat.txt +++ b/runtime/doc/repeat.txt @@ -1,4 +1,4 @@ -*repeat.txt* For Vim version 7.3. Last change: 2009 Nov 04 +*repeat.txt* For Vim version 7.3. Last change: 2011 Jan 06 VIM REFERENCE MANUAL by Bram Moolenaar @@ -102,7 +102,7 @@ 3. Complex repeats *complex-repeat* q{0-9a-zA-Z"} Record typed characters into register {0-9a-zA-Z"} (uppercase to append). The 'q' command is disabled while executing a register, and it doesn't work inside - a mapping. {Vi: no recording} + a mapping and |:normal|. {Vi: no recording} q Stops recording. (Implementation note: The 'q' that stops recording is not stored in the register, unless @@ -112,9 +112,13 @@ q Stops recording. (Implementation no @{0-9a-z".=*} Execute the contents of register {0-9a-z".=*} [count] times. Note that register '%' (name of the current file) and '#' (name of the alternate file) cannot be - used. For "@=" you are prompted to enter an - expression. The result of the expression is then - executed. See also |@:|. {Vi: only named registers} + used. + The register is executed like a mapping, that means + that the difference between 'wildchar' and 'wildcharm' + applies. + For "@=" you are prompted to enter an expression. The + result of the expression is then executed. + See also |@:|. {Vi: only named registers} *@@* *E748* @@ Repeat the previous @{0-9a-z":*} [count] times. diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt --- a/runtime/doc/syntax.txt +++ b/runtime/doc/syntax.txt @@ -475,6 +475,26 @@ risk of making some things look a bit di This will use
at the end of each line and use " " for repeated spaces. +If you do use the "
" tags,  characters in the text are included in
+the generated output if they will have no effect on the appearance of the
+text and it looks like they are in the document intentionally. This allows for
+the HTML output to be copied and pasted from a browser without losing the
+actual whitespace used in the document.
+
+Specifically,  characters will be included if the 'tabstop' option is set
+to the default of 8, 'expandtab' is not set, and if neither the foldcolumn nor
+the line numbers are included in the HTML output (see options above). When any
+of these conditions are not met, any  characters in the text are expanded
+to the appropriate number of spaces in the HTML output.
+
+When "
" is included, you can force |:TOhtml| to keep the tabs even if the
+other conditions are not met with: >
+   :let g:html_expand_tabs = 0
+Note that this can easily break text alignment and indentation in the HTML.
+
+Force tabs to be expanded even when they would be kept using: >
+   :let g:html_expand_tabs = 1
+
 For diff mode on a single file (with g:html_diff_one_file) a sequence of more
 than 3 filler lines is displayed as three lines with the middle line
 mentioning the total number of inserted lines.  If you prefer to see all the
diff --git a/runtime/doc/tagsrch.txt b/runtime/doc/tagsrch.txt
--- a/runtime/doc/tagsrch.txt
+++ b/runtime/doc/tagsrch.txt
@@ -115,7 +115,7 @@ CTRL-T			Jump to [count] older entry in 
 
 The output of ":tags" looks like this:
 
-   # TO tag      FROM line in file/line
+   # TO tag      FROM line  in file/text
    1  1 main		 1  harddisk2:text/vim/test
  > 2  2 FuncA		58  i = FuncA(10);
    3  1 FuncC	       357  harddisk2:text/vim/src/amiga.c
@@ -135,7 +135,7 @@ you were before the tag command.  The li
 deleting/inserting lines, unless this was done by another program (e.g.
 another instance of Vim).
 
-For the current file, the "file/line" column shows the text at the position.
+For the current file, the "file/text" column shows the text at the position.
 An indent is removed and a long line is truncated to fit in the window.
 
 You can jump to previously used tags with several commands.  Some examples:
@@ -164,9 +164,9 @@ entry was not at the bottom, the entries
 deleted.  This means that an old branch in the call graph is lost.  After the
 commands explained above the tag stack will look like this:
 
-   # TO tag	FROM line in file
-   1 main	       1  harddisk2:text/vim/test
-   2 FuncB	      59  harddisk2:text/vim/src/main.c
+   # TO tag	FROM line  in file/text
+   1  1 main		1  harddisk2:text/vim/test
+   2  1 FuncB	       59  harddisk2:text/vim/src/main.c
 
 							*E73*
 When you try to use the tag stack while it doesn't contain anything you will
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.3.  Last change: 2010 Dec 08
+*todo.txt*      For Vim version 7.3.  Last change: 2011 Jan 07
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -33,6 +33,9 @@ be worked on, but only if you sponsor Vi
 'cursorline' is displayed too short when there are concealed characters and
 'list' is set, 'listchars' at default value. (Dennis Preiser, 2010 Aug 15)
 
+When running external command with ":make", cursor line is redrawn on top of
+external output.
+
 Conceal: using Tab for cchar causes problems.  Should reject it. (ZyX, 2010
 Aug 25)
 
@@ -44,6 +47,8 @@ Syntax region with 'concealends' and a '
 only one of the two ends gets the cchar displayed. (Brett Stahlman, 2010 Aug
 21, Ben Fritz, 2010 Sep 14)
 
+Bug in repeating Visual "u". (Lawrence Kesteloot, 2010 Dec 20)
+
 Windows keys not set properly on Windows 7?  (cncyber, 2010 Aug 26)
 
 This line hangs Vim, because of syntax HL:
@@ -52,11 +57,6 @@ call append(line, "INFO  ....12....18...
 Building the MingW version without clipboard but with multi-byte doesn't
 work. (Bill Lam, 2010 Sep 18)
 
-When reading from stdin, don't enable signals before finishing reading?
-Otherwise the program producing the text may get killed by SIGWINCH.
-(Benjamin R. Haskell) Xavier: It's because reading from stdin returns -1.
-Patch from Xavier de Gaye, 2010 Dec 7.  More generic solution?
-
 Bug: E685 error for func_unref(). (ZyX, 2010 Aug 5)
 
 Using ":break" or something else that stops executing commands inside a
@@ -65,6 +65,13 @@ 15)
 
 Vim using lots of memory when joining lines. (John Little, 2010 Dec 3)
 
+On 64 bit MS-Windows "long" is only 32 bits, but we sometimes need to store a
+64 bits value.  Change all number options to use nropt_T and define it to the
+right type.
+
+Patch to improve mf_hash, dynamic sizing. (Ivan Krasilnikov, 2010 Dec 17)
+Needs tests.
+
 string() can't parse back "inf" and "nan".  Fix documentation or fix code?
 (ZyX, 2010 Aug 23)
 
@@ -74,9 +81,15 @@ mapping, how to restore the script ID?
 Patch to fix \%V item in regexp. (Christian Brabandt, 2010 Nov 8)
 Update Nov 19.  James Vega: still not right.  Christian: it's difficult.
 
+Patch to add up to 99 match groups. (Christian Brabandt, 2010 Dec 22)
+Also add named groups: \%{name}(re)  and \%{name}g
+
 Highlighting stops working after changing it many times.  Script to reproduce
 it: Pablo Contreras, 2010 Oct 12  Windows XP and 7.  Font is never freed?
 
+Loading autoload script even when usage is inside "if 0". (Christian Brabandt,
+2010 Dec 18)
+
 When 'cursorcolumn' is set locally to a window, ":new" opens a window with the
 same highlighting but 'cursorcolumn' is empty. (Tyru, 2010 Nov 15)
 
@@ -100,15 +113,7 @@ do?
 Searching mixed with Visual mode doesn't redraw properly. (James Vega, 2010 Nov
 22)
 
-Win32: When using Chinese tear-off menu doesn't work. (Weasley, 2010 Oct 31)
-Patch by Alex Jakushev, 2010 Nov 2.
-
-Using ":call" inside "if 0" does not see that a function returns a Dict and
-gives error for "." as string concatenation.  (Yasuhiro Matsumoto, 2010 Oct 20)
-Patch: Oct 20.
-
-Patch to move check for emsg_not_now() up to avoid statusline not being
-updated. (James Vega, 2010 Nov 4)
+Patch to support ":!start /b cmd". (Xaizek, 2010 Dec 22)
 
 Copy/paste between Vim and Google chrome doesn't work well for multi-byte
 characters. (Ben Haskell, 2010 Sep 17)
@@ -128,6 +133,9 @@ Nov 25)
 
 GTK: Patch to fix menu popping down. (Hong Xu, 2010 Dec 4, Dec 5)
 
+Python: Adding line to buffer other than the current one doesn't work
+correctly. (Rozbujnik, 2010 Dec 19)
+
 Patch to add 'systemencoding', convert between 'encoding' and this for file
 names, shell commands and the like.  (Kikuchan, 2010 Oct 14)
 Assume the system converts between the actual encoding of the filesystem to
@@ -171,11 +179,17 @@ mkdir().
 
 'cindent' not correct when 'list' is set. (Zdravi Korusef, 2010 Apr 15)
 
+When 'paste' is changed with 'pastetoggle', the ruler doesn't reflect this
+right away. (Samuel Ferencik, 2010 Dec 7)
+
 Windows installer: licence text should not use indent, causes bad word wrap.
 (Benjamin Fritz, 2010 Aug 16)
 
 Mac with X11: clipboard doesn't work properly. (Raf, 2010 Aug 16)
 
+Using CompilerSet doesn't record where an option was set from.  E.g., in the
+gcc compiler plugin. (Gary Johnson, 2010 Dec 13)
+
 ":helpgrep" does not put the cursor in the correct column when preceded by
 accented character. (Tony Mechelynck, 2010 Apr 15)
 
@@ -188,6 +202,9 @@ Echo starts in the wrong column:
 
 Patch for GVimExt to show an icon. (Dominik Riebeling, 2010 Nov 7)
 
+When writing a file > 2Gbyte, the reported number of bytes is negative.
+(Antonio Colombo, 2010 Dec 18)
+
 Patch: Let rare word highlighting overrule good word highlighting.
 (Jakson A. Aquino, 2010 Jul 30)
 
@@ -200,9 +217,16 @@ instead of one. (Constantin Pan, 2010 Se
 
 Crash in setqflist(). (Benoit Mortgat, 2010 Nov 18)
 
+Patch to handle resizing when tab is opened, when at full size. (Yukihiro
+Nakadaira, 2010 Jan 6)
+
 Writing nested List and Dict in viminfo gives error message and can't be read
 back. (Yukihiro Nakadaira, 2010 Nov 13)
 
+Can 'undolevels' be a buffer-local option?  Helps for making big changes in
+one file only, set 'ul' to -1 only for that buffer.
+Patch by Christian Brabandt, 2010 Dec 17.  Needs test.
+
 Dos uninstal may delete vim.bat from the wrong directory (e.g., when someone
 makes his own wrapper).  Add a magic string with the version number to the
 .bat file and check for it in the uninstaller.  E.g.
@@ -258,6 +282,9 @@ Check if there are new reported defects:
 Patch to support :undo absolute jump to file save number. (Christian Brabandt,
 2010 Nov 5)
 
+Patch to use 'foldnextmax' also for "marker" foldmethod. (Arnaud Lacombe, 2011
+Jan 7)
+
 When setting 'undofile' while the file is already loaded, but unchanged, try
 to read the undo file.  Requires computing a checksum of the text. (Andy
 Wokula)
@@ -297,6 +324,10 @@ Jun 1)
 Cannot use getchar() inside :normal and using an expression mapping.  Is this
 supposed to work?  (XyX, 2010 Sep 22)
 
+When using an expression mapping with a multi-byte character each byte is
+converted to a utf-8 character. (ZyX, 2011 Jan 4)
+Patch for possible solution. (Yukihiro Nakadaira, 2011 Jan 5)
+
 When a:base in 'completefunc' starts with a number it's passed as a number,
 not a string. (Sean Ma)  Need to add flag to call_func_retlist() to force a
 string value.
@@ -458,18 +489,17 @@ Session file generates error upon loadin
 Using ~ works OK on 'a' with composing char, but not on 0x0418  with composing
 char 0x0301. (Tony Mechelynck, 2009 Mar 4)
 
+A function on a dictionary is not profiled. (Zyx, 2010 Dec 25)
+
 Inconsistent: starting with $LANG set to es_ES.utf-8 gives Spanish
 messages, even though locale is not supported.  But ":lang messages
 es_ES.utf-8" gives an error and doesn't switch messages. (Dominique Pelle,
 2009 Jan 26)
 
-When $HOME contains special characters, sich as a comma, escape them when used
+When $HOME contains special characters, such as a comma, escape them when used
 in an option. (Michael Hordijk, 2009 May 5)
 Turn "esc" argument of expand_env_esc() into string of chars to be escaped.
 
-Can 'undolevels' be a buffer-local option?  Helps for making big changes in
-one file only, set 'ul' to -1 only for that buffer.
-
 Should make 'ignorecase' global-local, so that it makes sense setting it from
 a modeline.
 
@@ -841,6 +871,9 @@ go to Insert mode and add a few lines.  
 moves the cursor instead of deleting. (Chris Kaiser, 2007 Sep 25)
 
 Patch to use Modern UI 2.0 for the Nsis installer. (Guopeng Wen, 2010 Jul 30)
+8   Windows install with NSIS: make it possible to do a silent install, see
+    http://nsis.sourceforge.net/Docs/Chapter4.html#4.12
+    Version from Guopeng Wen that does this (2010 Dec 27)
 
 Changes for Win32 makefile. (Mike Williams, 2007 Jan 22, Alexei Alexandrov,
 2007 Feb 8)
@@ -1566,8 +1599,6 @@ 7   At the hit-enter prompt scrolling no
     scroll?
 7   Scrollbar width doesn't change when selecting other windows appearance.
     Also background color of Toolbar and rectangle below vert. scrollbar.
-7   "!start /min cmd" should run in a minimized window, instead of using
-    "/min" as the command name. (Rogall)
 6   Drawing text transparently doesn't seem to work (when drawing part cursor).
 8   CTRL key doesn't always work in combination with ALT key.  It does work
     for function keys, not for alphabetic characters.  Perhaps this is because
@@ -2330,8 +2361,6 @@ Help:
 
 
 User Friendlier:
-8   Windows install with NSIS: make it possible to do a silent install, see
-    http://nsis.sourceforge.net/Docs/Chapter4.html#4.12
 8   Windows install with install.exe: Use .exe instead of .bat files for
     links, so that command line arguments are passed on unmodified? (Walter
     Briscoe)
@@ -4455,6 +4484,8 @@ 8   Add ":rename" command: rename the fi
 7   Instead of filtering errors with a shell script it should be possible to
     do this with Vim script.  A function that filters the raw text that comes
     from the 'makeprg'?
+9   Add %F to 'errorformat': file name without spaces.  Useful on Unix to
+    avoid matching something up to a time 11:22:33.
 -   Add %b to 'errorformat': buffer number. (Yegappan Lakshmanan / Suresh
     Govindachar)
 7   Add a command that goes back to the position from before jumping to the
diff --git a/runtime/doc/undo.txt b/runtime/doc/undo.txt
--- a/runtime/doc/undo.txt
+++ b/runtime/doc/undo.txt
@@ -1,4 +1,4 @@
-*undo.txt*      For Vim version 7.3.  Last change: 2010 Oct 21
+*undo.txt*      For Vim version 7.3.  Last change: 2010 Dec 19
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -125,16 +125,23 @@ This is explained in the user manual: |u
 
 							*:undol* *:undolist*
 :undol[ist]		List the leafs in the tree of changes.  Example:
-				number changes   time      saved ~
-				4      10	 10:34:11
-				18     4	 11:01:46  7
+			   number changes  when               saved ~
+			       88      88  2010/01/04 14:25:53
+			      108     107  08/07 12:47:51
+			      136      46  13:33:01             7
+			      166     164  3 seconds ago
 
 			The "number" column is the change number.  This number
 			continuously increases and can be used to identify a
 			specific undo-able change, see |:undo|.
 			The "changes" column is the number of changes to this
 			leaf from the root of the tree.
-			The "time" column is the time this change was made.
+			The "when" column is the date and time when this
+			change was made.  The four possible formats are:
+			    N seconds ago
+			    HH:MM:SS             hour, minute, seconds
+			    MM/DD HH:MM:SS       idem, with month and day
+			    YYYY/MM/DD HH:MM:SS  idem, with year
 			The "saved" column specifies, if this change was
 			written to disk and which file write it was. This can
 			be used with the |:later| and |:earlier| commands.
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -1,7 +1,7 @@
 " Vim support file to detect file types
 "
 " Maintainer:	Bram Moolenaar 
-" Last Change:	2010 Sep 29
+" Last Change:	2010 Dec 17
 
 " Listen very carefully, I will say this only once
 if exists("did_load_filetypes")
@@ -1614,7 +1614,16 @@ au BufNewFile,BufRead *.rtf			setf rtf
 au BufNewFile,BufRead .irbrc,irbrc		setf ruby
 
 " Ruby
-au BufNewFile,BufRead *.rb,*.rbw,*.gem,*.gemspec	setf ruby
+au BufNewFile,BufRead *.rb,*.rbw		setf ruby
+
+" RubyGems
+au BufNewFile,BufRead *.gemspec			setf ruby
+
+" Rackup
+au BufNewFile,BufRead *.ru			setf ruby
+
+" Bundler
+au BufNewFile,BufRead Gemfile			setf ruby
 
 " Ruby on Rails
 au BufNewFile,BufRead *.builder,*.rxml,*.rjs	setf ruby
diff --git a/runtime/plugin/tohtml.vim b/runtime/plugin/tohtml.vim
--- a/runtime/plugin/tohtml.vim
+++ b/runtime/plugin/tohtml.vim
@@ -1,25 +1,32 @@
 " Vim plugin for converting a syntax highlighted file to HTML.
 " Maintainer: Ben Fritz 
-" Last Change: 2010 Oct 28
+" Last Change: 2011 Jan 06
 "
 " The core of the code is in $VIMRUNTIME/autoload/tohtml.vim and
 " $VIMRUNTIME/syntax/2html.vim
 "
 " TODO:
-"   * Patch to leave tab characters in when noexpandtab set (Andy Spencer)
-"   * Make folds show up when using a range and dynamic folding
-"   * Remove fold column when there are no folds and using dynamic folding
+"   * Explicitly trigger IE8+ Standards Mode?
+"   * Make it so deleted lines in a diff don't create side-scrolling
 "   * 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 in even more situations?
+"   * Undercurl support via dotted bottom border?
+"   * Add extra meta info (generation time, etc.)?
+"   * Tidy up so we can use strict doctype in even more situations
 "   * 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
 "
 "
 " Changelog:
-"   7.3_v7 (this version): see betas released on vim_dev below:
+"   7.3_v8 (this version): Add html_expand_tabs option to allow leaving tab
+"                          characters in generated output (Andy Spencer). Escape
+"                          text that looks like a modeline so Vim doesn't use
+"                          anything in the converted HTML as a modeline.
+"                          Bugfixes: Fix folding when a fold starts before the
+"                          conversion range. Remove fold column when there are
+"                          no folds.
+"   7.3_v7 (840c3cadb842): see betas released on vim_dev below:
 "                7.3_v7b3: Fixed bug, convert Unicode to UTF-8 all the way.
 "                7.3_v7b2: Remove automatic detection of encodings that are not
 "                          supported by all major browsers according to
@@ -54,7 +61,7 @@
 if exists('g:loaded_2html_plugin')
   finish
 endif
-let g:loaded_2html_plugin = 'vim7.3_v7'
+let g:loaded_2html_plugin = 'vim7.3_v8'
 
 " 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 Sep 04
+" Last Change: 2011 Jan 06
 "
 " Additional contributors:
 "
@@ -124,7 +124,18 @@ function! s:HtmlFormat(text, 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, '&', '\&', 'g'), '<', '\<', 'g'), '>', '\>', 'g'), '"', '\"', 'g'), "\x0c", '
', 'g') + let formatted = substitute(formatted, '&', '\&', 'g') + let formatted = substitute(formatted, '<', '\<', 'g') + let formatted = substitute(formatted, '>', '\>', 'g') + let formatted = substitute(formatted, '"', '\"', 'g') + " TODO: Use ' for "'"? + + " Replace a "form feed" character with HTML to do a page break + let formatted = substitute(formatted, "\x0c", '
', 'g') + + " Mangle modelines so Vim doesn't try to use HTML text as a modeline if + " editing this file in the future + let formatted = substitute(formatted, '\v(\s+%(vim?|ex)):', '\1\:', 'g') " Replace double spaces, leading spaces, and trailing spaces if needed if ' ' != s:HtmlSpace @@ -558,9 +569,6 @@ if s:settings.dynamic_folds " level, so subtract 2 from index of first non-dash after the dashes " in order to get the fold level of the current fold let s:level = match(foldtextresult(s:lnum), '+-*\zs[^-]') - 2 - if s:level+1 > s:foldcolumn - let s:foldcolumn = s:level+1 - endif " store fold info for later use let s:newfold = {'firstline': s:lnum, 'lastline': foldclosedend(s:lnum), 'level': s:level,'type': "closed-fold"} call add(s:allfolds, s:newfold) @@ -590,9 +598,6 @@ if s:settings.dynamic_folds " level, so subtract 2 from index of first non-dash after the dashes " in order to get the fold level of the current fold let s:level = match(foldtextresult(s:lnum), '+-*\zs[^-]') - 2 - if s:level+1 > s:foldcolumn - let s:foldcolumn = s:level+1 - endif let s:newfold = {'firstline': s:lnum, 'lastline': foldclosedend(s:lnum), 'level': s:level,'type': "closed-fold"} " only add the fold if we don't already have it if empty(s:allfolds) || index(s:allfolds, s:newfold) == -1 @@ -622,6 +627,48 @@ if s:settings.dynamic_folds " close all folds again so we can get the fold text as we go silent! %foldclose! + + for afold in s:allfolds + let removed = 0 + if exists("g:html_start_line") && exists("g:html_end_line") + if afold.firstline < g:html_start_line + if afold.lastline < g:html_end_line && afold.lastline > g:html_start_line + " if a fold starts before the range to convert but stops within the + " range, we need to include it. Make it start on the first converted + " line. + let afold.firstline = g:html_start_line + else + " if the fold lies outside the range or the start and stop enclose + " the entire range, don't bother parsing it + call remove(s:allfolds, index(s:allfolds, afold)) + let removed = 1 + endif + elseif afold.firstline > g:html_end_line + " If the entire fold lies outside the range we need to remove it. + call remove(s:allfolds, index(s:allfolds, afold)) + let removed = 1 + endif + elseif exists("g:html_start_line") + if afold.firstline < g:html_start_line + " if there is no last line, but there is a first line, the end of the + " fold will always lie within the region of interest, so keep it + let afold.firstline = g:html_start_line + endif + elseif exists("g:html_end_line") + " if there is no first line we default to the first line in the buffer so + " the fold start will always be included if the fold itself is included. + " If however the entire fold lies outside the range we need to remove it. + if afold.firstline > g:html_end_line + call remove(s:allfolds, index(s:allfolds, afold)) + let removed = 1 + endif + endif + if !removed + if afold.level+1 > s:foldcolumn + let s:foldcolumn = afold.level+1 + endif + endif + endfor endif " Now loop over all lines in the original text to convert to html. @@ -669,6 +716,13 @@ endif let s:foldId = 0 +if !s:settings.expand_tabs + " If keeping tabs, add them to printable characters so we keep them when + " formatting text (strtrans() doesn't replace printable chars) + let s:old_isprint = &isprint + setlocal isprint+=9 +endif + while s:lnum <= s:end " If there are filler lines for diff mode, show these above the line. @@ -747,7 +801,7 @@ while s:lnum <= s:end call remove(s:foldstack, 0) endwhile - " Now insert an opening any new folds that start on this line + " Now insert an opening for any new folds that start on this line let s:firstfold = 1 while !empty(s:allfolds) && get(s:allfolds,0).firstline == s:lnum let s:foldId = s:foldId + 1 @@ -884,30 +938,32 @@ while s:lnum <= s:end endif if s:settings.ignore_conceal || !s:concealinfo[0] - " Expand tabs + " Expand tabs if needed let s:expandedtab = strpart(s:line, s:startcol - 1, s:col - s:startcol) - let s:offset = 0 - let s:idx = stridx(s:expandedtab, "\t") - while s:idx >= 0 - if has("multi_byte_encoding") - if s:startcol + s:idx == 1 - let s:i = &ts - else - if s:idx == 0 - let s:prevc = matchstr(s:line, '.\%' . (s:startcol + s:idx + s:offset) . 'c') + if s:settings.expand_tabs + let s:offset = 0 + let s:idx = stridx(s:expandedtab, "\t") + while s:idx >= 0 + if has("multi_byte_encoding") + if s:startcol + s:idx == 1 + let s:i = &ts else - let s:prevc = matchstr(s:expandedtab, '.\%' . (s:idx + 1) . 'c') + if s:idx == 0 + let s:prevc = matchstr(s:line, '.\%' . (s:startcol + s:idx + s:offset) . 'c') + else + let s:prevc = matchstr(s:expandedtab, '.\%' . (s:idx + 1) . 'c') + endif + let s:vcol = virtcol([s:lnum, s:startcol + s:idx + s:offset - len(s:prevc)]) + let s:i = &ts - (s:vcol % &ts) endif - let s:vcol = virtcol([s:lnum, s:startcol + s:idx + s:offset - len(s:prevc)]) - let s:i = &ts - (s:vcol % &ts) + let s:offset -= s:i - 1 + else + let s:i = &ts - ((s:idx + s:startcol - 1) % &ts) endif - let s:offset -= s:i - 1 - else - let s:i = &ts - ((s:idx + s:startcol - 1) % &ts) - endif - let s:expandedtab = substitute(s:expandedtab, '\t', repeat(' ', s:i), '') - let s:idx = stridx(s:expandedtab, "\t") - endwhile + let s:expandedtab = substitute(s:expandedtab, '\t', repeat(' ', s:i), '') + let s:idx = stridx(s:expandedtab, "\t") + endwhile + end " get the highlight group name to use let s:id = synIDtrans(s:id) @@ -1073,7 +1129,7 @@ endif " Cleanup %s:\s\+$::e -" Restore old settings +" Restore old settings (new window first) let &l:foldenable = s:old_fen let &l:foldmethod = s:old_fdm let &report = s:old_report @@ -1083,11 +1139,20 @@ let &paste = s:old_paste let &magic = s:old_magic let @/ = s:old_search let &more = s:old_more + +" switch to original window to restore those settings exe s:orgwin . "wincmd w" + +if !s:settings.expand_tabs + let &l:isprint = s:old_isprint +endif let &l:stl = s:origwin_stl let &l:et = s:old_et let &l:scrollbind = s:old_bind + +" and back to the new window again to end there exe s:newwin . "wincmd w" + let &l:stl = s:newwin_stl exec 'resize' s:old_winheight let &l:winfixheight = s:old_winfixheight @@ -1098,6 +1163,7 @@ let &ls=s:ls unlet s:htmlfont 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:old_isprint 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 diff --git a/runtime/syntax/xquery.vim b/runtime/syntax/xquery.vim --- a/runtime/syntax/xquery.vim +++ b/runtime/syntax/xquery.vim @@ -1,10 +1,11 @@ " Vim syntax file " Language: XQuery -" Author: Jean-Marc Vanel -" Last Change: mar jui 12 18:04:05 CEST 2005 +" Author: René Neumann +" Author: Steve Spigarelli +" Original Author: Jean-Marc Vanel +" Last Change: December 11, 2010 " Filenames: *.xq " URL: http://jmvanel.free.fr/vim/xquery.vim -" $Id: xquery.vim,v 1.1 2005/07/18 21:44:56 vimboss Exp $ " REFERENCES: " [1] http://www.w3.org/TR/xquery/ @@ -14,22 +15,26 @@ if exists("b:current_syntax") finish endif +" - is allowed in keywords +setlocal iskeyword+=- + runtime syntax/xml.vim syn case match " From XQuery grammar: -syn keyword xqueryStatement ancestor ancestor-or-self and as ascending at attribute base-uri by case cast castable child collation construction declare default descendant descendant-or-self descending div document element else empty encoding eq every except external following following-sibling for function ge greatest gt idiv if import in inherit-namespaces instance intersect is le least let lt mod module namespace ne no of or order ordered ordering parent preceding preceding-sibling preserve return satisfies schema self some stable strip then to treat typeswitch union unordered validate variable version where xmlspace xquery yes +syn keyword xqStatement ancestor ancestor-or-self and as ascending at attribute base-uri boundary-space by case cast castable child collation construction declare default descendant descendant-or-self descending div document element else empty encoding eq every except external following following-sibling for function ge greatest gt idiv if import in inherit-namespaces instance intersect is le least let lt mod module namespace ne no of or order ordered ordering parent preceding preceding-sibling preserve return satisfies schema self some stable strip then to treat typeswitch union unordered validate variable version where xmlspace xquery yes " TODO contains clashes with vim keyword -syn keyword xqueryFunction abs adjust-date-to-timezone adjust-date-to-timezone adjust-dateTime-to-timezone adjust-dateTime-to-timezone adjust-time-to-timezone adjust-time-to-timezone avg base-uri base-uri boolean ceiling codepoint-equal codepoints-to-string collection collection compare concat count current-date current-dateTime current-time data dateTime day-from-date day-from-dateTime days-from-duration deep-equal deep-equal default-collation distinct-values distinct-values doc doc-available document-uri empty ends-with ends-with error error error error escape-uri exactly-one exists false floor hours-from-dateTime hours-from-duration hours-from-time id id idref idref implicit-timezone in-scope-prefixes index-of index-of insert-before lang lang last local-name local-name local-name-from-QName lower-case matches matches max max min min minutes-from-dateTime minutes-from-duration minutes-from-time month-from-date month-from-dateTime months-from-duration name name namespace-uri namespace-uri namespace-uri-for-prefix namespace-uri-from-QName nilled node-name normalize-space normalize-space normalize-unicode normalize-unicode not number number one-or-more position prefix-from-QName QName remove replace replace resolve-QName resolve-uri resolve-uri reverse root root round round-half-to-even round-half-to-even seconds-from-dateTime seconds-from-duration seconds-from-time starts-with starts-with static-base-uri string string string-join string-length string-length string-to-codepoints subsequence subsequence substring substring substring-after substring-after substring-before substring-before sum sum timezone-from-date timezone-from-dateTime timezone-from-time tokenize tokenize trace translate true unordered upper-case year-from-date year-from-dateTime years-from-duration zero-or-one +syn keyword xqFunction abs adjust-date-to-timezone adjust-date-to-timezone adjust-dateTime-to-timezone adjust-dateTime-to-timezone adjust-time-to-timezone adjust-time-to-timezone avg base-uri base-uri boolean ceiling codepoint-equal codepoints-to-string collection collection compare concat count current-date current-dateTime current-time data dateTime day-from-date day-from-dateTime days-from-duration deep-equal deep-equal default-collation distinct-values distinct-values doc doc-available document-uri empty ends-with ends-with error error error error escape-uri exactly-one exists false floor hours-from-dateTime hours-from-duration hours-from-time id id idref idref implicit-timezone in-scope-prefixes index-of index-of insert-before lang lang last local-name local-name local-name-from-QName lower-case matches matches max max min min minutes-from-dateTime minutes-from-duration minutes-from-time month-from-date month-from-dateTime months-from-duration name name namespace-uri namespace-uri namespace-uri-for-prefix namespace-uri-from-QName nilled node-name normalize-space normalize-space normalize-unicode normalize-unicode not number number one-or-more position prefix-from-QName QName remove replace replace resolve-QName resolve-uri resolve-uri reverse root root round round-half-to-even round-half-to-even seconds-from-dateTime seconds-from-duration seconds-from-time starts-with starts-with static-base-uri string string string-join string-length string-length string-to-codepoints subsequence subsequence substring substring substring-after substring-after substring-before substring-before sum sum timezone-from-date timezone-from-dateTime timezone-from-time tokenize tokenize trace translate true unordered upper-case year-from-date year-from-dateTime years-from-duration zero-or-one -syn keyword xqueryOperator add-dayTimeDuration-to-date add-dayTimeDuration-to-dateTime add-dayTimeDuration-to-time add-dayTimeDurations add-yearMonthDuration-to-date add-yearMonthDuration-to-dateTime add-yearMonthDurations base64Binary-equal boolean-equal boolean-greater-than boolean-less-than concatenate date-equal date-greater-than date-less-than dateTime-equal dateTime-greater-than dateTime-less-than dayTimeDuration-equal dayTimeDuration-greater-than dayTimeDuration-less-than divide-dayTimeDuration divide-dayTimeDuration-by-dayTimeDuration divide-yearMonthDuration divide-yearMonthDuration-by-yearMonthDuration except gDay-equal gMonth-equal gMonthDay-equal gYear-equal gYearMonth-equal hexBinary-equal intersect is-same-node multiply-dayTimeDuration multiply-yearMonthDuration node-after node-before NOTATION-equal numeric-add numeric-divide numeric-equal numeric-greater-than numeric-integer-divide numeric-less-than numeric-mod numeric-multiply numeric-subtract numeric-unary-minus numeric-unary-plus QName-equal subtract-dates-yielding-dayTimeDuration subtract-dateTimes-yielding-dayTimeDuration subtract-dayTimeDuration-from-date subtract-dayTimeDuration-from-dateTime subtract-dayTimeDuration-from-time subtract-dayTimeDurations subtract-times subtract-yearMonthDuration-from-date subtract-yearMonthDuration-from-dateTime subtract-yearMonthDurations time-equal time-greater-than time-less-than to union yearMonthDuration-equal yearMonthDuration-greater-than yearMonthDuration-less-than +syn keyword xqOperator add-dayTimeDuration-to-date add-dayTimeDuration-to-dateTime add-dayTimeDuration-to-time add-dayTimeDurations add-yearMonthDuration-to-date add-yearMonthDuration-to-dateTime add-yearMonthDurations base64Binary-equal boolean-equal boolean-greater-than boolean-less-than concatenate date-equal date-greater-than date-less-than dateTime-equal dateTime-greater-than dateTime-less-than dayTimeDuration-equal dayTimeDuration-greater-than dayTimeDuration-less-than divide-dayTimeDuration divide-dayTimeDuration-by-dayTimeDuration divide-yearMonthDuration divide-yearMonthDuration-by-yearMonthDuration except gDay-equal gMonth-equal gMonthDay-equal gYear-equal gYearMonth-equal hexBinary-equal intersect is-same-node multiply-dayTimeDuration multiply-yearMonthDuration node-after node-before NOTATION-equal numeric-add numeric-divide numeric-equal numeric-greater-than numeric-integer-divide numeric-less-than numeric-mod numeric-multiply numeric-subtract numeric-unary-minus numeric-unary-plus QName-equal subtract-dates-yielding-dayTimeDuration subtract-dateTimes-yielding-dayTimeDuration subtract-dayTimeDuration-from-date subtract-dayTimeDuration-from-dateTime subtract-dayTimeDuration-from-time subtract-dayTimeDurations subtract-times subtract-yearMonthDuration-from-date subtract-yearMonthDuration-from-dateTime subtract-yearMonthDurations time-equal time-greater-than time-less-than to union yearMonthDuration-equal yearMonthDuration-greater-than yearMonthDuration-less-than -syn match xqueryType "xs:\(\|Datatype\|primitive\|string\|boolean\|float\|double\|decimal\|duration\|dateTime\|time\|date\|gYearMonth\|gYear\|gMonthDay\|gDay\|gMonth\|hexBinary\|base64Binary\|anyURI\|QName\|NOTATION\|\|normalizedString\|token\|language\|IDREFS\|ENTITIES\|NMTOKEN\|NMTOKENS\|Name\|NCName\|ID\|IDREF\|ENTITY\|integer\|nonPositiveInteger\|negativeInteger\|long\|int\|short\|byte\|nonNegativeInteger\|unsignedLong\|unsignedInt\|unsignedShort\|unsignedByte\|positiveInteger\)" +syn match xqType "xs:\(\|Datatype\|primitive\|string\|boolean\|float\|double\|decimal\|duration\|dateTime\|time\|date\|gYearMonth\|gYear\|gMonthDay\|gDay\|gMonth\|hexBinary\|base64Binary\|anyURI\|QName\|NOTATION\|\|normalizedString\|token\|language\|IDREFS\|ENTITIES\|NMTOKEN\|NMTOKENS\|Name\|NCName\|ID\|IDREF\|ENTITY\|integer\|nonPositiveInteger\|negativeInteger\|long\|int\|short\|byte\|nonNegativeInteger\|unsignedLong\|unsignedInt\|unsignedShort\|unsignedByte\|positiveInteger\)" + " From XPath grammar: -syn keyword xqueryXPath some every in in satisfies if then else to div idiv mod union intersect except instance of treat castable cast eq ne lt le gt ge is child descendant attribute self descendant-or-self following-sibling following namespace parent ancestor preceding-sibling preceding ancestor-or-self void item node document-node text comment processing-instruction attribute schema-attribute schema-element +syn keyword xqXPath some every in in satisfies if then else to div idiv mod union intersect except instance of treat castable cast eq ne lt le gt ge is child descendant attribute self descendant-or-self following-sibling following namespace parent ancestor preceding-sibling preceding ancestor-or-self void item node document-node text comment processing-instruction attribute schema-attribute schema-element " eXist extensions syn match xqExist "&=" @@ -37,44 +42,41 @@ syn match xqExist "&=" " XQdoc syn match XQdoc contained "@\(param\|return\|author\)\>" -highlight def link xqueryStatement Statement -highlight def link xqueryFunction Function -highlight def link xqueryOperator Operator -highlight def link xqueryType Type -highlight def link xqueryXPath Operator -highlight def link XQdoc Special -highlight def link xqExist Operator - +" floating point number, with dot, optional exponent +syn match xqFloat "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=" +" floating point number, starting with a dot, optional exponent +syn match xqFloat "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>" +" floating point number, without dot, with exponent +syn match xqFloat "\d\+e[-+]\=\d\+[fl]\=\>" +syn match xqNumber "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>" +syn match xqNumber "\<\d\+\>" -"floating point number, with dot, optional exponent -syn match cFloat "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\=" -"floating point number, starting with a dot, optional exponent -syn match cFloat "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>" -"floating point number, without dot, with exponent -syn match cFloat "\d\+e[-+]\=\d\+[fl]\=\>" -syn match cNumber "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>" -syn match cNumber "\<\d\+\>" -highlight def link cNumber Number -highlight def link cFloat Number +syn region xqString start=+"+ end=+"+ +syn region xqComment start='(:' excludenl end=':)' contains=XQdoc -syn region xqComment start='(:' excludenl end=':)' contains=XQdoc -highlight def link xqComment Comment -" syntax match xqVariable "$\w\+" -syntax match xqVariable +$\<[a-zA-Z:_][-.0-9a-zA-Z0-9:_]*\>+ -highlight def link xqVariable Identifier - -" Redefine the default XML highlighting: -highlight def link xmlTag Structure -highlight def link xmlTagName Structure -highlight def link xmlEndTag Structure - -syntax match xqSeparator ",\|;" -highlight link xqSeparator Operator - -syn region xqCode transparent contained start='{' excludenl end='}' contains=xmlRegionBis,xqComment,xqueryStatement,xmlString,xqSeparator,cNumber,xqVariable keepend extend +syn match xqVariable "$\<[a-zA-Z:_][-.0-9a-zA-Z0-9:_]*\>" +syn match xqSeparator ",\|;" +syn region xqCode transparent contained start='{' excludenl end='}' contains=xqFunction,xqCode,xmlRegionBis,xqComment,xqStatement,xmlString,xqSeparator,xqNumber,xqVariable,xqString keepend extend syn region xmlRegionBis start=+<\z([^ /!?<>"']\+\)+ skip=++ end=++ end=+/>+ fold contains=xmlTag,xmlEndTag,xmlCdata,xmlRegionBis,xmlComment,xmlEntity,xmlProcessing,xqCode keepend extend -syn region List transparent start='(' excludenl end=')' contains=xqCode,xmlRegion,xqComment,xqSeparator,xqueryStatement,xqVariable,xqueryType keepend extend +hi def link xqNumber Number +hi def link xqFloat Number +hi def link xqString String +hi def link xqVariable Identifier +hi def link xqComment Comment +hi def link xqSeparator Operator +hi def link xqStatement Statement +hi def link xqFunction Function +hi def link xqOperator Operator +hi def link xqType Type +hi def link xqXPath Operator +hi def link XQdoc Special +hi def link xqExist Operator +" override the xml highlighting +"hi link xmlTag Structure +"hi link xmlTagName Structure +"hi link xmlEndTag Structure +let b:current_syntax = "xquery"