]> granicus.if.org Git - vim/commitdiff
Update runtime files.
authorBram Moolenaar <Bram@vim.org>
Tue, 21 Nov 2017 22:09:50 +0000 (23:09 +0100)
committerBram Moolenaar <Bram@vim.org>
Tue, 21 Nov 2017 22:09:50 +0000 (23:09 +0100)
13 files changed:
runtime/doc/debugger.txt
runtime/doc/editing.txt
runtime/doc/eval.txt
runtime/doc/quickref.txt
runtime/doc/remote.txt
runtime/doc/starting.txt
runtime/doc/tags
runtime/doc/todo.txt
runtime/doc/usr_41.txt
runtime/doc/various.txt
runtime/filetype.vim
runtime/optwin.vim
runtime/syntax/doxygen.vim

index 51a9cc9fcf2abaddbf797c2f9331ccf522f702f6..7976395e4d4e9a0c1b096d79124621650c7eba11 100644 (file)
@@ -1,4 +1,4 @@
-*debugger.txt*  For Vim version 8.0.  Last change: 2005 Mar 29
+*debugger.txt*  For Vim version 8.0.  Last change: 2017 Nov 21
 
 
                  VIM REFERENCE MANUAL    by Gordon Prieur
@@ -95,10 +95,12 @@ list and colors can be set via X resources (XmNballoonEvalFontList,
 XmNballoonEvalBackground, and XmNballoonEvalForeground).
 The 'balloondelay' option sets the delay before an attempt is made to show a
 balloon.
-The 'ballooneval' option needs to be set to switch it on.
+The 'ballooneval' and/or the 'balloonevalterm' option needs to be set to
+switch it on.
 
-Balloon evaluation is only available when compiled with the |+balloon_eval|
-feature.
+Balloon evaluation is only available in the GUI when compiled with the
+|+balloon_eval| feature.  For the terminal the  |+balloon_eval_term| feature
+matters.
 
 The Balloon evaluation functions are also used to show a tooltip for the
 toolbar.  The 'ballooneval' option does not need to be set for this.  But the
index 714bc65ad7a9f6079c9bbf097d7cf0e80e444044..4ade4aa7ce07b220fea4ba9a3dabe9d152e6f81e 100644 (file)
@@ -1,4 +1,4 @@
-*editing.txt*   For Vim version 8.0.  Last change: 2017 Aug 21
+*editing.txt*   For Vim version 8.0.  Last change: 2017 Nov 16
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -900,7 +900,7 @@ Note: When the 'write' option is off, you are not able to write any file.
 
                                                        *:w* *:write*
                                                *E502* *E503* *E504* *E505*
-                                               *E512* *E514* *E667* *E796*
+                                               *E512* *E514* *E667* *E796* *E949*
 :w[rite] [++opt]       Write the whole buffer to the current file.  This is
                        the normal way to save changes to a file.  It fails
                        when the 'readonly' option is set or when there is
@@ -956,6 +956,9 @@ used, for example, when the write fails and you want to try again later with
 ":w #".  This can be switched off by removing the 'A' flag from the
 'cpoptions' option.
 
+Note that the 'fsync' option matters here.  If it's set it may make writes
+slower (but safer).
+
                                                        *:sav* *:saveas*
 :sav[eas][!] [++opt] {file}
                        Save the current buffer under the name {file} and set
index d753924df3c9861a96a58879dbc6ebf25ac70fe1..884f2e851df83ca71acd6fc162457a644adacc59 100644 (file)
@@ -1,4 +1,4 @@
-*eval.txt*     For Vim version 8.0.  Last change: 2017 Nov 16
+*eval.txt*     For Vim version 8.0.  Last change: 2017 Nov 19
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -2748,6 +2748,8 @@ bufexists({expr})                                 *bufexists()*
                The result is a Number, which is |TRUE| if a buffer called
                {expr} exists.
                If the {expr} argument is a number, buffer numbers are used.
+               Number zero is the alternate buffer for the current window.
+
                If the {expr} argument is a string it must match a buffer name
                exactly.  The name can be:
                - Relative to the current directory.
index c900ff5d04db94c98e5c70c28b2aba977136b4a1..06ae663bfac1c568e5026a1d2844dab2f75fe85a 100644 (file)
@@ -1,4 +1,4 @@
-*quickref.txt*  For Vim version 8.0.  Last change: 2017 Oct 19
+*quickref.txt*  For Vim version 8.0.  Last change: 2017 Nov 21
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -618,7 +618,8 @@ Short explanation of each option:           *option-list*
 'backupext'      'bex'     extension used for the backup file
 'backupskip'     'bsk'     no backup for files that match these patterns
 'balloondelay'   'bdlay'   delay in mS before a balloon may pop up
-'ballooneval'    'beval'   switch on balloon evaluation
+'ballooneval'    'beval'     switch on balloon evaluation in the GUI
+'balloonevalterm' 'bevalterm' switch on balloon evaluation in the terminal
 'balloonexpr'    'bexpr'   expression to show in balloon
 'belloff'        'bo'      do not ring the bell for these reasons
 'binary'         'bin'     read/write/edit file in binary mode
index dfae64effe21a95fcb365870238ac57a03305a66..6b0d9dd415213d4edd0ec747edee695e49ceb903 100644 (file)
@@ -1,4 +1,4 @@
-*remote.txt*    For Vim version 8.0.  Last change: 2017 Aug 01
+*remote.txt*    For Vim version 8.0.  Last change: 2017 Nov 12
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -181,7 +181,8 @@ name on the 'VimRegistry' property on the root window.
 
 A non GUI Vim with access to the X11 display (|xterm-clipboard| enabled), can
 also act as a command server if a server name is explicitly given with the
---servername argument.
+--servername argument, or when Vim was build with the |+autoservername|
+feature.
 
 An empty --servername argument will cause the command server to be disabled.
 
index 26d2fa24b70a60eec2e9af0af0b79cd2f17d5232..6ac684a1367e81c227cf42347cefd6f80f2e47c1 100644 (file)
@@ -1,4 +1,4 @@
-*starting.txt*  For Vim version 8.0.  Last change: 2017 Nov 11
+*starting.txt*  For Vim version 8.0.  Last change: 2017 Nov 18
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -58,9 +58,9 @@ filename      One or more file names.  The first one will be the current
                that is read from stdin.  The commands that would normally be
                read from stdin will now be read from stderr.  Example: >
                        find . -name "*.c" -print | vim -
-<              The buffer will be marked modified, because it contains text
-               that needs to be saved.  Except when in readonly mode, then
-               the buffer is not marked modified.  Example: >
+<              The buffer will not be marked as modified, so that it's easy
+               to exit.  Be careful to mark it as modified if you don't want
+               to accidentally lose it.  Example: >
                        ls | view -
 <
                Starting in Ex mode: >
