[vim-scripts] 08/11: Updated taglist to 4.6

James McCoy jamessan at debian.org
Thu Aug 15 04:03:11 UTC 2013


This is an automated email from the git hooks/post-receive script.

jamessan pushed a commit to branch master
in repository vim-scripts.

commit 5dbe789ce9bfa548eaaf34ec631a5dd47398debd
Author: James McCoy <jamessan at debian.org>
Date:   Wed Aug 14 23:04:52 2013 -0400

    Updated taglist to 4.6
    
    Signed-off-by: James McCoy <jamessan at debian.org>
---
 debian/changelog             |    3 +-
 debian/vim-scripts.status    |    2 +-
 doc/taglist.txt              |   16 ++-
 html/index.html              |    2 +-
 html/plugin_taglist.vim.html |  206 ++++++++++++++++++++--------------
 plugin/taglist.vim           |  253 ++++++++++++++++++++++++++++++++----------
 6 files changed, 334 insertions(+), 148 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index d1b27fb..4fbd198 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -5,7 +5,8 @@ vim-scripts (20121008) UNRELEASED; urgency=low
       + Remove patch disabledby-supertab.diff, merged upstream.
     - surround: Updated to 2.0
     - bufexplorer: Updated to 7.3.6
-    - gnupg: Update to 2.5  (Closes: #717049)
+    - gnupg: Updated to 2.5  (Closes: #717049)
+    - taglist: Updated to 4.6  (Closes: #719613)
   * Add po-escape.diff to properly escape filenames when calling msgfmt.
     (Closes: #697135)
   * debian/vim-scripts.pl: Remove logged ip address from downloaded
diff --git a/debian/vim-scripts.status b/debian/vim-scripts.status
index 457f355..8c03f74 100644
--- a/debian/vim-scripts.status
+++ b/debian/vim-scripts.status
@@ -81,7 +81,7 @@ email:       yegappan at yahoo.com
 license:     no license
 extras:	     doc/taglist.txt
 disabledby:  let loaded_taglist = 'no'
-version:     4.5
+version:     4.6
 
 script_name: plugin/calendar.vim
 addon:       calendar
diff --git a/doc/taglist.txt b/doc/taglist.txt
index 6a62b39..3a14c93 100644
--- a/doc/taglist.txt
+++ b/doc/taglist.txt
@@ -2,7 +2,7 @@
 
 Author: Yegappan Lakshmanan  (yegappan AT yahoo DOT com)
 For Vim version 6.0 and above
-Last change: 2007 May 24
+Last change: 2013 Feburary 26
 
 1. Overview 					|taglist-intro|
 2. Taglist on the internet			|taglist-internet|
@@ -760,6 +760,12 @@ loaded. Examples:
 	let Tlist_Ctags_Cmd = 'd:\tools\ctags.exe'
 	let Tlist_Ctags_Cmd = '/usr/local/bin/ctags'
 <
+On Microsoft Windows, if ctags.exe is installed in a directory with space
+characters in the name (e.g. C:\Program Files\ctags\ctags.exe), then you need
+to set the Tlist_Ctags_Cmd variable like this:
+>
+	let Tlist_Ctags_Cmd = '"C:\Program Files\ctags\ctags.exe"'
+<
 						*'Tlist_Display_Prototype'*
 Tlist_Display_Prototype~
 By default, only the tag name will be displayed in the taglist window. If you
@@ -841,6 +847,7 @@ If your terminal doesn't support changing the window width from Vim (older
 version of xterm running in a Unix system) or if you see any weird problems in
 the screen due to the change in the window width or if you prefer not to
 adjust the window width then set the 'Tlist_Inc_Winwidth' variable to zero.
+If you are using GNU Screen, you may want to set this variable to zero.
 CAUTION: If you are using the MS-Windows version of Vim in a MS-DOS command
 window then you must set this variable to zero, otherwise the system may hang
 due to a Vim limitation (explained in :help win32-problems)
@@ -1144,6 +1151,7 @@ The taglist plugin provides several global functions that can be used from
 other Vim plugins to interact with the taglist plugin. These functions are
 described below.
 
+|Tlist_Get_Filenames()|			Return filenames in the taglist
 |Tlist_Update_File_Tags()|		Update the tags for the specified file
 |Tlist_Get_Tag_Prototype_By_Line()|	Return the prototype of the tag at or
 				    	before the specified line number in the
@@ -1154,6 +1162,12 @@ described below.
 |Tlist_Set_App()|			Set the name of the application
 					controlling the taglist window.
 
+					    *Tlist_Get_Filenames()*
+Tlist_Get_Filenames()
+		Returns a list of filenames in the taglist. Each filename is
+		separated by a newline (\n) character. If the taglist is empty
+		an empty string is returned.
+
 					    *Tlist_Update_File_Tags()*
 Tlist_Update_File_Tags({filename}, {filetype})
 		Update the tags for the file {filename}. The second argument
diff --git a/html/index.html b/html/index.html
index e9a77de..f240eb1 100644
--- a/html/index.html
+++ b/html/index.html
@@ -49,7 +49,7 @@
    <li><a href="syntax_CVSAnnotate.vim.html">syntax/CVSAnnotate.vim.html</a></li>
   </ul>
   <p>
-  Page generated on Wed, 14 Aug 2013 22:52:33 -0400
+  Page generated on Wed, 14 Aug 2013 22:59:58 -0400
 .
   </p>
  </body>
diff --git a/html/plugin_taglist.vim.html b/html/plugin_taglist.vim.html
index d162203..4167167 100644
--- a/html/plugin_taglist.vim.html
+++ b/html/plugin_taglist.vim.html
@@ -46,6 +46,19 @@
     <tr>
         <td><small>not logged in (<a href="/login.php">login</a>)</small></td>
     </tr>
+    <tr><td>
+<small> </small>
+<form action="http://www.google.com/cse" id="cse-search-box">
+  <div>
+    <input type="hidden" name="cx" value="partner-pub-3005259998294962:bvyni59kjr1" />
+    <input type="hidden" name="ie" value="ISO-8859-1" />
+    <input type="text" name="q" size="20" />
+    <br>
+    <input type="submit" name="sa" value="Search" />
+  </div>
+</form>
+<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=cse-search-box&lang=en"></script>
+    </td></tr>
     <tr>
         <td><img src="/images/spacer.gif" alt="" border="0" width="1" height="1"></td>
     </tr>
@@ -59,7 +72,7 @@
             <td class="sidebarheader"><a href="/index.php">Home</a></td>
         </tr>
         <tr>
-            <td class="sidebarheader"><a href="/search.php">Search</a></td>
+            <td class="sidebarheader"><a href="/search.php">Advanced search</a></td>
         </tr>
     <tr>
         <td><img src="/images/spacer.gif" alt="" border="0" width="1" height="7"></td>
@@ -89,7 +102,7 @@
             <td class="sidebarheader"><a href="/docs.php">Documentation</a></td>
         </tr>
         <tr>
-            <td class="sidebarheader"><a href="/download.php">Download</a></td>
+            <td class="sidebarheader download"><a href="/download.php">Download</a></td>
         </tr>
     <tr>
         <td><img src="/images/spacer.gif" alt="" border="0" width="1" height="7"></td>
@@ -122,6 +135,8 @@
             <td class="sidebarheader"><a href="/huh.php">Site Help</a></td>
         </tr>
 </table>
+<br>
+<g:plusone></g:plusone>
 
             <table width="172" cellpadding="0" cellspacing="0" border="0">
               <tr><td><img src="/images/spacer.gif" alt="" border="0" width="1" height="8"></td></tr>
@@ -153,8 +168,16 @@
 <tr>
   <td class="lightbg"><b> script karma </b></td>
   <td>
-    Rating <b>4868/1511</b>,
-    Downloaded by 59232  </td>
+    Rating <b>10646/3315</b>,
+    Downloaded by 228650     
+    <g:plusone></g:plusone>
+  </td>
+  <td class="lightbg">
+  <b> Comments, bugs, improvements </b>
+  </td>
+  <td>
+    <a href="http://vim.wikia.com/wiki/Script:273">Vim wiki</a>
+  </td>  
 </tr>
 </table>
 <p>
@@ -175,7 +198,7 @@
 </table>
 
 <!-- rating table -->
-<form name="rating">
+<form name="rating" method="post">
 <input type="hidden" name="script_id" value="273">
 <table cellpadding="4" cellspacing="0" border="1" bordercolor="#000066">
 <tr>
@@ -204,156 +227,164 @@ Click on the package to download.
     <th valign="top">release notes</th>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=7701">taglist_45.zip</a></td>
-    <td class="rowodd" valign="top" nowrap><b>4.5</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2007-09-21</i></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=19574">taglist_46.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>4.6</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2013-02-27</i></td>
     <td class="rowodd" valign="top" nowrap>6.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=244">Yegappan Lakshmanan</a></i></td>
-    <td class="rowodd" valign="top" width="2000">Fix an extra space in the check for exctags. Refresh the taglist window
<br>folds after entering a tab. Escape special characters like backslash in
<br>the tag name when saving a session file. Add an internal function to get
<br>and detect file types.
<br></td>
+    <td class="rowodd" valign="top" width="2000">1. Fixed a bug in refreshing the folds in the taglist window when switching between Vim tabs with Tlist_Show_One_File enabled.
<br>2. Update the TlistShowTag command output to display the tag scope.
<br>3. Preserve the alternate file when opening the taglist window.
<br>4. Restore the 'cpo' option value properly when the loading of the plugin is stopped.
<br>5. When the plugin is recursively sourced, don't change the 'cpo' setting to the default value.
<br>6. If a filetype contains multiple file types separated by a dot, then use the first file type.
<br>7. When displaying tag prototypes, trim the output to fit the window width.
<br>8. Add support for some more languages.
<br>9. Disable the 'relativenumber' option for the taglist window.
<br>10. On MS-Windows, use writefile() to generate the temporary batch file instead of the redir command. This fixes a problem in using the generated batch file in multi-byte encoding environments.
<br></td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=7169">taglist_44.zip</a></td>
-    <td class="roweven" valign="top" nowrap><b>4.4</b></td>
-    <td class="roweven" valign="top" nowrap><i>2007-05-25</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=7701">taglist_45.zip</a></td>
+    <td class="roweven" valign="top" nowrap><b>4.5</b></td>
+    <td class="roweven" valign="top" nowrap><i>2007-09-21</i></td>
     <td class="roweven" valign="top" nowrap>6.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=244">Yegappan Lakshmanan</a></i></td>
-    <td class="roweven" valign="top" width="2000">The following fixes are made in this release:
<br>1. If multiple Vim plugins register for the BufEnter autocmd, then sometimes
<br>    the buffer name supplied to the autocmd is incorrect. Use the buffer number
<br>    instead of buffer name in the BufEnter autocmd.
<br>2. Add the filename to the tags menu only for valid file names.
<br></td>
+    <td class="roweven" valign="top" width="2000">Fix an extra space in the check for exctags. Refresh the taglist window
<br>folds after entering a tab. Escape special characters like backslash in
<br>the tag name when saving a session file. Add an internal function to get
<br>and detect file types.
<br></td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=6769">taglist_43.zip</a></td>
-    <td class="rowodd" valign="top" nowrap><b>4.3</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2007-02-22</i></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=7169">taglist_44.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>4.4</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2007-05-25</i></td>
     <td class="rowodd" valign="top" nowrap>6.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=244">Yegappan Lakshmanan</a></i></td>
-    <td class="rowodd" valign="top" width="2000">1. Added support for jumping to a tag/file in a new or existing tab
<br>   from the taglist window (works only with Vim7 and above).
<br>2. Added support for opening a tag in the previous window.
<br>3. With the Tlist_File_Fold_Auto_Close variable set, when opening a
<br>   file from the file explorer window, the folds in the taglist window
<br>   are not closed correctly.  Fixed this problem.
<br></td>
+    <td class="rowodd" valign="top" width="2000">The following fixes are made in this release:
<br>1. If multiple Vim plugins register for the BufEnter autocmd, then sometimes
<br>    the buffer name supplied to the autocmd is incorrect. Use the buffer number
<br>    instead of buffer name in the BufEnter autocmd.
<br>2. Add the filename to the tags menu only for valid file names.
<br></td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=6416">taglist_42.zip</a></td>
-    <td class="roweven" valign="top" nowrap><b>4.2</b></td>
-    <td class="roweven" valign="top" nowrap><i>2006-11-14</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=6769">taglist_43.zip</a></td>
+    <td class="roweven" valign="top" nowrap><b>4.3</b></td>
+    <td class="roweven" valign="top" nowrap><i>2007-02-22</i></td>
     <td class="roweven" valign="top" nowrap>6.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=244">Yegappan Lakshmanan</a></i></td>
-    <td class="roweven" valign="top" width="2000">1. After opening a file with no tags defined in it with the
<br>   Tlist_Compact_Format option set, if the tags are updated, the folds
<br>   used for the files following the empty tags file are affected.
<br>2. On MS-Windows, use a "taglist.cmd" temporary file to run exuberant
<br>   ctags. This is to handle space characters in the file names and
<br>   in the exuberant ctags path name.
<br>3. In the taglist window, when a file is re-sorted or updated open the
<br>   fold for the file.
<br>4. When the 'shellxquote' option is set to double quotes, escape
<br>   double quotes in the command executed for exuberant ctags.
<br>5. On FreeBSD, exuberant ctags is installed as exctags, look for
<br>   exctags in the PATH.
<br>6. If two taglist plugins are present (one in the system Vim directory
<br>   and another in the user's .vim/plugin directory), then the plugin
<br>   in the users's .vim directory overrides the version in the system
<br>   vim directory.
<br>7. When the :TlistMessages command is issued display the debug
<br>   messages in a taglist.txt buffer.
<br>8. Clear the readonly option for the taglist buffer
<br>9. When opening a selected file, don't use the preview window, if
<br>   present.
<br></td>
+    <td class="roweven" valign="top" width="2000">1. Added support for jumping to a tag/file in a new or existing tab
<br>   from the taglist window (works only with Vim7 and above).
<br>2. Added support for opening a tag in the previous window.
<br>3. With the Tlist_File_Fold_Auto_Close variable set, when opening a
<br>   file from the file explorer window, the folds in the taglist window
<br>   are not closed correctly.  Fixed this problem.
<br></td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=6158">taglist_41.zip</a></td>
-    <td class="rowodd" valign="top" nowrap><b>4.1</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2006-09-10</i></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=6416">taglist_42.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>4.2</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2006-11-14</i></td>
     <td class="rowodd" valign="top" nowrap>6.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=244">Yegappan Lakshmanan</a></i></td>
-    <td class="rowodd" valign="top" width="2000">When the Tlist_File_Fold_Auto_Close variable is set to 1, jumping to the taglist window closes all the folds. Modified the plugin to not close the fold for the currently active file. When the TlistLock and TlistUnlock commands are invoked, an error message is displayed. This problem is fixed.</td>
+    <td class="rowodd" valign="top" width="2000">1. After opening a file with no tags defined in it with the
<br>   Tlist_Compact_Format option set, if the tags are updated, the folds
<br>   used for the files following the empty tags file are affected.
<br>2. On MS-Windows, use a "taglist.cmd" temporary file to run exuberant
<br>   ctags. This is to handle space characters in the file names and
<br>   in the exuberant ctags path name.
<br>3. In the taglist window, when a file is re-sorted or updated open the
<br>   fold for the file.
<br>4. When the 'shellxquote' option is set to double quotes, escape
<br>   double quotes in the command executed for exuberant ctags.
<br>5. On FreeBSD, exuberant ctags is installed as exctags, look for
<br>   exctags in the PATH.
<br>6. If two taglist plugins are present (one in the system Vim directory
<br>   and another in the user's .vim/plugin directory), then the plugin
<br>   in the users's .vim directory overrides the version in the system
<br>   vim directory.
<br>7. When the :TlistMessages command is issued display the debug
<br>   messages in a taglist.txt buffer.
<br>8. Clear the readonly option for the taglist buffer
<br>9. When opening a selected file, don't use the preview window, if
<br>   present.
<br></td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=6147">taglist_40.zip</a></td>
-    <td class="roweven" valign="top" nowrap><b>4.0</b></td>
-    <td class="roweven" valign="top" nowrap><i>2006-09-06</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=6158">taglist_41.zip</a></td>
+    <td class="roweven" valign="top" nowrap><b>4.1</b></td>
+    <td class="roweven" valign="top" nowrap><i>2006-09-10</i></td>
     <td class="roweven" valign="top" nowrap>6.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=244">Yegappan Lakshmanan</a></i></td>
-    <td class="roweven" valign="top" width="2000">Fixes:
<br>Fix the problems in using the taglist plugin with Vim7 tabs. When
<br>Tlist_File_Fold_Auto_Close is set, close the tag fold when leaving a
<br>buffer.  When jumping to a selected tag, if the file is opened in more
<br>than one window, use the previous window from which the user entered
<br>the taglist window.
<br>New features:
<br>Support for displaying the tag prototype as a tooltip.  Support for
<br>specifying additional commands after the taglist commands using the
<br>bar separator.
<br></td>
+    <td class="roweven" valign="top" width="2000">When the Tlist_File_Fold_Auto_Close variable is set to 1, jumping to the taglist window closes all the folds. Modified the plugin to not close the fold for the currently active file. When the TlistLock and TlistUnlock commands are invoked, an error message is displayed. This problem is fixed.</td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=5548">taglist_40b4.zip</a></td>
-    <td class="rowodd" valign="top" nowrap><b>4.0b4</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2006-04-12</i></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=6147">taglist_40.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>4.0</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2006-09-06</i></td>
     <td class="rowodd" valign="top" nowrap>6.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=244">Yegappan Lakshmanan</a></i></td>
-    <td class="rowodd" valign="top" width="2000">Fixes:
<br>1. When 'Tlist_Show_One_File' is set, after few files are opened,
<br>   unable to select tags from the taglist window.
<br>2. When the taglist plugin is stored in a directory with space characters
<br>   in the name, the autoloading of taglist plugin fails.
<br>New features:
<br>1. Support for moving cursor to the taglist window when using the
<br>   ":TlistToggle" command.
<br>2. When all the tags in a file are of the same type, in the taglist
<br>   menu, don't display the tag type.
<br>3. Changed the '?' help key to 'F1' in the taglist window.
<br>4. Set the filetype for the taglist buffer to 'taglist'
<br>5. In Vim7, set the 'winfixwidth' option for the taglist window.
<br>6. When jumping between files using the ]] or <Tab> and [[ or <Backspace>
<br>   keys, wrap around at the first and last file.
<br></td>
+    <td class="rowodd" valign="top" width="2000">Fixes:
<br>Fix the problems in using the taglist plugin with Vim7 tabs. When
<br>Tlist_File_Fold_Auto_Close is set, close the tag fold when leaving a
<br>buffer.  When jumping to a selected tag, if the file is opened in more
<br>than one window, use the previous window from which the user entered
<br>the taglist window.
<br>New features:
<br>Support for displaying the tag prototype as a tooltip.  Support for
<br>specifying additional commands after the taglist commands using the
<br>bar separator.
<br></td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=4924">taglist_40b3.zip</a></td>
-    <td class="roweven" valign="top" nowrap><b>4.0b3</b></td>
-    <td class="roweven" valign="top" nowrap><i>2005-12-28</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=5548">taglist_40b4.zip</a></td>
+    <td class="roweven" valign="top" nowrap><b>4.0b4</b></td>
+    <td class="roweven" valign="top" nowrap><i>2006-04-12</i></td>
     <td class="roweven" valign="top" nowrap>6.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=244">Yegappan Lakshmanan</a></i></td>
-    <td class="roweven" valign="top" width="2000">The following changes are made in this version:
<br>
<br>1. Delay loading of the taglist plugin to reduce the Vim startup time.
<br>2. Support for recursively adding multiples files to the taglist using the
<br>   ':TlistAddFilesRecursive' command.
<br>3. New ':TlistOpen' command to open and jump to the taglist window.
<br>4. New ':TlistToggle' command to supersede the ':Tlist' command.
<br>5. New 'Tlist_Close_On_Select' option for closing the taglist window
<br>   when a file is selected.
<br>6. New 'Tlist_Auto_Update' option to enable/disable processing of newly
<br>   edited files.
<br>7. New ':TlistLock' and ':TlistUnlock' commands to lock and unlock the
<br>   taglist.
<br>8. New 'Tlist_Highlight_Tag_On_BufEnter' option to enable/disable
<br>   highlighting of the current tag on entering a buffer.
<br>9. When the taglist buffer is created from a Vim session file, update
<br>   the taglist with the files from the session file.
<br>10. Change the background color used for highlighting file names in the
<br>    taglist window.
<br>11. When <Space> is pressed on a file name or a tag type name in the
<br>    taglist window, display information about the number of tags.
<br>12. Set the 'foldlevel' option to a high value in the taglist window.
<br>13. When refreshing the taglist window, process all the opened buffers.
<br>14. When moving between windows, disable and enable autocommands.
<br>15. When a file is selected from the taglist window, use a non-plugin
<br>    window to edit the file.
<br>16. If 'Tlist_Exit_OnlyWindow' is set and when exiting Vim, make sure
<br>    the '0 mark is set to the previous buffer.
<br>17. When using the taglist plugin with the winmanager plugin and
<br>    'Tlist_Process_File_Always' is set or the taglist menu is enabled,
<br>    sometimes, it is not possible to jump to other windows from the
<br>    taglist window using the keyboard. Fixed this problem.
<br>18. While opening files in a new window, use filenames instead of buffer
<br>    numbers.
<br></td>
+    <td class="roweven" valign="top" width="2000">Fixes:
<br>1. When 'Tlist_Show_One_File' is set, after few files are opened,
<br>   unable to select tags from the taglist window.
<br>2. When the taglist plugin is stored in a directory with space characters
<br>   in the name, the autoloading of taglist plugin fails.
<br>New features:
<br>1. Support for moving cursor to the taglist window when using the
<br>   ":TlistToggle" command.
<br>2. When all the tags in a file are of the same type, in the taglist
<br>   menu, don't display the tag type.
<br>3. Changed the '?' help key to 'F1' in the taglist window.
<br>4. Set the filetype for the taglist buffer to 'taglist'
<br>5. In Vim7, set the 'winfixwidth' option for the taglist window.
<br>6. When jumping between files using the ]] or <Tab> and [[ or <Backspace>
<br>   keys, wrap around at the first and last file.
<br></td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=4455">taglist_40b2.zip</a></td>
-    <td class="rowodd" valign="top" nowrap><b>4.0b2</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2005-08-01</i></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=4924">taglist_40b3.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>4.0b3</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2005-12-28</i></td>
     <td class="rowodd" valign="top" nowrap>6.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=244">Yegappan Lakshmanan</a></i></td>
-    <td class="rowodd" valign="top" width="2000">1. Added the TlistAddFiles command to add multiple files to the taglist window without opening them.
<br>2. Maintain the taglist window width and height across Vim window layout changes.
<br>3. Restore the Vim window location after the taglist window is closed.
<br>4. Use a simpler regular expression for parsing tags output.
<br>5. When a closed fold is selected in the taglist window, open the fold and jump to the file.
<br>6. When the Tlist_Auto_Open variable is set, open the taglist window only when a supported type of file is opened.
<br>7. When displaying tags for a single file, center the current tag line when opening a file.
<br>8. When jumping to a tag, add the previous location to the jump list.
<br>9. Fixed a problem with recording timestamps in the debug messages on MS-Windows.
<br>10. Set the ' mark when jumping to a selected tag.
<br></td>
+    <td class="rowodd" valign="top" width="2000">The following changes are made in this version:
<br>
<br>1. Delay loading of the taglist plugin to reduce the Vim startup time.
<br>2. Support for recursively adding multiples files to the taglist using the
<br>   ':TlistAddFilesRecursive' command.
<br>3. New ':TlistOpen' command to open and jump to the taglist window.
<br>4. New ':TlistToggle' command to supersede the ':Tlist' command.
<br>5. New 'Tlist_Close_On_Select' option for closing the taglist window
<br>   when a file is selected.
<br>6. New 'Tlist_Auto_Update' option to enable/disable processing of newly
<br>   edited files.
<br>7. New ':TlistLock' and ':TlistUnlock' commands to lock and unlock the
<br>   taglist.
<br>8. New 'Tlist_Highlight_Tag_On_BufEnter' option to enable/disable
<br>   highlighting of the current tag on entering a buffer.
<br>9. When the taglist buffer is created from a Vim session file, update
<br>   the taglist with the files from the session file.
<br>10. Change the background color used for highlighting file names in the
<br>    taglist window.
<br>11. When <Space> is pressed on a file name or a tag type name in the
<br>    taglist window, display information about the number of tags.
<br>12. Set the 'foldlevel' option to a high value in the taglist window.
<br>13. When refreshing the taglist window, process all the opened buffers.
<br>14. When moving between windows, disable and enable autocommands.
<br>15. When a file is selected from the taglist window, use a non-plugin
<br>    window to edit the file.
<br>16. If 'Tlist_Exit_OnlyWindow' is set and when exiting Vim, make sure
<br>    the '0 mark is set to the previous buffer.
<br>17. When using the taglist plugin with the winmanager plugin and
<br>    'Tlist_Process_File_Always' is set or the taglist menu is enabled,
<br>    sometimes, it is not possible to jump to other windows from the
<br>    taglist window using the keyboard. Fixed this problem.
<br>18. While opening files in a new window, use filenames instead of buffer
<br>    numbers.
<br></td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=4124">taglist_40b1.zip</a></td>
-    <td class="roweven" valign="top" nowrap><b>4.0b1</b></td>
-    <td class="roweven" valign="top" nowrap><i>2005-04-05</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=4455">taglist_40b2.zip</a></td>
+    <td class="roweven" valign="top" nowrap><b>4.0b2</b></td>
+    <td class="roweven" valign="top" nowrap><i>2005-08-01</i></td>
     <td class="roweven" valign="top" nowrap>6.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=244">Yegappan Lakshmanan</a></i></td>
-    <td class="roweven" valign="top" width="2000">Added support for optionally displaying the tags in the drop-down/popup menu. Performance enhancments, various bug fixes and debug support.</td>
+    <td class="roweven" valign="top" width="2000">1. Added the TlistAddFiles command to add multiple files to the taglist window without opening them.
<br>2. Maintain the taglist window width and height across Vim window layout changes.
<br>3. Restore the Vim window location after the taglist window is closed.
<br>4. Use a simpler regular expression for parsing tags output.
<br>5. When a closed fold is selected in the taglist window, open the fold and jump to the file.
<br>6. When the Tlist_Auto_Open variable is set, open the taglist window only when a supported type of file is opened.
<br>7. When displaying tags for a single file, center the current tag line when opening a file.
<br>8. When jumping to a tag, add the previous location to the jump list.
<br>9. Fixed a problem with recording timestamps in the debug messages on MS-Windows.
<br>10. Set the ' mark when jumping to a selected tag.
<br></td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=3340">taglist.zip</a></td>
-    <td class="rowodd" valign="top" nowrap><b>3.4</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2004-08-16</i></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=4124">taglist_40b1.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>4.0b1</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2005-04-05</i></td>
     <td class="rowodd" valign="top" nowrap>6.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=244">Yegappan Lakshmanan</a></i></td>
-    <td class="rowodd" valign="top" width="2000">1. Introduced a new option 'Tlist_Show_One_File" to display the tags for only the current buffer in the taglist window.
<br>2. Support for not displaying the tags for a user-deleted file in the taglist window.
<br>3. Fix for sharing the mouse single click map with other plugins</td>
+    <td class="rowodd" valign="top" width="2000">Added support for optionally displaying the tags in the drop-down/popup menu. Performance enhancments, various bug fixes and debug support.</td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=3091">taglist.zip</a></td>
-    <td class="roweven" valign="top" nowrap><b>3.3</b></td>
-    <td class="roweven" valign="top" nowrap><i>2004-06-01</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=3340">taglist.zip</a></td>
+    <td class="roweven" valign="top" nowrap><b>3.4</b></td>
+    <td class="roweven" valign="top" nowrap><i>2004-08-16</i></td>
     <td class="roweven" valign="top" nowrap>6.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=244">Yegappan Lakshmanan</a></i></td>
-    <td class="roweven" valign="top" width="2000">1. If Tlist_Ctags_Cmd variable is not set, on startup, check for the
<br>   presence of exuberant-ctags or ctags or tags in the PATH and set
<br>   Tlist_Ctags_Cmd variable accordingly. If none of the executable is
<br>   found, then the taglist plugin will not be not loaded.
<br>2. Added a new configuration variable Tlist_Enable_Fold_Column to
<br>   enable or disable fold columns in the taglist window.
<br>3. Added support for setting the taglist application name used by the
<br>   winmanager plugin and the cream package.
<br>4. Two new key mappings ([[ and ]]) are added to the taglist window to
<br>   move between files.
<br>5. When a file is modified, the taglist window will be automatically
<br>   updated (after going to some other window or buffer and then coming
<br>   to the modified buffer).
<br>6. Made the Tlist_Update_File_Tags() function as a global function.
<br>   This function can be used to add or update the tags for a new file.
<br>7. Updated the Tlist_Get_Tag_Prototype_By_Line() and the 
<br>   Tlist_Get_Tagname_By_Line() functions to get the tag name and tag
<br>   prototype for the specified line in a file.
<br></td>
+    <td class="roweven" valign="top" width="2000">1. Introduced a new option 'Tlist_Show_One_File" to display the tags for only the current buffer in the taglist window.
<br>2. Support for not displaying the tags for a user-deleted file in the taglist window.
<br>3. Fix for sharing the mouse single click map with other plugins</td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=2978">taglist.zip</a></td>
-    <td class="rowodd" valign="top" nowrap><b>3.2</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2004-04-25</i></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=3091">taglist.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>3.3</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2004-06-01</i></td>
     <td class="rowodd" valign="top" nowrap>6.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=244">Yegappan Lakshmanan</a></i></td>
-    <td class="rowodd" valign="top" width="2000">Added support for closing the tags tree for inactive files, removing the tags tree for deleted buffers, processing the tags when the taglist window is not opened, disabling the automatic highlighting of the current tag, displaying name of the current tag.</td>
+    <td class="rowodd" valign="top" width="2000">1. If Tlist_Ctags_Cmd variable is not set, on startup, check for the
<br>   presence of exuberant-ctags or ctags or tags in the PATH and set
<br>   Tlist_Ctags_Cmd variable accordingly. If none of the executable is
<br>   found, then the taglist plugin will not be not loaded.
<br>2. Added a new configuration variable Tlist_Enable_Fold_Column to
<br>   enable or disable fold columns in the taglist window.
<br>3. Added support for setting the taglist application name used by the
<br>   winmanager plugin and the cream package.
<br>4. Two new key mappings ([[ and ]]) are added to the taglist window to
<br>   move between files.
<br>5. When a file is modified, the taglist window will be automatically
<br>   updated (after going to some other window or buffer and then coming
<br>   to the modified buffer).
<br>6. Made the Tlist_Update_File_Tags() function as a global function.
<br>   This function can be used to add or update the tags for a new file.
<br>7. Updated the Tlist_Get_Tag_Prototype_By_Line() and the 
<br>   Tlist_Get_Tagname_By_Line() functions to get the tag name and tag
<br>   prototype for the specified line in a file.
<br></td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=2444">taglist.zip</a></td>
-    <td class="roweven" valign="top" nowrap><b>3.1</b></td>
-    <td class="roweven" valign="top" nowrap><i>2003-11-02</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=2978">taglist.zip</a></td>
+    <td class="roweven" valign="top" nowrap><b>3.2</b></td>
+    <td class="roweven" valign="top" nowrap><i>2004-04-25</i></td>
     <td class="roweven" valign="top" nowrap>6.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=244">Yegappan Lakshmanan</a></i></td>
-    <td class="roweven" valign="top" width="2000">Added support for saving and restoring taglist sessions. Separated the taglist documentation into a separate file in Vim help format.</td>
+    <td class="roweven" valign="top" width="2000">Added support for closing the tags tree for inactive files, removing the tags tree for deleted buffers, processing the tags when the taglist window is not opened, disabling the automatic highlighting of the current tag, displaying name of the current tag.</td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=2353">taglist.vim</a></td>
-    <td class="rowodd" valign="top" nowrap><b>3.0</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2003-09-24</i></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=2444">taglist.zip</a></td>
+    <td class="rowodd" valign="top" nowrap><b>3.1</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2003-11-02</i></td>
     <td class="rowodd" valign="top" nowrap>6.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=244">Yegappan Lakshmanan</a></i></td>
-    <td class="rowodd" valign="top" width="2000">Added support for displaying tags defined in multiple files.</td>
+    <td class="rowodd" valign="top" width="2000">Added support for saving and restoring taglist sessions. Separated the taglist documentation into a separate file in Vim help format.</td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=2334">taglist.vim</a></td>
-    <td class="roweven" valign="top" nowrap><b>2.8</b></td>
-    <td class="roweven" valign="top" nowrap><i>2003-09-14</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=2353">taglist.vim</a></td>
+    <td class="roweven" valign="top" nowrap><b>3.0</b></td>
+    <td class="roweven" valign="top" nowrap><i>2003-09-24</i></td>
     <td class="roweven" valign="top" nowrap>6.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=244">Yegappan Lakshmanan</a></i></td>
-    <td class="roweven" valign="top" width="2000">Added information about the taglist mailing list.</td>
+    <td class="roweven" valign="top" width="2000">Added support for displaying tags defined in multiple files.</td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=2250">taglist.vim</a></td>
-    <td class="rowodd" valign="top" nowrap><b>2.7</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2003-08-21</i></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=2334">taglist.vim</a></td>
+    <td class="rowodd" valign="top" nowrap><b>2.8</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2003-09-14</i></td>
     <td class="rowodd" valign="top" nowrap>6.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=244">Yegappan Lakshmanan</a></i></td>
-    <td class="rowodd" valign="top" width="2000">1. Added TlistUpdate command to update the taglist window.
<br>2. Made the taglist highlight groups user configurable.
<br>3. Fixed a problem in the taglist integration with the winmanager plugin</td>
+    <td class="rowodd" valign="top" width="2000">Added information about the taglist mailing list.</td>
 </tr>
 <tr>
-        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=2054">taglist.vim</a></td>
-    <td class="roweven" valign="top" nowrap><b>2.6</b></td>
-    <td class="roweven" valign="top" nowrap><i>2003-06-09</i></td>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=2250">taglist.vim</a></td>
+    <td class="roweven" valign="top" nowrap><b>2.7</b></td>
+    <td class="roweven" valign="top" nowrap><i>2003-08-21</i></td>
     <td class="roweven" valign="top" nowrap>6.0</td>
     <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=244">Yegappan Lakshmanan</a></i></td>
-    <td class="roweven" valign="top" width="2000">1. Added support for previewing a tag.
<br>2. Added the TlistClose command to close the taglist window
<br>3. Added the Tlist_Exit_OnlyWindow option to close the taglist window if only that window is open.</td>
+    <td class="roweven" valign="top" width="2000">1. Added TlistUpdate command to update the taglist window.
<br>2. Made the taglist highlight groups user configurable.
<br>3. Fixed a problem in the taglist integration with the winmanager plugin</td>
 </tr>
 <tr>
-        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=1941">taglist.vim</a></td>
-    <td class="rowodd" valign="top" nowrap><b>2.5</b></td>
-    <td class="rowodd" valign="top" nowrap><i>2003-04-25</i></td>
+        <td class="rowodd" valign="top" nowrap><a href="download_script.php?src_id=2054">taglist.vim</a></td>
+    <td class="rowodd" valign="top" nowrap><b>2.6</b></td>
+    <td class="rowodd" valign="top" nowrap><i>2003-06-09</i></td>
     <td class="rowodd" valign="top" nowrap>6.0</td>
     <td class="rowodd" valign="top"><i><a href="/account/profile.php?user_id=244">Yegappan Lakshmanan</a></i></td>
-    <td class="rowodd" valign="top" width="2000">Added support for highlighting the tag scope. Added support for displaying namespaces in C++ files. Updated the comments.</td>
+    <td class="rowodd" valign="top" width="2000">1. Added support for previewing a tag.
<br>2. Added the TlistClose command to close the taglist window
<br>3. Added the Tlist_Exit_OnlyWindow option to close the taglist window if only that window is open.</td>
+</tr>
+<tr>
+        <td class="roweven" valign="top" nowrap><a href="download_script.php?src_id=1941">taglist.vim</a></td>
+    <td class="roweven" valign="top" nowrap><b>2.5</b></td>
+    <td class="roweven" valign="top" nowrap><i>2003-04-25</i></td>
+    <td class="roweven" valign="top" nowrap>6.0</td>
+    <td class="roweven" valign="top"><i><a href="/account/profile.php?user_id=244">Yegappan Lakshmanan</a></i></td>
+    <td class="roweven" valign="top" width="2000">Added support for highlighting the tag scope. Added support for displaying namespaces in C++ files. Updated the comments.</td>
 </tr>
 </table>
 <!-- finish off the framework -->
@@ -361,6 +392,7 @@ Click on the package to download.
         </tr>
       </table>
     </td>
+
   </tr>
 </table>
 
@@ -399,8 +431,7 @@ Click on the package to download.
           </td>
 
     <td align="right" valign="top">
-      	<a href="http://www.webconceptgroup.net"><img src="/images/logo_sponsor_wcg.jpg" width="131" height="30" border="0" alt="Sponsored by Web Concept Group Inc."></a>
-	<a href="http://sourceforge.net"><img src="http://sflogo.sourceforge.net/sflogo.php?group_id=8&type=1" width="88" height="31" border="0" alt="SourceForge.net Logo" /></a>
+      		<a href="http://sourceforge.net/projects/vim" rel="nofollow"><img src="http://sflogo.sourceforge.net/sflogo.php?group_id=8&type=1" width="88" height="31" border="0" alt="SourceForge.net Logo" /></a>
     </td>
 
     <td><img src="/images/spacer.gif" width="5" height="1" alt=""></td>
@@ -412,6 +443,15 @@ Click on the package to download.
   </tr>
 </table>
 
+<!-- for Google +1 button -->
+<script type="text/javascript">
+  (function() {
+    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
+    po.src = 'https://apis.google.com/js/plusone.js';
+    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
+  })();
+</script>
+
 </body>
 </html>
 
diff --git a/plugin/taglist.vim b/plugin/taglist.vim
index 59901f6..86951ee 100644
--- a/plugin/taglist.vim
+++ b/plugin/taglist.vim
@@ -1,8 +1,8 @@
 " File: taglist.vim
 " Author: Yegappan Lakshmanan (yegappan AT yahoo DOT com)
-" Version: 4.5
-" Last Modified: September 21, 2007
-" Copyright: Copyright (C) 2002-2007 Yegappan Lakshmanan
+" Version: 4.6
+" Last Modified: Feb 26, 2013
+" Copyright: Copyright (C) 2002-2013 Yegappan Lakshmanan
 "            Permission is hereby granted to use and distribute this code,
 "            with or without modifications, provided that this copyright
 "            notice is copied with it. Like anything else that's free,
@@ -57,7 +57,12 @@
 " ****************** Do not modify after this line ************************
 
 " Line continuation used here
-let s:cpo_save = &cpo
+if !exists('s:cpo_save')
+    " If the taglist plugin is sourced recursively, the 'cpo' setting will be
+    " set to the default value.  To avoid this problem, save the cpo setting
+    " only when the plugin is loaded for the first time.
+    let s:cpo_save = &cpo
+endif
 set cpo&vim
 
 if !exists('loaded_taglist')
@@ -329,6 +334,7 @@ endif
 if !exists('s:tlist_sid')
     " Two or more versions of taglist plugin are installed. Don't
     " load this version of the plugin.
+    let &cpo = s:cpo_save
     finish
 endif
 
@@ -363,18 +369,28 @@ let loaded_taglist = 'available'
 "               tags of this type
 "
 
+" Ant language
+let s:tlist_def_ant_settings = 'ant;p:projects;t:targets'
+
 " assembly language
 let s:tlist_def_asm_settings = 'asm;d:define;l:label;m:macro;t:type'
 
 " aspperl language
-let s:tlist_def_aspperl_settings = 'asp;f:function;s:sub;v:variable'
+let s:tlist_def_aspperl_settings =
+            \ 'asp;c:constants;v:variable;f:function;s:subroutine'
 
 " aspvbs language
-let s:tlist_def_aspvbs_settings = 'asp;f:function;s:sub;v:variable'
+let s:tlist_def_aspvbs_settings =
+            \ 'asp;c:constants;v:variable;f:function;s:subroutine'
 
 " awk language
 let s:tlist_def_awk_settings = 'awk;f:function'
 
+" basic language
+let s:tlist_def_basic_settings =
+            \ 'basic;c:constant;l:label;g:enum;v:variable;' .
+            \ 't:type;f:function'
+
 " beta language
 let s:tlist_def_beta_settings = 'beta;f:fragment;s:slot;v:pattern'
 
@@ -394,6 +410,12 @@ let s:tlist_def_cs_settings = 'c#;d:macro;t:typedef;n:namespace;c:class;' .
 " cobol language
 let s:tlist_def_cobol_settings = 'cobol;d:data;f:file;g:group;p:paragraph;' .
                                \ 'P:program;s:section'
+" D programming language
+let s:tlist_def_d_settings = 'c++;n:namespace;v:variable;t:typedef;' .
+                        \'c:class;g:enum;s:struct;u:union;f:function'
+
+" Dosbatch
+let s:tlist_def_dosbatch_settings = 'dosbatch;l:labels;v:variables'
 
 " eiffel language
 let s:tlist_def_eiffel_settings = 'eiffel;c:class;f:feature'
@@ -404,20 +426,28 @@ let s:tlist_def_erlang_settings = 'erlang;d:macro;r:record;m:module;f:function'
 " expect (same as tcl) language
 let s:tlist_def_expect_settings = 'tcl;c:class;f:method;p:procedure'
 
+" flex
+let s:tlist_def_flex_settings = 'flex;v:global;c:classes;p:properties;'.
+            \ 'm:methods;f:functions;x:mxtags'
+
 " fortran language
 let s:tlist_def_fortran_settings = 'fortran;p:program;b:block data;' .
                     \ 'c:common;e:entry;i:interface;k:type;l:label;m:module;' .
                     \ 'n:namelist;t:derived;v:variable;f:function;s:subroutine'
 
+" GO language
+let s:tlist_def_go_settings = 'go;f:function;p:package;t:struct'
+
 " HTML language
-let s:tlist_def_html_settings = 'html;a:anchor;f:javascript function'
+let s:tlist_def_html_settings = 'html;a:anchor;f:function'
 
 " java language
 let s:tlist_def_java_settings = 'java;p:package;c:class;i:interface;' .
-                              \ 'f:field;m:method'
+                              \ 'g:enum;f:field;m:method'
 
 " javascript language
-let s:tlist_def_javascript_settings = 'javascript;f:function'
+let s:tlist_def_javascript_settings =
+            \ 'javascript;c:class;m:method;v:global;f:function;p:properties'
 
 " lisp language
 let s:tlist_def_lisp_settings = 'lisp;f:function'
@@ -428,6 +458,13 @@ let s:tlist_def_lua_settings = 'lua;f:function'
 " makefiles
 let s:tlist_def_make_settings = 'make;m:macro'
 
+" Matlab
+let s:tlist_def_matlab_settings = 'matlab;f:function'
+
+" Ocamal
+let s:tlist_def_ocamal_settings = 'ocamal;M:module;v:global;t:type;'.
+            \ 'c:class;f:function;m:method;C:constructor;e:exception'
+
 " pascal language
 let s:tlist_def_pascal_settings = 'pascal;f:function;p:procedure'
 
@@ -435,11 +472,15 @@ let s:tlist_def_pascal_settings = 'pascal;f:function;p:procedure'
 let s:tlist_def_perl_settings = 'perl;c:constant;l:label;p:package;s:subroutine'
 
 " php language
-let s:tlist_def_php_settings = 'php;c:class;d:constant;v:variable;f:function'
+let s:tlist_def_php_settings =
+            \ 'php;c:class;i:interface;d:constant;v:variable;f:function'
 
 " python language
 let s:tlist_def_python_settings = 'python;c:class;m:member;f:function'
 
+" cython language
+let tlist_pyrex_settings='python;c:classe;m:memder;f:function'
+
 " rexx language
 let s:tlist_def_rexx_settings = 'rexx;s:subroutine'
 
@@ -464,15 +505,28 @@ let s:tlist_def_slang_settings = 'slang;n:namespace;f:function'
 
 " sml language
 let s:tlist_def_sml_settings = 'sml;e:exception;c:functor;s:signature;' .
-                             \ 'r:structure;t:type;v:value;f:function'
+            \ 'r:structure;t:type;v:value;c:functor;f:function'
 
 " sql language
-let s:tlist_def_sql_settings = 'sql;c:cursor;F:field;P:package;r:record;' .
-            \ 's:subtype;t:table;T:trigger;v:variable;f:function;p:procedure'
+let s:tlist_def_sql_settings = 'sql;f:functions;' .
+           \ 'P:packages;p:procedures;t:tables;T:triggers;' .
+           \ 'v:variables;e:events;U:publications;R:services;' .
+           \ 'D:domains;x:MLTableScripts;y:MLConnScripts;z:MLProperties;'.
+           \ 'i:indexes;c:cursors;V:views;'.
+           \ 'd:prototypes;'.
+           \ 'l:local variables;'.
+           \ 'F:record fields;'.
+           \ 'L:block label;'.
+           \ 'r:records;'.
+           \ 's:subtypes'
 
 " tcl language
 let s:tlist_def_tcl_settings = 'tcl;c:class;f:method;m:method;p:procedure'
 
+" Tex
+let s:tlist_def_tex_settings = 'tex;c:chapters;s:sections;u:subsections;'.
+            \ 'b:subsubsections;p:parts;P:paragraphs;G:subparagraphs'
+
 " vera language
 let s:tlist_def_vera_settings = 'vera;c:class;d:macro;e:enumerator;' .
                                 \ 'f:function;g:enum;m:member;p:program;' .
@@ -483,8 +537,12 @@ let s:tlist_def_vera_settings = 'vera;c:class;d:macro;e:enumerator;' .
 let s:tlist_def_verilog_settings = 'verilog;m:module;c:constant;P:parameter;' .
             \ 'e:event;r:register;t:task;w:write;p:port;v:variable;f:function'
 
+" VHDL
+let s:tlist_def_vhdl_settings = 'vhdl;c:constant;t:type;T:subtype;r:record;e:entity;f:function;p:procedure;P:package'
+
 " vim language
-let s:tlist_def_vim_settings = 'vim;a:autocmds;v:variable;f:function'
+let s:tlist_def_vim_settings =
+            \ 'vim;v:variable;a:autocmds;c:commands;m:map;f:function'
 
 " yacc language
 let s:tlist_def_yacc_settings = 'yacc;l:label'
@@ -983,6 +1041,12 @@ endfunction
 function! s:Tlist_Get_Buffer_Filetype(bnum)
     let buf_ft = getbufvar(a:bnum, '&filetype')
 
+    " Check whether 'filetype' contains multiple file types separated by '.'
+    " If it is, then use the first file type
+    if buf_ft =~ '\.'
+        let buf_ft = matchstr(buf_ft, '[^.]\+')
+    endif
+
     if bufloaded(a:bnum)
         " For loaded buffers, the 'filetype' is already determined
         return buf_ft
@@ -1021,6 +1085,7 @@ function! s:Tlist_Discard_TagInfo(fidx)
         unlet! {fidx_i}_tag_type
         unlet! {fidx_i}_ttype_idx
         unlet! {fidx_i}_tag_proto
+        unlet! {fidx_i}_tag_scope
         unlet! {fidx_i}_tag_searchpat
         unlet! {fidx_i}_tag_linenum
         let i = i + 1
@@ -1206,6 +1271,7 @@ function! s:Tlist_Remove_File(file_idx, user_request)
             let s:tlist_{j}_{k}_tag_type = s:Tlist_Get_Tag_Type_By_Tag(i, k)
             let s:tlist_{j}_{k}_ttype_idx = s:tlist_{i}_{k}_ttype_idx
             let s:tlist_{j}_{k}_tag_proto = s:Tlist_Get_Tag_Prototype(i, k)
+            let s:tlist_{j}_{k}_tag_scope = s:Tlist_Get_Tag_Scope(i, k)
             let s:tlist_{j}_{k}_tag_searchpat = s:Tlist_Get_Tag_SearchPat(i, k)
             let s:tlist_{j}_{k}_tag_linenum = s:Tlist_Get_Tag_Linenum(i, k)
             let k = k + 1
@@ -1328,7 +1394,9 @@ function! s:Tlist_Window_Create()
     endif
 
     " Create the taglist window
-    exe 'silent! ' . win_dir . ' ' . win_size . 'split ' . wcmd
+    " Preserve the alternate file
+    let cmd_mod = (v:version >= 700) ? 'keepalt ' : ''
+    exe 'silent! ' . cmd_mod . win_dir . ' ' . win_size . 'split ' . wcmd
 
     " Save the new window position
     let s:tlist_winx = getwinposx()
@@ -1415,19 +1483,24 @@ function! s:Tlist_Window_Exit_Only_Window()
     " the '0 mark is correctly set to the previous buffer.
     if v:version < 700
 	if winbufnr(2) == -1
-	    bdelete
+            bdelete
 	    quit
 	endif
     else
 	if winbufnr(2) == -1
 	    if tabpagenr('$') == 1
 		" Only one tag page is present
-		bdelete
+                "
+                " When deleting the taglist buffer, autocommands cannot be
+                " disabled. If autocommands are disabled, then on exiting Vim,
+                " the window size will not be restored back to the original
+                " size.
+                bdelete
 		quit
 	    else
 		" More than one tab page is present. Close only the current
 		" tab page
-		close
+                close
 	    endif
 	endif
     endif
@@ -1526,6 +1599,9 @@ function! s:Tlist_Window_Init()
     " taglist window. So forcefully disable 'number' option for the taglist
     " window
     silent! setlocal nonumber
+    if exists('&relativenumber')
+        silent! setlocal norelativenumber
+    endif
 
     " Use fixed height when horizontally split window is used
     if g:Tlist_Use_Horiz_Window
@@ -1948,11 +2024,6 @@ function! s:Tlist_Window_Refresh_File(filename, ftype)
 
             let {fidx_ttype}_offset = ttype_start_lnum - file_start
 
-            " create a fold for this tag type
-            let fold_start = ttype_start_lnum
-            let fold_end = fold_start + {fidx_ttype}_count
-            exe fold_start . ',' . fold_end  . 'fold'
-
             " Adjust the cursor position
             if g:Tlist_Compact_Format == 0
                 exe ttype_start_lnum + {fidx_ttype}_count
@@ -1976,10 +2047,7 @@ function! s:Tlist_Window_Refresh_File(filename, ftype)
 
     let s:tlist_{fidx}_end = line('.') - 1
 
-    " Create a fold for the entire file
-    exe s:tlist_{fidx}_start . ',' . s:tlist_{fidx}_end . 'fold'
-    exe 'silent! ' . s:tlist_{fidx}_start . ',' .
-                \ s:tlist_{fidx}_end . 'foldopen!'
+    call s:Tlist_Create_Folds_For_File(fidx)
 
     " Goto the starting line for this file,
     exe s:tlist_{fidx}_start
@@ -2087,6 +2155,25 @@ function! s:Tlist_Get_Tag_Prototype(fidx, tidx)
     return {tproto_var}
 endfunction
 
+" Tlist_Get_Tag_Scope
+" Get the scope (e.g. C++ class) of a tag
+"
+" Tag scope is the last field after the 'line:<num>\t' field
+function! s:Tlist_Get_Tag_Scope(fidx, tidx)
+    let tscope_var = 's:tlist_' . a:fidx . '_' . a:tidx . '_tag_scope'
+
+    " Already parsed and have the tag scope
+    if exists(tscope_var)
+        return {tscope_var}
+    endif
+
+    " Parse and extract the tag scope
+    let tag_line = s:tlist_{a:fidx}_{a:tidx}_tag
+    let {tscope_var} = s:Tlist_Extract_Tag_Scope(tag_line)
+
+    return {tscope_var}
+endfunction
+
 " Tlist_Get_Tag_SearchPat
 function! s:Tlist_Get_Tag_SearchPat(fidx, tidx)
     let tpat_var = 's:tlist_' . a:fidx . '_' . a:tidx . '_tag_searchpat'
@@ -2186,7 +2273,7 @@ function! s:Tlist_Parse_Tagline(tag_line)
         " Add the tag scope, if it is available and is configured. Tag
         " scope is the last field after the 'line:<num>\t' field
         if g:Tlist_Display_Tag_Scope
-            let tag_scope = s:Tlist_Extract_Tag_Scope(a:tag_line)
+            let tag_scope = s:Tlist_Get_Tag_Scope(s:fidx, s:tidx)
             if tag_scope != ''
                 let ttxt = ttxt . ' [' . tag_scope . ']'
             endif
@@ -2275,9 +2362,13 @@ function! s:Tlist_Process_File(filename, ftype)
         " Contributed by: David Fishburn.
         let s:taglist_tempfile = fnamemodify(tempname(), ':h') .
                     \ '\taglist.cmd'
-        exe 'redir! > ' . s:taglist_tempfile
-        silent echo ctags_cmd
-        redir END
+        if v:version >= 700
+            call writefile([ctags_cmd], s:taglist_tempfile, "b")
+        else
+            exe 'redir! > ' . s:taglist_tempfile
+            silent echo ctags_cmd
+            redir END
+        endif
 
         call s:Tlist_Log_Msg('Cmd inside batch file: ' . ctags_cmd)
         let ctags_cmd = '"' . s:taglist_tempfile . '"'
@@ -2401,7 +2492,7 @@ function! s:Tlist_Process_File(filename, ftype)
                 " Add the tag scope, if it is available and is configured. Tag
                 " scope is the last field after the 'line:<num>\t' field
                 if g:Tlist_Display_Tag_Scope
-                    let tag_scope = s:Tlist_Extract_Tag_Scope(one_line)
+                    let tag_scope = s:Tlist_Get_Tag_Scope(fidx, tidx)
                     if tag_scope != ''
                         let ttxt = ttxt . ' [' . tag_scope . ']'
                     endif
@@ -2968,7 +3059,7 @@ function! s:Tlist_Change_Sort(caller, action, sort_type)
 
     if a:caller  == 'cmd'
         " Save the current line for later restoration
-        let curline = '\V\^' . getline('.') . '\$'
+        let curline = '\V\^' . escape(getline('.'), "\\") . '\$'
 
         call s:Tlist_Window_Refresh_File(s:tlist_{fidx}_filename,
                     \   s:tlist_{fidx}_filetype)
@@ -3019,7 +3110,7 @@ function! s:Tlist_Window_Update_File()
     match none
 
     " Save the current line for later restoration
-    let curline = '\V\^' . getline('.') . '\$'
+    let curline = '\V\^' . escape(getline('.'), "\\") . '\$'
 
     let s:tlist_{fidx}_valid = 0
 
@@ -3210,16 +3301,17 @@ function! s:Tlist_Window_Open_File(win_ctrl, filename, tagpat)
             exe "edit " . escape(a:filename, ' ')
         else
             " Open a new window
+            let cmd_mod = (v:version >= 700) ? 'keepalt ' : ''
             if g:Tlist_Use_Horiz_Window
-                exe 'leftabove split ' . escape(a:filename, ' ')
+                exe cmd_mod . 'leftabove split ' . escape(a:filename, ' ')
             else
                 if winbufnr(2) == -1
                     " Only the taglist window is present
                     if g:Tlist_Use_Right_Window
-                        exe 'leftabove vertical split ' .
+                        exe cmd_mod . 'leftabove vertical split ' .
                                     \ escape(a:filename, ' ')
                     else
-                        exe 'rightbelow vertical split ' .
+                        exe cmd_mod . 'rightbelow vertical split ' .
                                     \ escape(a:filename, ' ')
                     endif
 
@@ -3236,7 +3328,7 @@ function! s:Tlist_Window_Open_File(win_ctrl, filename, tagpat)
                 else
                     " A plugin or help window is also present
                     wincmd w
-                    exe 'leftabove split ' . escape(a:filename, ' ')
+                    exe cmd_mod . 'leftabove split ' . escape(a:filename, ' ')
                 endif
             endif
         endif
@@ -3413,7 +3505,8 @@ function! s:Tlist_Window_Show_Info()
     endif
 
     " Get the tag search pattern and display it
-    echo s:Tlist_Get_Tag_Prototype(fidx, tidx)
+    let proto = s:Tlist_Get_Tag_Prototype(fidx, tidx)
+    echo strpart(proto, 0, &columns - 1)
 endfunction
 
 " Tlist_Find_Nearest_Tag_Idx
@@ -3709,7 +3802,33 @@ function! Tlist_Get_Tagname_By_Line(...)
         return ""
     endif
 
-    return s:tlist_{fidx}_{tidx}_tag_name
+    let name = s:tlist_{fidx}_{tidx}_tag_name
+
+    if g:Tlist_Display_Tag_Scope
+        " Add the scope of the tag
+        let tag_scope = s:tlist_{fidx}_{tidx}_tag_scope
+        if tag_scope != ''
+            let name = name . ' [' . tag_scope . ']'
+        endif
+    endif
+
+    return name
+endfunction
+
+" Tlist_Get_Filenames
+" Return the list of file names in the taglist. The names are separated
+" by a newline ('\n')
+function! Tlist_Get_Filenames()
+    let fnames = ''
+
+    let i = 0
+
+    while i < s:tlist_file_count
+        let fnames = fnames . s:tlist_{i}_filename . "\n"
+        let i = i + 1
+    endwhile
+
+    return fnames
 endfunction
 
 " Tlist_Window_Move_To_File
@@ -4092,6 +4211,28 @@ function! s:Tlist_Window_Check_Auto_Open()
     endif
 endfunction
 
+" Tlist_Create_Folds_For_File
+" Create the folds in the taglist window for the specified file
+function! s:Tlist_Create_Folds_For_File(fidx)
+    let ftype = s:tlist_{a:fidx}_filetype
+
+    " Create the folds for each tag type in a file
+    let j = 1
+    while j <= s:tlist_{ftype}_count
+        let ttype = s:tlist_{ftype}_{j}_name
+        if s:tlist_{a:fidx}_{ttype}_count
+            let s = s:tlist_{a:fidx}_start + s:tlist_{a:fidx}_{ttype}_offset
+            let e = s + s:tlist_{a:fidx}_{ttype}_count
+            exe s . ',' . e . 'fold'
+        endif
+        let j = j + 1
+    endwhile
+
+    exe s:tlist_{a:fidx}_start . ',' . s:tlist_{a:fidx}_end . 'fold'
+    exe 'silent! ' . s:tlist_{a:fidx}_start . ',' .
+                \ s:tlist_{a:fidx}_end . 'foldopen!'
+endfunction
+
 " Tlist_Refresh_Folds
 " Remove and create the folds for all the files displayed in the taglist
 " window. Used after entering a tab. If this is not done, then the folds
@@ -4108,28 +4249,18 @@ function! s:Tlist_Refresh_Folds()
     " First remove all the existing folds
     normal! zE
 
-    " Create the folds for each in the tag list
-    let fidx = 0
-    while fidx < s:tlist_file_count
-        let ftype = s:tlist_{fidx}_filetype
-
-        " Create the folds for each tag type in a file
-        let j = 1
-        while j <= s:tlist_{ftype}_count
-            let ttype = s:tlist_{ftype}_{j}_name
-            if s:tlist_{fidx}_{ttype}_count
-                let s = s:tlist_{fidx}_start + s:tlist_{fidx}_{ttype}_offset
-                let e = s + s:tlist_{fidx}_{ttype}_count
-                exe s . ',' . e . 'fold'
-            endif
-            let j = j + 1
+    if g:Tlist_Show_One_File 
+        " If only one file is displayed in the taglist window, then there
+        " is no need to refresh the folds for the tags as the tags for the
+        " current file will be removed anyway.
+    else
+        " Create the folds for each file in the tag list
+        let fidx = 0
+        while fidx < s:tlist_file_count
+            call s:Tlist_Create_Folds_For_File(fidx)
+            let fidx = fidx + 1
         endwhile
-
-        exe s:tlist_{fidx}_start . ',' . s:tlist_{fidx}_end . 'fold'
-        exe 'silent! ' . s:tlist_{fidx}_start . ',' .
-                    \ s:tlist_{fidx}_end . 'foldopen!'
-        let fidx = fidx + 1
-    endwhile
+    endif
 
     exe save_wnum . 'wincmd w'
 endfunction

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-vim/vim-scripts.git



More information about the pkg-vim-maintainers mailing list