@@ -421,7 +421,9 @@ a slash.  Thus "-R" means recovery and "-/R" readonly.
                                                        *--not-a-term*
 --not-a-term   Tells Vim that the user knows that the input and/or output is
                not connected to a terminal.  This will avoid the warning and
-               the two second delay that would happen. {not in Vi}
+               the two second delay that would happen.
+               Also avoids the "Reading from stdin..." message.
+               {not in Vi}
 
                                                        *--ttyfail*
 --ttyfail      When the stdin or stdout is not a terminal (tty) then exit
index 5019bcd3180647f618a63ed816bf1f2b5e3d1de0..253a55faefeaafbf19497f88429261e46c05a089 100644 (file)
@@ -74,12 +74,14 @@ $VIM_POSIX  vi_diff.txt     /*$VIM_POSIX*
 'backupskip'   options.txt     /*'backupskip'*
 'balloondelay' options.txt     /*'balloondelay'*
 'ballooneval'  options.txt     /*'ballooneval'*
+'balloonevalterm'      options.txt     /*'balloonevalterm'*
 'balloonexpr'  options.txt     /*'balloonexpr'*
 'bdir' options.txt     /*'bdir'*
 'bdlay'        options.txt     /*'bdlay'*
 'beautify'     vi_diff.txt     /*'beautify'*
 'belloff'      options.txt     /*'belloff'*
 'beval'        options.txt     /*'beval'*
+'bevalterm'    options.txt     /*'bevalterm'*
 'bex'  options.txt     /*'bex'*
 'bexpr'        options.txt     /*'bexpr'*
 'bf'   vi_diff.txt     /*'bf'*
@@ -505,7 +507,9 @@ $VIM_POSIX  vi_diff.txt     /*$VIM_POSIX*
 'noawa'        options.txt     /*'noawa'*
 'nobackup'     options.txt     /*'nobackup'*
 'noballooneval'        options.txt     /*'noballooneval'*
+'noballoonevalterm'    options.txt     /*'noballoonevalterm'*
 'nobeval'      options.txt     /*'nobeval'*
+'nobevalterm'  options.txt     /*'nobevalterm'*
 'nobin'        options.txt     /*'nobin'*
 'nobinary'     options.txt     /*'nobinary'*
 'nobiosk'      options.txt     /*'nobiosk'*
@@ -1223,7 +1227,9 @@ $VIM_POSIX        vi_diff.txt     /*$VIM_POSIX*
 +acl   various.txt     /*+acl*
 +arabic        various.txt     /*+arabic*
 +autocmd       various.txt     /*+autocmd*
++autoservername        various.txt     /*+autoservername*
 +balloon_eval  various.txt     /*+balloon_eval*
++balloon_eval_term     various.txt     /*+balloon_eval_term*
 +browse        various.txt     /*+browse*
 +builtin_terms various.txt     /*+builtin_terms*
 +byte_offset   various.txt     /*+byte_offset*
@@ -4569,6 +4575,7 @@ E945      pattern.txt     /*E945*
 E946   terminal.txt    /*E946*
 E947   terminal.txt    /*E947*
 E948   terminal.txt    /*E948*
+E949   editing.txt     /*E949*
 E95    message.txt     /*E95*
 E96    diff.txt        /*E96*
 E97    diff.txt        /*E97*
@@ -5145,6 +5152,7 @@ backup-extension  version4.txt    /*backup-extension*
 backup-table   editing.txt     /*backup-table*
 balloon-eval   debugger.txt    /*balloon-eval*
 balloon_show() eval.txt        /*balloon_show()*
+balloon_split()        eval.txt        /*balloon_split()*
 bar    motion.txt      /*bar*
 bars   help.txt        /*bars*
 base_font_name_list    mbyte.txt       /*base_font_name_list*
index 44d002bd3739b0de53b0202618d0c9f7b3ad21ca..dbd138f2f1f310eaaedd0edecf96f4bb0d7f48ed 100644 (file)
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 8.0.  Last change: 2017 Nov 11
+*todo.txt*      For Vim version 8.0.  Last change: 2017 Nov 21
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -35,10 +35,6 @@ entered there will not be repeated below, unless there is extra information.
                                                        *known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-Permission of viminfo tempfile can be wrong. (Simon Ruderich)
-Always use 600 ?  Also avoids groups problem.
-patch from Simon Ruderich, Nov 8
-
 No maintainer for Vietnamese translations.
 No maintainer for Simplified Chinese translations.
 
@@ -49,10 +45,6 @@ Terminal emulator window:
     - Implement the right-click popup menu for the terminal. Can use the
       completion popup menu code and mouse dragging.
       Use it for "set breakpoint", "remove breakpoint", etc.
-    - make showballoon() work in a terminal.  Requires getting mouse-move
-      events.
-    - send 'balloonText' events for the cursor position (using CursorHold ?)
-      in terminal mode.
   - get ideas from http://clewn.sf.net
   - Look into the idevim plugin/script.
 - Improve testing:
@@ -88,6 +80,8 @@ Terminal emulator window:
     Although user could use "xterm -e 'cmd arg'".
 
 Regexp problems:
+- When search pattern has the base character both with and without combining
+  character, search fails.  E.g. "รรีบ" in "การรีบรักใคร". (agguser, #2312)
 - [:space:] only matches ASCII spaces.  Add [:white:] for all space-like
   characters, esp. including 0xa0.  Use character class zero.
 - Since 7.4.704 the old regex engine fails to match [[:print:]] in 0xf6.
@@ -136,7 +130,7 @@ Regexp problems:
 Include a few color schemes, based on popularity:
 http://www.vim.org/scripts/script_search_results.php?keywords=&script_type=color+scheme&order_by=rating&direction=descending&search=search
 http://vimawesome.com/?q=tag:color-scheme
-Use names that indicate their apperance (Christian Brabandt, 2017 Aug 3)
+Use names that indicate their appearance (Christian Brabandt, 2017 Aug 3)
 - monokai - Xia Crusoe (2017 Aug 4) 
 - seoul256 - Christian Brabandt (2017 Aug 3)
 - gruvbox -  Christian Brabandt (2017 Aug 3)
@@ -147,6 +141,7 @@ Suggested by Hiroki Kokubun:
 - [hybrid](https://github.com/w0ng/vim-hybrid)
 Include solarized color scheme?, it does not support termguicolors.
 -> Make check for colorscheme that it's sane.
+- Sanitized version of pablo (Lifepillar, 2017 Nov 21)
 
 Compiler warnings (geeknik, 2017 Oct 26):
 - signed integer overflow in do_sub() (#2249)
@@ -155,6 +150,13 @@ Compiler warnings (geeknik, 2017 Oct 26):
 - signed integer overflow in nfa_regatom() (#2251)
 - undefined left shift in get_string_tv() (#2250)
 
+Patch to use imactivatefunc() also without +xim feature. (Yasuhiro Matsumoto,
+2017 Nov 19, #2349)
+
+'hlsearch' shows empty matches, which means highlighting everything.
+Don't do that.  For "foo\|" or "\v"
+Patch from Christian, 2017 Nov 14.  Should still display "$" matches.
+
 When starting with --clean packages under "start" are not loaded.  Make this
 work:  :packadd START {name}  similar to :runtime START name
 
@@ -169,6 +171,12 @@ With foldmethod=syntax and nofoldenable comment highlighting isn't removed.
 Using 'wildignore' also applies to literally entered file name.  Also with
 :drop (remote commands).
 
+Race condition between stat() and open() in write_viminfo(). Use open() in the
+loop and try another name instead of using a temp file. (Simon Ruderich)
+The first one, when viminfo is new, should just fail if it creating with
+O_EXCL fails.
+Also use umask instead of mch_fopen() after vim_tempname().
+
 "gvim --remote" from a directory with non-word characters changes the current
 directory (Paulo Marcel Coelho Arabic, 2017 Oct 30, #2266)
 Also see #1689.
@@ -176,19 +184,38 @@ Also see #1689.
 ml_get error when using a Python. (Yggdroot, 2017 Jun 1, #1737)
 Lemonboy can reproduce (2017 Jun 5)
 
+Invalid range error when using BufWinLeave for closing terminal.
+(Gabriel Barta, 2017 Nov 15, #2339)
+
 ml_get errors with buggy script. (Dominique, 2017 Apr 30)
 
 Error in emsg with buggy script. (Dominique, 2017 Apr 30)
 
+Patch to avoid clearing the intro message on Win32 console.
+(Ken Takata, 2017 Nov 14)
+
+Patch to copy buffer-local options before buffer leaves the window. (Bjorn
+Linse, 2017 Nov 14, #2336)
+
 When a timer is running and typing CTRL-R on the command line, it is not
 redrawn properly. (xtal8, 2017 Oct 23, #2241)
 
 Universal solution to detect if t_RS is working, using cursor position.
 Koichi Iwamoto, #2126
 
+Patch to fix cmdline abbreviation after '<,'>. (Christian Brabandt, 2017 Nov
+13, on issue #2320)
+
+Patch to add TextDeletePost and TextYankPost events. (Philippe Vaucher, 2011
+May 24)  Update May 26.
+Now in patch by Lemonboy, #2333  (who is Lemonboy?)
+
 Default install on MS-Windows should source defaults.vim.
 Ask whether to use Windows or Vim key behavior?
 
+Patch for improving detecting Ruby on Mac in configure. (Ilya Mikhaltsou, 2017
+Nov 21)
+
 When using command line window, CmdlineLeave is triggered without
 CmdlineEnter.  (xtal8, 2017 Oct 30, #2263)
 Add some way to get the nested state.  Although CmdwinEnter is obviously
@@ -196,9 +223,14 @@ always nested.
 
 matchit hasn't been maintained for a long time.  #955.
 
+Problem with 'delcombine'. (agguser, 2017 Nov 10, #2313)
+
 MS-Windows: buffer completetion doesn't work when using backslash (or slash)
 for a path separator. (xtal8, #2201)
 
+Patch to adjust to DPI setting for GTK. (Roel van de Kraats, 2017 Nov 20,
+#2357)
+
 Test runtime files.
 Start with filetype detection: testdir/test_filetype.vim
 
@@ -217,15 +249,22 @@ Still happens (2017 Jul 9)
 When bracketed paste is used, pasting at the ":append" prompt does not get the
 line breaks. (Ken Takata, 2017 Aug 22)
 
+The ":move" command does not honor closed folds. (Ryan Lue, #2351)
+
 Patch for 24 bit color support in MS-Windows console, using vcon. (Nobuhiro
-Takasaki, 2017 Oct 1, #2060).  Ready to include now?
+Takasaki, Ken Takata, 2017 Oct 1, #2060).
 
 Memory leaks in test_channel? (or is it because of fork())
 Memory leak in test_arabic.
 Using uninitialized value in test_crypt.
 
+Patch to clear background when "guibg=NONE" is used and 'termguicolors' is
+set.
+
 Patch to make gM move to middle of line. (Yasuhiro Matsumoto, Sep 8, #2070)
 
+Cannot copy modeless selection when cursor is inside it. (lkintact, #2300)
+
 Include Haiku port. (Adrien Destugues, Siarzhuk Zharski, 2013 Oct 24)
 It can replace the BeOS code, which is likely not used anymore.
 Now on github: #1856.  Updated Oct 2017
@@ -290,8 +329,15 @@ Patch to add argument to :cquit. (Thinca, 2014 Oct 12)
 Python: After "import vim" error messages only show the first line of the
 stack trace. (Yggdroot, 2017 Jul 28, #1887)
 
+Profile of a dict function is lost when the dict is deleted.  Would it be
+possible to collect this?  (Daniel Hahler, #2350)
+
 Patch to add "module" to quickfix entries. (Marcin Szamotulski, Coot, 2017 Jun
-8, #1757)
+8, #1757)  Now part of #2322.  Or #2327?  #1757 was re-opened, include that
+first.
+
+Add `:filter` support for various commands (Marcin Szamotulski, 2017 Nov 12
+#2322)  Now in #2327?
 
 When checking if a bufref is valid, also check the buffer number, to catch the
 case of :bwipe followed by :new.
@@ -1484,9 +1530,6 @@ Build problem with small features on Mac OS X 10.6. (Rainer, 2011 Jan 24)
 
 "0g@$" puts '] on last byte of multi-byte. (ZyX, 2011 Jan 22)
 
-Patch to add TextDeletePost and TextYankPost events. (Philippe Vaucher, 2011
-May 24)  Update May 26.
-
 Patch for :tabrecently. (Hirokazu Yoshida, 2012 Jan 30)
 
 Problem with "syn sync grouphere". (Gustavo Niemeyer, 2011 Jan 27)
@@ -4653,7 +4696,7 @@ Command line history:
 -   Add "KeyWasTyped" flag: It's reset before each command and set when a
     character from the keyboard is consumed. Value is used to decide to put a
     command line in history or not. Put line in history if it didn't
-    completely resulted from one mapping.
+    completely result from one mapping.
 -   When using ":browse", also put the resulting edit command in the history,
     so that it can be repeated. (Demirel)
 
index c13a0cb5405f0f371c48449f2e8b07bdc94186d4..bafdc5491974f4ea1a7fb369a8994a1bab3e5c02 100644 (file)
@@ -1,4 +1,4 @@
-*usr_41.txt*   For Vim version 8.0.  Last change: 2017 Oct 15
+*usr_41.txt*   For Vim version 8.0.  Last change: 2017 Nov 19
 
                     VIM USER MANUAL - by Bram Moolenaar
 
@@ -886,6 +886,7 @@ GUI:                                                *gui-functions*
        getwinposx()            X position of the GUI Vim window
        getwinposy()            Y position of the GUI Vim window
        balloon_show()          set the balloon content
+       balloon_split()         split a message for a balloon
 
 Vim server:                                    *server-functions*
        serverlist()            return the list of server names
index 07ec3b1941f36b6645485a86be3cb73dec6c6aea..232ccda37df000eda29ef055b7530ceb84b337de 100644 (file)
@@ -1,4 +1,4 @@
-*various.txt*   For Vim version 8.0.  Last change: 2017 Sep 16
+*various.txt*   For Vim version 8.0.  Last change: 2017 Nov 18
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -310,9 +310,12 @@ g8                 Print the hex values of the bytes used in the
 B  *+arabic*           |Arabic| language support
 N  *+autocmd*          |:autocmd|, automatic commands
 H  *+autoservername*   Automatically enable |clientserver|
-m  *+balloon_eval*     |balloon-eval| support. Included when compiling with
-                       supported GUI (Motif, GTK, GUI) and either
-                       Netbeans/Sun Workshop integration or |+eval| feature.
+m  *+balloon_eval*     |balloon-eval| support in the GUI. Included when
+                       compiling with supported GUI (Motif, GTK, GUI) and
+                       either Netbeans/Sun Workshop integration or |+eval|
+                       feature.
+H  *+balloon_eval_term*        |balloon-eval| support in the terminal,
+                       'balloonevalterm'
 N  *+browse*           |:browse| command
 N  *+builtin_terms*    some terminals builtin |builtin-terms|
 B  *++builtin_terms*   maximal terminals builtin |builtin-terms|
index d176cf12cf5a434d004a3e2eb2d4fc61bdd4957f..ed1ef278f11a6318ca7d93e8cc94552821acaaea 100644 (file)
@@ -1,7 +1,7 @@
 " Vim support file to detect file types
 "
 " Maintainer:  Bram Moolenaar <Bram@vim.org>
-" Last Change: 2017 Nov 11
+" Last Change: 2017 Nov 21
 
 " Listen very carefully, I will say this only once
 if exists("did_load_filetypes")
@@ -231,10 +231,10 @@ au BufNewFile,BufRead *.bl                        setf blank
 au BufNewFile,BufRead */etc/blkid.tab,*/etc/blkid.tab.old   setf xml
 
 " Bazel (http://bazel.io)
-autocmd BufRead,BufNewFile *.bzl,WORKSPACE     setf bzl
+autocmd BufRead,BufNewFile *.bzl,WORKSPACE,BUILD.bazel         setf bzl
 if has("fname_case")
   " There is another check for BUILD further below.
-  autocmd BufRead,BufNewFile BUILD             setf bzl
+  autocmd BufRead,BufNewFile BUILD                     setf bzl
 endif
 
 " C or lpc
index 127232f2631c2c2f8d5b7bb2508e0f3c68d6b447..74ebc9fd98c7820c8e3897c3d68ffbec21b7f181 100644 (file)
@@ -1,7 +1,7 @@
 " These commands create the option window.
 "
 " Maintainer:  Bram Moolenaar <Bram@vim.org>
-" Last Change: 2017 Oct 19
+" Last Change: 2017 Nov 21
 
 " If there already is an option window, jump to that one.
 let buf = bufnr('option-window')
@@ -647,11 +647,17 @@ if has("gui")
   endif
   call append("$", "linespace\tnumber of pixel lines to use between characters")
   call append("$", " \tset lsp=" . &lsp)
-  if has("balloon_eval")
+  if has("balloon_eval") || has("balloon_eval_term")
     call append("$", "balloondelay\tdelay in milliseconds before a balloon may pop up")
     call append("$", " \tset bdlay=" . &bdlay)
-    call append("$", "ballooneval\twhether the balloon evaluation is to be used")
-    call <SID>BinOptionG("beval", &beval)
+    if has("balloon_eval")
+      call append("$", "ballooneval\tuse balloon evaluation in the GUI")
+      call <SID>BinOptionG("beval", &beval)
+    endif
+    if has("balloon_eval_term")
+      call append("$", "balloonevalterm\tuse balloon evaluation in the terminal")
+      call <SID>BinOptionG("bevalterm", &beval)
+    endif
     if has("eval")
       call append("$", "balloonexpr\texpression to show in balloon eval")
       call append("$", " \tset bexpr=" . &bexpr)
index 6bd3726279d21a4a6aa82220a98a0c0dad97d648..adc0c41dd631b59a27428a82bc640028c7eb2fe8 100644 (file)
@@ -2,11 +2,10 @@
 " Language:     doxygen on top of c, cpp, idl, java, php
 " Maintainer:   Michael Geddes <vimmer@frog.wheelycreek.net>
 " Author:       Michael Geddes
-" Last Changes: Jan 2009 (\tparam by Domnique Pelle, Aug 2013)
-"               Nov 2017 (@throws by Domnique Pelle)
-" Version:      1.23
+" Last Change: November 2017 (\throws by Candy Gumdrop)
+" Version:      1.27
 "
-" Copyright 2004-2008 Michael Geddes
+" Copyright 2004-2017 Michael Geddes
 " Please feel free to use, modify & distribute all or part of this script,
 " providing this copyright message remains.
 " I would appreciate being acknowledged in any derived scripts, and would
@@ -59,52 +58,76 @@ try
   "
 
   " C/C++ Style line comments
-  syn region doxygenComment start=+/\*\(\*/\)\@![*!]+  end=+\*/+ contains=doxygenSyncStart,doxygenStart,doxygenTODO keepend fold containedin=phpRegion
-  syn region doxygenCommentL start=+//[/!]<\@!+me=e-1 end=+$+ contains=doxygenStartL,@Spell keepend skipwhite skipnl nextgroup=doxygenComment2 fold containedin=phpRegion
+  syn match doxygenCommentWhite +\s*\ze/\*\(\*/\)\@![*!]+ containedin=phpRegion
+  syn match doxygenCommentWhite +\s*\ze//[/!]+ containedin=phpRegion
+  syn match doxygenCommentWhite +\s*\ze/\*\(\*/\)\@![*!]+
+  syn match doxygenCommentWhite +\s*\ze//[/!]+ containedin=phpRegion
+
+  syn region doxygenComment start=+/\*\(\*/\)\@![*!]+  end=+\*/+ contains=doxygenSyncStart,doxygenStart,doxygenTODO,doxygenLeadingWhite  keepend fold containedin=phpRegion
+  syn region doxygenCommentL start=+//[/!]<\@!+me=e-1 end=+$+ contains=doxygenLeadingLWhite,doxygenStartL,@Spell keepend skipwhite skipnl nextgroup=doxygenCommentWhite2 fold containedin=phpRegion
   syn region doxygenCommentL start=+//[/!]<+me=e-2 end=+$+ contains=doxygenStartL,@Spell keepend skipwhite skipnl fold containedin=phpRegion
   syn region doxygenCommentL start=+//@\ze[{}]+ end=+$+ contains=doxygenGroupDefine,doxygenGroupDefineSpecial,@Spell fold containedin=phpRegion
+  syn region doxygenComment start=+/\*@\ze[{}]+ end=+\*/+ contains=doxygenGroupDefine,doxygenGroupDefineSpecial,@Spell fold containedin=phpRegion
 
   " Single line brief followed by multiline comment.
+  syn match doxygenCommentWhite2 +\_s*\ze/\*\(\*/\)\@![*!]+ contained nextgroup=doxygenComment2
   syn region doxygenComment2 start=+/\*\(\*/\)\@![*!]+ end=+\*/+ contained contains=doxygenSyncStart2,doxygenStart2,doxygenTODO keepend fold
   " This helps with sync-ing as for some reason, syncing behaves differently to a normal region, and the start pattern does not get matched.
   syn match doxygenSyncStart2 +[^*/]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenStartSpecial,doxygenSkipComment,doxygenStartSkip2 skipwhite skipnl
 
   " Skip empty lines at the start for when comments start on the 2nd/3rd line.
-  syn match doxygenStartSkip2 +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenBody,doxygenStartSpecial,doxygenStartSkip skipwhite skipnl
-  syn match doxygenStartSkip2 +^\s*\*$+ contained nextgroup=doxygenBody,doxygenStartSpecial,,doxygenStartSkip skipwhite skipnl
+  syn match doxygenStartSkip2 +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenBody,doxygenStartSpecial,doxygenStartSkipWhite skipwhite skipnl
+  syn match doxygenStartSkip2 +^\s*\*$+ contained nextgroup=doxygenBody,doxygenStartSpecial,doxygenStartSkipWhite skipwhite skipnl
   syn match doxygenStart2 +/\*[*!]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenStartSpecial,doxygenStartSkip2 skipwhite skipnl
 
 
   " Match the Starting pattern (effectively creating the start of a BNF)
   if !exists('g:doxygen_javadoc_autobrief') || g:doxygen_javadoc_autobrief
-    syn match doxygenStart +/\*[*!]+ contained nextgroup=doxygenBrief,doxygenPrev,doxygenFindBriefSpecial,doxygenStartSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
-    syn match doxygenStartL +//[/!]+ contained nextgroup=doxygenPrevL,doxygenBriefL,doxygenSpecial skipwhite
+    syn match doxygenStart +/\*[*!]+ contained nextgroup=doxygenBrief,doxygenPrev,doxygenFindBriefSpecial,doxygenStartSpecial,doxygenStartSkipWhite,doxygenPage skipwhite skipnl
+    syn match doxygenLeadingLWhite +\s\++ contained nextgroup=doxygenPrevL,doxygenBriefL,doxygenSpecial
+    syn match doxygenStartL +//[/!]+ contained nextgroup=doxygenLeaingLWhite,doxygenPrevL,doxygenBriefL,doxygenSpecial
     " Match the first sentence as a brief comment
     if ! exists('g:doxygen_end_punctuation')
       let g:doxygen_end_punctuation='[.]'
     endif
 
-    exe 'syn region doxygenBrief contained start=+[\\@]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]+ start=+\(^\s*\)\@<!\*/\@!+ start=+\<\k+ skip=+'.doxygen_end_punctuation.'\S\@=+ end=+'.doxygen_end_punctuation.'+ end=+\(\s*\(\n\s*\*\=\s*\)[@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\@=+ contains=doxygenSmallSpecial,doxygenContinueComment,doxygenBriefEndComment,doxygenFindBriefSpecial,doxygenSmallSpecial,@doxygenHtmlGroup,doxygenTODO,doxygenHyperLink,doxygenHashLink,@Spell  skipnl nextgroup=doxygenBody'
+    exe 'syn region doxygenBrief contained start=+[\\@]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]+ start=+\(^\s*\)\@<!\*/\@!+ start=+\<\k+ skip=+'.doxygen_end_punctuation.'\S\@=+ end=+'.doxygen_end_punctuation.'+ end=+\(\s*\(\n\s*\*\=\s*\)[@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\@=+ contains=doxygenSmallSpecial,doxygenContinueCommentWhite,doxygenLeadingWhite,doxygenBriefEndComment,doxygenFindBriefSpecial,doxygenSmallSpecial,@doxygenHtmlGroup,doxygenTODO,doxygenHyperLink,doxygenHashLink,@Spell  skipnl nextgroup=doxygenBody'
 
     syn match doxygenBriefEndComment +\*/+ contained
 
     exe 'syn region doxygenBriefL start=+@\k\@!\|[\\@]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@]+ start=+\<+ skip=+'.doxygen_end_punctuation.'\S+ end=+'.doxygen_end_punctuation.'\|$+ contained contains=doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell keepend'
     syn match doxygenPrevL +<+ contained  nextgroup=doxygenBriefL,doxygenSpecial skipwhite
   else
-    syn match doxygenStart +/\*[*!]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenFindBriefSpecial,doxygenStartSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
-    syn match doxygenStartL +//[/!]+ contained nextgroup=doxygenPrevL,doxygenLine,doxygenSpecial skipwhite
+    syn match doxygenStart +/\*[*!]+ contained nextgroup=doxygenBody,doxygenPrev,doxygenFindBriefSpecial,doxygenStartSpecial,doxygenStartSkipWhite,doxygenPage skipwhite skipnl
+    syn match doxygenStartL +//[/!]+ contained nextgroup=doxygenLeadingLWhite,doxygenPrevL,doxygenLine,doxygenSpecial
+    syn match doxygenLeadingLWhite +\s\++ contained nextgroup=doxygenPrevL,doxygenLine,doxygenSpecial
     syn region doxygenLine start=+@\k\@!\|[\\@]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@<]+ start=+\<+ end='$' contained contains=doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell keepend
     syn match doxygenPrevL +<+ contained  nextgroup=doxygenLine,doxygenSpecial skipwhite
 
   endif
 
   " This helps with sync-ing as for some reason, syncing behaves differently to a normal region, and the start pattern does not get matched.
-  syn match doxygenSyncStart +\ze[^*/]+ contained nextgroup=doxygenBrief,doxygenPrev,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
+  syn match doxygenSyncStart +\ze[^*/]+ contained nextgroup=doxygenBrief,doxygenPrev,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkipWhite,doxygenPage skipwhite skipnl
+  " Match an [@\]brief so that it moves to body-mode.
+  "
+  "
+  " syn match doxygenBriefLine  contained
+  syn match doxygenBriefSpecial contained +[@\\]+ nextgroup=doxygenBriefWord skipwhite
+  " syn region doxygenFindBriefSpecial start=+[@\\]brief\>+ end=+\(\n\s*\*\=\s*\([@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\|\s*$\)\@=+ keepend contains=doxygenBriefSpecial nextgroup=doxygenBody keepend skipwhite skipnl contained
+  syn region doxygenFindBriefSpecial start=+[@\\]brief\>+ skip=+^\s*\(\*/\@!\s*\)\=\(\<\|[@\\]\<\([npcbea]\>\|em\>\|ref\|link\>\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]\)+ end=+^+ keepend contains=doxygenBriefSpecial nextgroup=doxygenBody keepend skipwhite skipnl contained
+
+
+
+" end=+\(\n\s*\*\=\s*\([@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\|\s*$\)\@=+
+"syn region doxygenBriefLine contained start=+\<\k+ skip=+^\s*\(\*/\@!\s*\)\=\(\<\|[@\\]\<\([npcbea]\>\|em\>\|ref\|link\>\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]\)+ end=+^+ contains=doxygenContinueCommentWhite,doxygenSmallSpecial,@doxygenHtmlGroup,doxygenTODO,doxygenHyperLink,doxygenHashLink,@Spell  skipwhite keepend matchgroup=xxx
+syn region doxygenBriefLine contained start=+\<\k+ skip=+^\s*\(\*/\@!\s*\)\=\(\<\|[@\\]\<\([npcbea]\>\|em\>\|ref\|link\>\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]\)+ end=+^+  skipwhite keepend matchgroup=xxx
+" syn region doxygenBriefLine matchgroup=xxxy contained start=+\<\k.\++ skip=+^\s*\k+ end=+end+  skipwhite keepend
+"doxygenFindBriefSpecial,
+  "" syn region doxygenSpecialMultilineDesc  start=+.\++ contained contains=doxygenSpecialContinueCommentWhite,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell  skipwhite keepend
 
-  syn region doxygenBriefLine contained start=+\<\k+ end=+\(\n\s*\*\=\s*\([@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\|\s*$\)\@=+ contains=doxygenContinueComment,doxygenFindBriefSpecial,doxygenSmallSpecial,@doxygenHtmlGroup,doxygenTODO,doxygenHyperLink,doxygenHashLink,@Spell  skipwhite keepend
 
   " Match a '<' for applying a comment to the previous element.
-  syn match doxygenPrev +<+ contained nextgroup=doxygenBrief,doxygenBody,doxygenSpecial,doxygenStartSkip skipwhite
+  syn match doxygenPrev +<+ contained nextgroup=doxygenBrief,doxygenBody,doxygenSpecial,doxygenStartSkipWhite skipwhite
 
 if exists("c_comment_strings")
   " These are anti-Doxygen comments.  If there are more than two asterisks or 3 '/'s
@@ -123,10 +146,11 @@ endif
   "syn region doxygenBodyBit contained start=+$+
 
   " The main body of a doxygen comment.
-  syn region doxygenBody contained start=+\(/\*[*!]\)\@<!<\|[^<]\|$+ matchgroup=doxygenEndComment end=+\*/+re=e-2,me=e-2 contains=doxygenContinueComment,doxygenTODO,doxygenSpecial,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell
+  syn region doxygenBody contained start=+\(/\*[*!]\)\@<!<\|[^<]\|$+ matchgroup=doxygenEndComment end=+\*/+re=e-2,me=e-2 contains=doxygenContinueCommentWhite,doxygenTODO,doxygenSpecial,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell
 
   " These allow the skipping of comment continuation '*' characters.
-  syn match doxygenContinueComment contained +^\s*\*/\@!\s*+
+  syn match doxygenContinueCommentWhite contained +^\s*\ze\*+ nextgroup=doxygenContinueComment
+  syn match doxygenContinueComment contained +\*/\@!+
 
   " Catch a Brief comment without punctuation - flag it as an error but
   " make sure the end comment is picked up also.
@@ -135,27 +159,19 @@ endif
 
   " Skip empty lines at the start for when comments start on the 2nd/3rd line.
   if !exists('g:doxygen_javadoc_autobrief') || g:doxygen_javadoc_autobrief
-    syn match doxygenStartSkip +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
-    syn match doxygenStartSkip +^\s*\*$+ contained nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage skipwhite skipnl
+    syn match doxygenStartSkipWhite +^\s*\ze\*/\@!+ contained nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkipWhite,doxygenPage skipwhite skipnl
+    "syn match doxygenStartSkipWhite +^\s*\ze\*$+ contained nextgroup=doxygenBrief,doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkipWhite,doxygenPage skipwhite skipnl
   else
-    syn match doxygenStartSkip +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage,doxygenBody skipwhite skipnl
-    syn match doxygenStartSkip +^\s*\*$+ contained nextgroup=doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkip,doxygenPage,doxygenBody skipwhite skipnl
+    syn match doxygenStartSkipWhite +^\s*\*[^/]+me=e-1 contained nextgroup=doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkipWhite,doxygenPage,doxygenBody skipwhite skipnl
+    syn match doxygenStartSkipWhite +^\s*\*$+ contained nextgroup=doxygenStartSpecial,doxygenFindBriefSpecial,doxygenStartSkipWhite,doxygenPage,doxygenBody skipwhite skipnl
   endif
 
-  " Match an [@\]brief so that it moves to body-mode.
-  "
-  "
-  " syn match doxygenBriefLine  contained
-  syn match doxygenBriefSpecial contained +[@\\]+ nextgroup=doxygenBriefWord skipwhite
-  syn region doxygenFindBriefSpecial start=+[@\\]brief\>+ end=+\(\n\s*\*\=\s*\([@\\]\([npcbea]\>\|em\>\|ref\>\|link\>\|f\$\|[$\\&<>#]\)\@!\)\|\s*$\)\@=+ keepend contains=doxygenBriefSpecial nextgroup=doxygenBody keepend skipwhite skipnl contained
-
-
   " Create the single word matching special identifiers.
 
   fun! s:DxyCreateSmallSpecial( kword, name )
 
     let mx='[-:0-9A-Za-z_%=&+*/!~>|]\@<!\([-0-9A-Za-z_%=+*/!~>|#]\+[-0-9A-Za-z_%=+*/!~>|]\@!\|\\[\\<>&.]@\|[.,][0-9a-zA-Z_]\@=\|::\|([^)]*)\|&[0-9a-zA-Z]\{2,7};\)\+'
-    exe 'syn region doxygenSpecial'.a:name.'Word contained start=+'.a:kword.'+ end=+\(\_s\+'.mx.'\)\@<=[-a-zA-Z_0-9+*/^%|~!=&\\]\@!+ skipwhite contains=doxygenContinueComment,doxygen'.a:name.'Word'
+    exe 'syn region doxygenSpecial'.a:name.'Word contained start=+'.a:kword.'+ end=+\(\_s\+'.mx.'\)\@<=[-a-zA-Z_0-9+*/^%|~!=&\\]\@!+ skipwhite contains=doxygenContinueCommentWhite,doxygen'.a:name.'Word'
     exe 'syn match doxygen'.a:name.'Word contained "\_s\@<='.mx.'" contains=doxygenHtmlSpecial,@Spell keepend'
   endfun
   call s:DxyCreateSmallSpecial('p', 'Code')
@@ -180,40 +196,42 @@ endif
 
   " Match parameters and retvals (highlighting the first word as special).
   syn match doxygenParamDirection contained "\v\[(\s*in>((]\s*\[|\s*,\s*)out>)=|out>((]\s*\[|\s*,\s*)in>)=)\]" nextgroup=doxygenParamName skipwhite
-  syn keyword doxygenParam contained param tparam nextgroup=doxygenParamName,doxygenParamDirection skipwhite
+  syn keyword doxygenParam contained param nextgroup=doxygenParamName,doxygenParamDirection skipwhite
+  syn keyword doxygenTParam contained tparam nextgroup=doxygenParamName skipwhite
   syn match doxygenParamName contained +[A-Za-z0-9_:]\++ nextgroup=doxygenSpecialMultilineDesc skipwhite
   syn keyword doxygenRetval contained retval throw throws exception nextgroup=doxygenParamName skipwhite
 
   " Match one line identifiers.
   syn keyword doxygenOther contained addindex anchor
   \ dontinclude endhtmlonly endlatexonly showinitializer hideinitializer
-  \ example htmlonly image include ingroup internal latexonly line
-  \ overload related relates relatedalso relatesalso sa skip skipline
+  \ example htmlonly image include includelineno ingroup internal latexonly line
+  \ overload relates relatesalso sa skip skipline
   \ until verbinclude version addtogroup htmlinclude copydoc dotfile
   \ xmlonly endxmlonly
-  \ nextgroup=doxygenSpecialOnelineDesc
+  \ nextgroup=doxygenSpecialOnelineDesc copybrief copydetails copyright dir extends
+  \ implements
 
-  syn region doxygenCodeRegion contained matchgroup=doxygenOther start=+\<code\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<endcode\>+ contains=doxygenCodeRegionSpecial,doxygenContinueComment,doxygenErrorComment,@NoSpell
+  syn region doxygenCodeRegion contained matchgroup=doxygenOther start=+\<code\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<endcode\>+ contains=doxygenCodeRegionSpecial,doxygenContinueCommentWhite,doxygenErrorComment,@NoSpell
   syn match doxygenCodeRegionSpecial contained +[\\@]\(endcode\>\)\@=+
 
-  syn region doxygenVerbatimRegion contained matchgroup=doxygenOther start=+\<verbatim\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<endverbatim\>+ contains=doxygenVerbatimRegionSpecial,doxygenContinueComment,doxygenErrorComment,@NoSpell
+  syn region doxygenVerbatimRegion contained matchgroup=doxygenOther start=+\<verbatim\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<endverbatim\>+ contains=doxygenVerbatimRegionSpecial,doxygenContinueCommentWhite,doxygenErrorComment,@NoSpell
   syn match doxygenVerbatimRegionSpecial contained +[\\@]\(endverbatim\>\)\@=+
 
-  if exists('b:current_syntax') 
+  if exists('b:current_syntax')
     let b:doxygen_syntax_save=b:current_syntax
     unlet b:current_syntax
   endif
 
   syn include @Dotx syntax/dot.vim
 
-  if exists('b:doxygen_syntax_save') 
+  if exists('b:doxygen_syntax_save')
     let b:current_syntax=b:doxygen_syntax_save
     unlet b:doxygen_syntax_save
   else
     unlet b:current_syntax
   endif
 
-  syn region doxygenDotRegion contained matchgroup=doxygenOther start=+\<dot\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<enddot\>+ contains=doxygenDotRegionSpecial,doxygenErrorComment,doxygenContinueComment,@NoSpell,@Dotx
+  syn region doxygenDotRegion contained matchgroup=doxygenOther start=+\<dot\>+ matchgroup=doxygenOther end=+[\\@]\@<=\<enddot\>+ contains=doxygenDotRegionSpecial,doxygenErrorComment,doxygenContinueCommentWhite,@NoSpell,@Dotx
   syn match doxygenDotRegionSpecial contained +[\\@]\(enddot\>\)\@=+
 
   " Match single line identifiers.
@@ -224,13 +242,13 @@ endif
   syn keyword doxygenOther contained par nextgroup=doxygenHeaderLine
   syn region doxygenHeaderLine start=+.+ end=+^+ contained skipwhite nextgroup=doxygenSpecialMultilineDesc
 
-  syn keyword doxygenOther contained arg author authors date deprecated li result return returns see invariant note post pre remark remarks since test nextgroup=doxygenSpecialMultilineDesc
+  syn keyword doxygenOther contained arg author authors date deprecated li return returns see invariant note post pre remarks since test nextgroup=doxygenSpecialMultilineDesc
   syn keyword doxygenOtherTODO contained todo attention nextgroup=doxygenSpecialMultilineDesc
   syn keyword doxygenOtherWARN contained warning nextgroup=doxygenSpecialMultilineDesc
   syn keyword doxygenOtherBUG contained bug nextgroup=doxygenSpecialMultilineDesc
 
   " Handle \link, \endlink, highlighting the link-to and the link text bits separately.
-  syn region doxygenOtherLink matchgroup=doxygenOther start=+\<link\>+ end=+[\@]\@<=endlink\>+ contained contains=doxygenLinkWord,doxygenContinueComment,doxygenLinkError,doxygenEndlinkSpecial
+  syn region doxygenOtherLink matchgroup=doxygenOther start=+\<link\>+ end=+[\@]\@<=endlink\>+ contained contains=doxygenLinkWord,doxygenContinueCommentWhite,doxygenLinkError,doxygenEndlinkSpecial
   syn match doxygenEndlinkSpecial contained +[\\@]\zeendlink\>+
 
   syn match doxygenLinkWord "[_a-zA-Z:#()][_a-z0-9A-Z:#()]*\>" contained skipnl nextgroup=doxygenLinkRest,doxygenContinueLinkComment
@@ -250,7 +268,7 @@ endif
 
   " Handle section
   syn keyword doxygenOther defgroup section subsection subsubsection weakgroup contained skipwhite nextgroup=doxygenSpecialIdent
-  syn region doxygenSpecialSectionDesc  start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend skipwhite skipnl nextgroup=doxygenContinueComment
+  syn region doxygenSpecialSectionDesc  start=+.\++ end=+$+ contained skipwhite contains=doxygenSmallSpecial,@doxygenHtmlGroup keepend skipwhite skipnl nextgroup=doxygenContinueCommentWhite
   syn match doxygenSpecialIdent "\<[a-zA-Z_0-9]\+\>" contained nextgroup=doxygenSpecialSectionDesc
 
   " Does the one-line description for the one-line type identifiers.
@@ -260,8 +278,12 @@ endif
   " Handle the multiline description for the multiline type identifiers.
   " Continue until an 'empty' line (can contain a '*' continuation) or until the
   " next whole-line @ command \ command.
-  syn region doxygenSpecialMultilineDesc  start=+.\++ skip=+^\s*\(\*/\@!\s*\)\=\(\<\|[@\\]\<\([npcbea]\>\|em\>\|ref\|link\>\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]\)+ end=+^+ contained contains=doxygenSpecialContinueComment,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell  skipwhite keepend
-  syn match doxygenSpecialContinueComment contained +^\s*\*/\@!\s*+ nextgroup=doxygenSpecial skipwhite
+  syn region doxygenSpecialMultilineDesc  start=+.\++ skip=+^\s*\(\*/\@!\s*\)\=\(\<\|[@\\]\<\([npcbea]\>\|em\>\|ref\|link\>\>\|f\$\|[$\\&<>#]\)\|[^ \t\\@*]\)+ end=+^+ contained contains=doxygenSpecialContinueCommentWhite,doxygenSmallSpecial,doxygenHyperLink,doxygenHashLink,@doxygenHtmlGroup,@Spell  skipwhite keepend
+
+"  syn match doxygenSpecialContinueComment contained +^\s*\*/\@!\s*+ nextgroup=doxygenSpecial skipwhite
+  syn match doxygenSpecialContinueCommentWhite contained +^\s*\ze\*+ nextgroup=doxygenSpecialContinueComment
+  syn match doxygenSpecialContinueComment contained +\*/\@!+
+
 
   " Handle special cases  'bold' and 'group'
   syn keyword doxygenBold contained bold nextgroup=doxygenSpecialHeading
@@ -288,7 +310,7 @@ endif
 
   " Supported HTML subset.  Not perfect, but okay.
   syn case ignore
-  syn region doxygenHtmlTag contained matchgroup=doxygenHtmlCh start=+\v\</=\ze([biuap]|em|strong|img|br|center|code|dfn|d[ldt]|hr|h[0-3]|li|[ou]l|pre|small|sub|sup|table|tt|var|caption|src|alt|longdesc|name|height|width|usemap|ismap|href|type)>+ skip=+\\<\|\<\k\+=\("[^"]*"\|'[^']*\)+ end=+>+ contains=doxygenHtmlCmd,doxygenContinueComment,doxygenHtmlVar
+  syn region doxygenHtmlTag contained matchgroup=doxygenHtmlCh start=+\v\</=\ze([biuap]|em|strong|img|br|center|code|dfn|d[ldt]|hr|h[0-3]|li|[ou]l|pre|small|sub|sup|table|tt|var|caption|src|alt|longdesc|name|height|width|usemap|ismap|href|type)>+ skip=+\\<\|\<\k\+=\("[^"]*"\|'[^']*\)+ end=+>+ contains=doxygenHtmlCmd,doxygenContinueCommentWhite,doxygenHtmlVar
   syn keyword doxygenHtmlCmd contained b i em strong u img a br p center code dfn dl dd dt hr h1 h2 h3 li ol ul pre small sub sup table tt var caption nextgroup=doxygenHtmlVar skipwhite
   syn keyword doxygenHtmlVar contained src alt longdesc name height width usemap ismap href type nextgroup=doxygenHtmlEqu skipwhite
   syn match doxygenHtmlEqu contained +=+ nextgroup=doxygenHtmlExpr skipwhite
@@ -298,7 +320,7 @@ endif
 
   syn cluster doxygenHtmlGroup contains=doxygenHtmlCode,doxygenHtmlBold,doxygenHtmlUnderline,doxygenHtmlItalic,doxygenHtmlSpecial,doxygenHtmlTag,doxygenHtmlLink
 
-  syn cluster doxygenHtmlTop contains=@Spell,doxygenHtmlSpecial,doxygenHtmlTag,doxygenContinueComment
+  syn cluster doxygenHtmlTop contains=@Spell,doxygenHtmlSpecial,doxygenHtmlTag,doxygenContinueCommentWhite
   " Html Support
   syn region doxygenHtmlLink contained start=+<[aA]\>\s*\(\n\s*\*\s*\)\=\(\(name\|href\)=\("[^"]*"\|'[^']*'\)\)\=\s*>+ end=+</[aA]>+me=e-4 contains=@doxygenHtmlTop
   hi link doxygenHtmlLink Underlined
@@ -343,7 +365,7 @@ endif
   syn cluster rcGroup add=doxygen.*
 
   let s:my_syncolor=0
-  if !exists(':SynColor') 
+  if !exists(':SynColor')
     command -nargs=+ SynColor hi def <args>
     let s:my_syncolor=1
   endif
@@ -469,6 +491,8 @@ endif
 
     call s:Doxygen_Hilights()
 
+    syn match doxygenLeadingWhite +\(^\s*\*\)\@<=\s*+ contained
+
     " This is still a proposal, but won't do any harm.
     aug doxygengroup
     au!
@@ -483,6 +507,7 @@ endif
     SynLink doxygenOtherTODO              Todo
     SynLink doxygenOtherWARN              Todo
     SynLink doxygenOtherBUG               Todo
+    SynLink doxygenLeadingLWhite          doxygenBody
 
     SynLink doxygenErrorSpecial           Error
     SynLink doxygenErrorEnd               Error
@@ -517,7 +542,10 @@ endif
     SynLink doxygenBriefL                 doxygenBrief
     SynLink doxygenBriefLine              doxygenBrief
     SynLink doxygenHeaderLine             doxygenSpecialHeading
-    SynLink doxygenStartSkip              doxygenContinueComment
+    SynLink doxygenCommentWhite           Normal
+    SynLink doxygenCommentWhite2          doxygenCommentWhite
+    SynLink doxygenContinueCommentWhite   doxygenCommentWhite
+    SynLink doxygenStartSkipWhite         doxygenContinueCommentWhite
     SynLink doxygenLinkWord               doxygenParamName
     SynLink doxygenLinkRest               doxygenSpecialMultilineDesc
     SynLink doxygenHyperLink              doxygenLinkWord
@@ -591,5 +619,5 @@ finally
   let &cpo = s:cpo_save
   unlet s:cpo_save
 endtry
-
+let suppress_doxygen=1
 " vim:et sw=2 sts=2