Add support for BrightScript; add taglist plugin
dblume

dblume commited on 2024-03-07 16:36:30
Showing 4 changed files, with 6183 additions and 0 deletions.

... ...
@@ -0,0 +1 @@
1
+au BufNewFile,BufRead *.brs setf brs
... ...
@@ -0,0 +1,135 @@
1
+" Vim syntax file
2
+" Language:	Roku BrightScript
3
+" Maintainer:	Dylan Doxey <dylan.doxey@gmail.com>
4
+" Last Change:
5
+"   2011 February 3rd
6
+
7
+" This is a hackified copy of vb.vim.
8
+
9
+" For version 5.x: Clear all syntax items
10
+" For version 6.x: Quit when a syntax file was already loaded
11
+if version < 600
12
+	syntax clear
13
+elseif exists("b:current_syntax")
14
+	finish
15
+endif
16
+
17
+" BRS is case insensitive
18
+syn case ignore
19
+
20
+syn keyword brsConditional If Then ElseIf Else EndIf End
21
+
22
+syn keyword brsOperator And Or Not
23
+syn keyword brsBoolean  True False
24
+
25
+syn match brsOperator "("
26
+syn match brsOperator ")"
27
+syn match brsOperator "\."
28
+syn match brsOperator "\["
29
+syn match brsOperator "]"
30
+syn match brsOperator "\^"
31
+syn match brsOperator "–"
32
+syn match brsOperator "+"
33
+syn match brsOperator "*"
34
+syn match brsOperator "/"
35
+syn match brsOperator "<"
36
+syn match brsOperator ">"
37
+syn match brsOperator "<>"
38
+syn match brsOperator "="
39
+syn match brsOperator "<="
40
+syn match brsOperator ">="
41
+syn match brsOperator "@"
42
+
43
+syn match brsOperator "{"
44
+syn match brsOperator ":"
45
+syn match brsOperator "}"
46
+
47
+syn keyword brsFunction For Each In EndFor
48
+syn keyword brsFunction Function EndFunction
49
+syn keyword brsFunction As Dim Exit
50
+syn keyword brsFunction Line_Num Next ObjFun Pos
51
+syn keyword brsFunction Print
52
+syn keyword brsFunction Return Rnd Step
53
+syn keyword brsFunction Stop Tab To Type
54
+syn keyword brsFunction Sub EndSub
55
+syn keyword brsFunction While ExitWhile EndWhile
56
+syn keyword brsFunction Type Rnd Box Run Eval GetLastRunCompileError GetLastRunRuntimeError
57
+syn keyword brsFunction Sleep Wait CreateObject GetInterface UpTime RebootSystem strtoi
58
+syn keyword brsFunction ListDir ReadAsciiFile WriteAsciiFile CopyFile MatchFiles
59
+syn keyword brsFunction DeleteFile DeleteDirectory FormatDrive
60
+syn keyword brsFunction UCase LCase Asc Chr Instr Left Len Mid Right Str Val
61
+syn keyword brsFunction Abs Atn Cos Csng Cdbl Exp Fix Int Log Sgn Sin Sqr Tan
62
+syn keyword brsFunction ifList ifEnum roList ifMessagePort roInt roFloat roString
63
+syn keyword brsFunction roBoolean roFunction roInvalid
64
+syn keyword brsFunction ifInt ifIntOps ifFloat ifString ifStringOps ifFunction ifBoolean
65
+syn keyword brsFunction orAssociativeArray roArray roXMLElement roXMLList
66
+
67
+syn keyword brsTypes Array Interface
68
+syn keyword brsTypes Integer Float Double Boolean String Object Dynamic
69
+
70
+syn keyword brsConst Invalid
71
+
72
+syn keyword brsTodo contained	TODO
73
+
74
+syn keyword brsMethods isListItemSelected isScreenClosed isListFocused isListSelected isListItemFocused isButtonPressed isPlaybackPosition isRemoteKeyPressed isRequestSucceeded isRequestFailed isRequestInterrupted isStatusMessage isPaused isResumed isCleared isPartialResult isFullResult isAdSelected isStorageDeviceInserted isStorageDeviceRemoved isStreamStarted GetType GetIndex GetMessage GetData GetInfo
75
+
76
+" syn keyword brsStatement
77
+" syn keyword brsKeyword As
78
+" syn keyword brsDefine
79
+
80
+" Numbers
81
+syn match brsNumber "\<\d\+\>"
82
+syn match brsNumber "\<\d\+\.\d*\>"
83
+syn match brsNumber "\.\d\+\>"
84
+syn match  brsFloat		"[-+]\=\<\d\+[eE][\-+]\=\d\+"
85
+syn match  brsFloat		"[-+]\=\<\d\+\.\d*\([eE][\-+]\=\d\+\)\="
86
+syn match  brsFloat		"[-+]\=\<\.\d\+\([eE][\-+]\=\d\+\)\="
87
+
88
+" String and Character contstants
89
+syn region  brsString		start=+"+  end=+"\|$+
90
+syn region  brsComment		start="\(^\|\s\)REM \s*" end="$" contains=brsTodo
91
+syn region  brsComment		start="\(^\|\s\)\'"   end="$" contains=brsTodo
92
+syn match   brsLineNumber	"^\d\+\(\s\|$\)"
93
+syn match   brsTypeSpecifier  "[a-zA-Z0-9][\$%&!#]"ms=s+1
94
+syn match   brsTypeSpecifier  "#[a-zA-Z0-9]"me=e-1
95
+
96
+" Define the default highlighting.
97
+" For version 5.7 and earlier: only when not done already
98
+" For version 5.8 and later: only when an item doesn't have highlighting yet
99
+if version >= 508 || !exists("did_brs_syntax_inits")
100
+
101
+	if version < 508
102
+		let did_brs_syntax_inits = 1
103
+		command -nargs=+ HiLink hi link <args>
104
+	else
105
+		command -nargs=+ HiLink hi def link <args>
106
+	endif
107
+
108
+	HiLink brsBoolean		Boolean
109
+	HiLink brsLineNumber	Comment
110
+	HiLink brsComment		Comment
111
+	HiLink brsConditional	Conditional
112
+	HiLink brsConst			Constant
113
+	HiLink brsDefine		Constant
114
+	HiLink brsError			Error
115
+	HiLink brsFunction		Identifier
116
+	HiLink brsIdentifier	Identifier
117
+	HiLink brsNumber		Number
118
+	HiLink brsFloat			Float
119
+	HiLink brsMethods		PreProc
120
+	HiLink brsOperator		Operator
121
+	HiLink brsRepeat		Repeat
122
+	HiLink brsString		String
123
+	HiLink brsStatement		Statement
124
+	HiLink brsKeyword		Statement
125
+	HiLink brsEvents		Special
126
+	HiLink brsTodo			Todo
127
+	HiLink brsTypes			Type
128
+	HiLink brsTypeSpecifier	Type
129
+
130
+	delcommand HiLink
131
+endif
132
+
133
+let b:current_syntax = "brs"
134
+
135
+" vim: ts=8
... ...
@@ -0,0 +1,1501 @@
1
+*taglist.txt*	Plugin for browsing source code
2
+
3
+Author: Yegappan Lakshmanan  (yegappan AT yahoo DOT com)
4
+For Vim version 6.0 and above
5
+Last change: 2007 May 24
6
+
7
+1. Overview 					|taglist-intro|
8
+2. Taglist on the internet			|taglist-internet|
9
+3. Requirements					|taglist-requirements|
10
+4. Installation 				|taglist-install|
11
+5. Usage 					|taglist-using|
12
+6. Options 					|taglist-options|
13
+7. Commands 					|taglist-commands|
14
+8. Global functions 				|taglist-functions|
15
+9. Extending 					|taglist-extend|
16
+10. FAQ 					|taglist-faq|
17
+11. License 					|taglist-license|
18
+12. Todo					|taglist-todo|
19
+
20
+==============================================================================
21
+						*taglist-intro*
22
+1. Overview~
23
+
24
+The "Tag List" plugin is a source code browser plugin for Vim. This plugin
25
+allows you to efficiently browse through source code files for different
26
+programming languages. The "Tag List" plugin provides the following features:
27
+
28
+    * Displays the tags (functions, classes, structures, variables, etc.) 
29
+      defined in a file in a vertically or horizontally split Vim window.
30
+    * In GUI Vim, optionally displays the tags in the Tags drop-down menu and
31
+      in the popup menu.
32
+    * Automatically updates the taglist window as you switch between
33
+      files/buffers. As you open new files, the tags defined in the new files
34
+      are added to the existing file list and the tags defined in all the
35
+      files are displayed grouped by the filename.
36
+    * When a tag name is selected from the taglist window, positions the
37
+      cursor at the definition of the tag in the source file.
38
+    * Automatically highlights the current tag name.
39
+    * Groups the tags by their type and displays them in a foldable tree.
40
+    * Can display the prototype and scope of a tag.
41
+    * Can optionally display the tag prototype instead of the tag name in the
42
+      taglist window.
43
+    * The tag list can be sorted either by name or by chronological order.
44
+    * Supports the following language files: Assembly, ASP, Awk, Beta, C,
45
+      C++, C#, Cobol, Eiffel, Erlang, Fortran, HTML, Java, Javascript, Lisp,
46
+      Lua, Make, Pascal, Perl, PHP, Python, Rexx, Ruby, Scheme, Shell, Slang,
47
+      SML, Sql, TCL, Verilog, Vim and Yacc.
48
+    * Can be easily extended to support new languages. Support for
49
+      existing languages can be modified easily.
50
+    * Provides functions to display the current tag name in the Vim status
51
+      line or the window title bar.
52
+    * The list of tags and files in the taglist can be saved and
53
+      restored across Vim sessions.
54
+    * Provides commands to get the name and prototype of the current tag.
55
+    * Runs in both console/terminal and GUI versions of Vim.
56
+    * Works with the winmanager plugin. Using the winmanager plugin, you
57
+      can use Vim plugins like the file explorer, buffer explorer and the
58
+      taglist plugin at the same time like an IDE.
59
+    * Can be used in both Unix and MS-Windows systems.
60
+
61
+==============================================================================
62
+						*taglist-internet*
63
+2. Taglist on the internet~
64
+
65
+The home page of the taglist plugin is at:
66
+>
67
+	http://vim-taglist.sourceforge.net/
68
+<
69
+You can subscribe to the taglist mailing list to post your questions or
70
+suggestions for improvement or to send bug reports. Visit the following page
71
+for subscribing to the mailing list:
72
+>
73
+	http://groups.yahoo.com/group/taglist
74
+<
75
+==============================================================================
76
+						*taglist-requirements*
77
+3. Requirements~
78
+
79
+The taglist plugin requires the following:
80
+
81
+    * Vim version 6.0 and above
82
+    * Exuberant ctags 5.0 and above
83
+
84
+The taglist plugin will work on all the platforms where the exuberant ctags
85
+utility and Vim are supported (this includes MS-Windows and Unix based
86
+systems).
87
+
88
+The taglist plugin relies on the exuberant ctags utility to dynamically
89
+generate the tag listing.  The exuberant ctags utility must be installed in
90
+your system to use this plugin.  The exuberant ctags utility is shipped with
91
+most of the Linux distributions.  You can download the exuberant ctags utility
92
+from
93
+>
94
+	http://ctags.sourceforge.net
95
+<
96
+The taglist plugin doesn't use or create a tags file and there is no need to
97
+create a tags file to use this plugin. The taglist plugin will not work with
98
+the GNU ctags or the Unix ctags utility.
99
+
100
+This plugin relies on the Vim "filetype" detection mechanism to determine the
101
+type of the current file. You have to turn on the Vim filetype detection by
102
+adding the following line to your .vimrc file:
103
+>
104
+	filetype on
105
+<
106
+The taglist plugin will not work if you run Vim in the restricted mode (using
107
+the -Z command-line argument).
108
+
109
+The taglist plugin uses the Vim system() function to invoke the exuberant
110
+ctags utility. If Vim is compiled without the system() function then you
111
+cannot use the taglist plugin. Some of the Linux distributions (Suse) compile
112
+Vim without the system() function for security reasons.
113
+
114
+==============================================================================
115
+						*taglist-install*
116
+4. Installation~
117
+
118
+1. Download the taglist.zip file and unzip the files to the $HOME/.vim or the
119
+   $HOME/vimfiles or the $VIM/vimfiles directory. After this step, you should
120
+   have the following two files (the directory structure should be preserved):
121
+
122
+	plugin/taglist.vim - main taglist plugin file
123
+	doc/taglist.txt    - documentation (help) file
124
+
125
+   Refer to the |add-plugin|and |'runtimepath'| Vim help pages for more
126
+   details about installing Vim plugins.
127
+2. Change to the $HOME/.vim/doc or $HOME/vimfiles/doc or $VIM/vimfiles/doc
128
+   directory, start Vim and run the ":helptags ." command to process the
129
+   taglist help file. Without this step, you cannot jump to the taglist help
130
+   topics.
131
+3. If the exuberant ctags utility is not present in one of the directories in
132
+   the PATH environment variable, then set the 'Tlist_Ctags_Cmd' variable to
133
+   point to the location of the exuberant ctags utility (not to the directory)
134
+   in the .vimrc file.
135
+4. If you are running a terminal/console version of Vim and the terminal
136
+   doesn't support changing the window width then set the
137
+   'Tlist_Inc_Winwidth' variable to 0 in the .vimrc file.
138
+5. Restart Vim.
139
+6. You can now use the ":TlistToggle" command to open/close the taglist
140
+   window. You can use the ":help taglist" command to get more information
141
+   about using the taglist plugin.
142
+
143
+To uninstall the taglist plugin, remove the plugin/taglist.vim and
144
+doc/taglist.txt files from the $HOME/.vim or $HOME/vimfiles directory.
145
+
146
+==============================================================================
147
+						*taglist-using*
148
+5. Usage~
149
+
150
+The taglist plugin can be used in several different ways.
151
+
152
+1. You can keep the taglist window open during the entire editing session. On
153
+   opening the taglist window, the tags defined in all the files in the Vim
154
+   buffer list will be displayed in the taglist window. As you edit files, the
155
+   tags defined in them will be added to the taglist window. You can select a
156
+   tag from the taglist window and jump to it. The current tag will be
157
+   highlighted in the taglist window. You can close the taglist window when
158
+   you no longer need the window.
159
+2. You can configure the taglist plugin to process the tags defined in all the
160
+   edited files always. In this configuration, even if the taglist window is
161
+   closed and the taglist menu is not displayed, the taglist plugin will
162
+   processes the tags defined in newly edited files. You can then open the
163
+   taglist window only when you need to select a tag and then automatically
164
+   close the taglist window after selecting the tag.
165
+3. You can configure the taglist plugin to display only the tags defined in
166
+   the current file in the taglist window. By default, the taglist plugin
167
+   displays the tags defined in all the files in the Vim buffer list. As you
168
+   switch between files, the taglist window will be refreshed to display only
169
+   the tags defined in the current file.
170
+4. In GUI Vim, you can use the Tags pull-down and popup menu created by the
171
+   taglist plugin to display the tags defined in the current file and select a
172
+   tag to jump to it. You can use the menu without opening the taglist window.
173
+   By default, the Tags menu is disabled.
174
+5. You can configure the taglist plugin to display the name of the current tag
175
+   in the Vim window status line or in the Vim window title bar. For this to
176
+   work without the taglist window or menu, you need to configure the taglist
177
+   plugin to process the tags defined in a file always.
178
+6. You can save the tags defined in multiple files to a taglist session file
179
+   and load it when needed. You can also configure the taglist plugin to not
180
+   update the taglist window when editing new files. You can then manually add
181
+   files to the taglist window.
182
+
183
+Opening the taglist window~
184
+You can open the taglist window using the ":TlistOpen" or the ":TlistToggle"
185
+commands. The ":TlistOpen" command opens the taglist window and jumps to it.
186
+The ":TlistToggle" command opens or closes (toggle) the taglist window and the
187
+cursor remains in the current window. If the 'Tlist_GainFocus_On_ToggleOpen'
188
+variable is set to 1, then the ":TlistToggle" command opens the taglist window
189
+and moves the cursor to the taglist window.
190
+
191
+You can map a key to invoke these commands. For example, the following command
192
+creates a normal mode mapping for the <F8> key to toggle the taglist window.
193
+>
194
+	nnoremap <silent> <F8> :TlistToggle<CR>
195
+<
196
+Add the above mapping to your ~/.vimrc or $HOME/_vimrc file.
197
+
198
+To automatically open the taglist window on Vim startup, set the
199
+'Tlist_Auto_Open' variable to 1.
200
+
201
+You can also open the taglist window on startup using the following command
202
+line:
203
+>
204
+	$ vim +TlistOpen
205
+<
206
+Closing the taglist window~
207
+You can close the taglist window from the taglist window by pressing 'q' or
208
+using the Vim ":q" command. You can also use any of the Vim window commands to
209
+close the taglist window. Invoking the ":TlistToggle" command when the taglist
210
+window is opened, closes the taglist window. You can also use the
211
+":TlistClose" command to close the taglist window.
212
+
213
+To automatically close the taglist window when a tag or file is selected, you
214
+can set the 'Tlist_Close_On_Select' variable to 1.  To exit Vim when only the
215
+taglist window is present, set the 'Tlist_Exit_OnlyWindow' variable to 1.
216
+
217
+Jumping to a tag or a file~
218
+You can select a tag in the taglist window either by pressing the <Enter> key
219
+or by double clicking the tag name using the mouse. To jump to a tag on a
220
+single mouse click set the 'Tlist_Use_SingleClick' variable to 1.
221
+
222
+If the selected file is already opened in a window, then the cursor is moved
223
+to that window. If the file is not currently opened in a window then the file
224
+is opened in the window used by the taglist plugin to show the previously
225
+selected file. If there are no usable windows, then the file is opened in a
226
+new window.  The file is not opened in special windows like the quickfix
227
+window, preview window and windows containing buffer with the 'buftype' option
228
+set.
229
+
230
+To jump to the tag in a new window, press the 'o' key. To open the file in the
231
+previous window (Ctrl-W_p) use the 'P' key. You can press the 'p' key to jump
232
+to the tag but still keep the cursor in the taglist window (preview).
233
+
234
+To open the selected file in a tab, use the 't' key.  If the file is already
235
+present in a tab then the cursor is moved to that tab otherwise the file is
236
+opened in a new tab. To jump to a tag in a new tab press Ctrl-t.  The taglist
237
+window is automatically opened in the newly created tab.
238
+
239
+Instead of jumping to a tag, you can open a file by pressing the <Enter> key
240
+or by double clicking the file name using the mouse.
241
+
242
+In the taglist window, you can use the [[ or <Backspace> key to jump to the
243
+beginning of the previous file. You can use the ]] or <Tab> key to jump to the
244
+beginning of the next file. When you reach the first or last file, the search
245
+wraps around and the jumps to the next/previous file.
246
+
247
+Highlighting the current tag~
248
+The taglist plugin automatically highlights the name of the current tag in the
249
+taglist window. The Vim |CursorHold| autocmd event is used for this. If the
250
+current tag name is not visible in the taglist window, then the taglist window
251
+contents are scrolled to make that tag name visible. You can also use the
252
+":TlistHighlightTag" command to force the highlighting of the current tag.
253
+
254
+The tag name is highlighted if no activity is performed for |'updatetime'|
255
+milliseconds. The default value for this Vim option is 4 seconds. To avoid
256
+unexpected problems, you should not set the |'updatetime'| option to a very
257
+low value.
258
+
259
+To disable the automatic highlighting of the current tag name in the taglist
260
+window, set the 'Tlist_Auto_Highlight_Tag' variable to zero.
261
+
262
+When entering a Vim buffer/window, the taglist plugin automatically highlights
263
+the current tag in that buffer/window.  If you like to disable the automatic
264
+highlighting of the current tag when entering a buffer, set the
265
+'Tlist_Highlight_Tag_On_BufEnter' variable to zero.
266
+
267
+Adding files to the taglist~
268
+When the taglist window is opened, all the files in the Vim buffer list are
269
+processed and the supported files are added to the taglist.  When you edit a
270
+file in Vim, the taglist plugin automatically processes this file and adds it
271
+to the taglist. If you close the taglist window, the tag information in the
272
+taglist is retained.
273
+
274
+To process files even when the taglist window is not open, set the
275
+'Tlist_Process_File_Always' variable to 1.
276
+
277
+You can manually add multiple files to the taglist without opening them using
278
+the ":TlistAddFiles" and the ":TlistAddFilesRecursive" commands.
279
+
280
+For example, to add all the C files in the /my/project/dir directory to the
281
+taglist, you can use the following command:
282
+>
283
+	:TlistAddFiles /my/project/dir/*.c
284
+<
285
+Note that when adding several files with a large number of tags or a large
286
+number of files, it will take several seconds to several minutes for the
287
+taglist plugin to process all the files. You should not interrupt the taglist
288
+plugin by pressing <CTRL-C>.
289
+
290
+You can recursively add multiple files from a directory tree using the
291
+":TlistAddFilesRecursive" command:
292
+>
293
+	:TlistAddFilesRecursive /my/project/dir *.c
294
+<
295
+This command takes two arguments. The first argument specifies the directory
296
+from which to recursively add the files. The second optional argument
297
+specifies the wildcard matching pattern for selecting the files to add. The
298
+default pattern is * and all the files are added.
299
+
300
+Displaying tags for only one file~
301
+The taglist window displays the tags for all the files in the Vim buffer list
302
+and all the manually added files. To display the tags for only the current
303
+active buffer, set the 'Tlist_Show_One_File' variable to 1.
304
+
305
+Removing files from the taglist~
306
+You can remove a file from the taglist window, by pressing the 'd' key when the
307
+cursor is on one of the tags listed for the file in the taglist window. The
308
+removed file will no longer be displayed in the taglist window in the current
309
+Vim session. To again display the tags for the file, open the file in a Vim
310
+window and then use the ":TlistUpdate" command or use ":TlistAddFiles" command
311
+to add the file to the taglist.
312
+
313
+When a buffer is removed from the Vim buffer list using the ":bdelete" or the
314
+":bwipeout" command, the taglist is updated to remove the stored information
315
+for this buffer.
316
+
317
+Updating the tags displayed for a file~
318
+The taglist plugin keeps track of the modification time of a file. When the
319
+modification time changes (the file is modified), the taglist plugin
320
+automatically updates the tags listed for that file. The modification time of
321
+a file is checked when you enter a window containing that file or when you
322
+load that file.
323
+
324
+You can also update or refresh the tags displayed for a file by pressing the
325
+"u" key in the taglist window. If an existing file is modified, after the file
326
+is saved, the taglist plugin automatically updates the tags displayed for the
327
+file.
328
+
329
+You can also use the ":TlistUpdate" command to update the tags for the current
330
+buffer after you made some changes to it. You should save the modified buffer
331
+before you update the taglist window. Otherwise the listed tags will not
332
+include the new tags created in the buffer. 
333
+
334
+If you have deleted the tags displayed for a file in the taglist window using
335
+the 'd' key, you can again display the tags for that file using the
336
+":TlistUpdate" command.
337
+
338
+Controlling the taglist updates~
339
+To disable the automatic processing of new files or modified files, you can
340
+set the 'Tlist_Auto_Update' variable to zero. When this variable is set to
341
+zero, the taglist is updated only when you use the ":TlistUpdate" command or
342
+the ":TlistAddFiles" or the ":TlistAddFilesRecursive" commands. You can use
343
+this option to control which files are added to the taglist.
344
+
345
+You can use the ":TlistLock" command to lock the taglist contents. After this
346
+command is executed, new files are not automatically added to the taglist.
347
+When the taglist is locked, you can use the ":TlistUpdate" command to add the
348
+current file or the ":TlistAddFiles" or ":TlistAddFilesRecursive" commands to
349
+add new files to the taglist.  To unlock the taglist, use the ":TlistUnlock"
350
+command.
351
+
352
+Displaying the tag prototype~
353
+To display the prototype of the tag under the cursor in the taglist window,
354
+press the space bar. If you place the cursor on a tag name in the taglist
355
+window, then the tag prototype is displayed at the Vim status line after
356
+|'updatetime'| milliseconds. The default value for the |'updatetime'| Vim
357
+option is 4 seconds.
358
+
359
+You can get the name and prototype of a tag without opening the taglist window
360
+and the taglist menu using the ":TlistShowTag" and the ":TlistShowPrototype"
361
+commands. These commands will work only if the current file is already present
362
+in the taglist. To use these commands without opening the taglist window, set
363
+the 'Tlist_Process_File_Always' variable to 1.
364
+
365
+You can use the ":TlistShowTag" command to display the name of the tag at or
366
+before the specified line number in the specified file.  If the file name and
367
+line number are not supplied, then this command will display the name of the
368
+current tag. For example,
369
+>
370
+	:TlistShowTag
371
+	:TlistShowTag myfile.java 100
372
+<
373
+You can use the ":TlistShowPrototype" command to display the prototype of the
374
+tag at or before the specified line number in the specified file.  If the file
375
+name and the line number are not supplied, then this command will display the
376
+prototype of the current tag.  For example,
377
+>
378
+	:TlistShowPrototype
379
+	:TlistShowPrototype myfile.c 50
380
+<
381
+In the taglist window, when the mouse is moved over a tag name, the tag
382
+prototype is displayed in a balloon. This works only in GUI versions where
383
+balloon evaluation is supported.
384
+
385
+Taglist window contents~
386
+The taglist window contains the tags defined in various files in the taglist
387
+grouped by the filename and by the tag type (variable, function, class, etc.).
388
+For tags with scope information (like class members, structures inside
389
+structures, etc.), the scope information is displayed in square brackets "[]"
390
+after the tag name.
391
+
392
+The contents of the taglist buffer/window are managed by the taglist plugin.
393
+The |'filetype'| for the taglist buffer is set to 'taglist'.  The Vim
394
+|'modifiable'| option is turned off for the taglist buffer. You should not
395
+manually edit the taglist buffer, by setting the |'modifiable'| flag. If you
396
+manually edit the taglist buffer contents, then the taglist plugin will be out
397
+of sync with the taglist buffer contents and the plugin will no longer work
398
+correctly. To redisplay the taglist buffer contents again, close the taglist
399
+window and reopen it.
400
+
401
+Opening and closing the tag and file tree~
402
+In the taglist window, the tag names are displayed as a foldable tree using
403
+the Vim folding support. You can collapse the tree using the '-' key or using
404
+the Vim |zc| fold command. You can open the tree using the '+' key or using
405
+the Vim |zo| fold command. You can open all the folds using the '*' key or
406
+using the Vim |zR| fold command. You can also use the mouse to open/close the
407
+folds. You can close all the folds using the '=' key. You should not manually
408
+create or delete the folds in the taglist window.
409
+
410
+To automatically close the fold for the inactive files/buffers and open only
411
+the fold for the current buffer in the taglist window, set the
412
+'Tlist_File_Fold_Auto_Close' variable to 1.
413
+
414
+Sorting the tags for a file~
415
+The tags displayed in the taglist window can be sorted either by their name or
416
+by their chronological order. The default sorting method is by the order in
417
+which the tags appear in a file. You can change the default sort method by
418
+setting the 'Tlist_Sort_Type' variable to either "name" or "order". You can
419
+sort the tags by their name by pressing the "s" key in the taglist window. You
420
+can again sort the tags by their chronological order using the "s" key. Each
421
+file in the taglist window can be sorted using different order.
422
+
423
+Zooming in and out of the taglist window~
424
+You can press the 'x' key in the taglist window to maximize the taglist
425
+window width/height. The window will be maximized to the maximum possible
426
+width/height without closing the other existing windows. You can again press
427
+'x' to restore the taglist window to the default width/height.
428
+
429
+						*taglist-session*
430
+Taglist Session~
431
+A taglist session refers to the group of files and their tags stored in the
432
+taglist in a Vim session.
433
+
434
+You can save and restore a taglist session (and all the displayed tags) using
435
+the ":TlistSessionSave" and ":TlistSessionLoad" commands.
436
+
437
+To save the information about the tags and files in the taglist to a file, use
438
+the ":TlistSessionSave" command and specify the filename:
439
+>
440
+	:TlistSessionSave <file name>
441
+<
442
+To load a saved taglist session, use the ":TlistSessionLoad" command: >
443
+
444
+	:TlistSessionLoad <file name>
445
+<
446
+When you load a taglist session file, the tags stored in the file will be
447
+added to the tags already stored in the taglist.
448
+
449
+The taglist session feature can be used to save the tags for large files or a
450
+group of frequently used files (like a project). By using the taglist session
451
+file, you can minimize the amount to time it takes to load/refresh the taglist
452
+for multiple files.
453
+
454
+You can create more than one taglist session file for multiple groups of
455
+files.
456
+
457
+Displaying the tag name in the Vim status line or the window title bar~
458
+You can use the Tlist_Get_Tagname_By_Line() function provided by the taglist
459
+plugin to display the current tag name in the Vim status line or the window
460
+title bar. Similarly, you can use the Tlist_Get_Tag_Prototype_By_Line()
461
+function to display the current tag prototype in the Vim status line or the
462
+window title bar.
463
+
464
+For example, the following command can be used to display the current tag name
465
+in the status line:
466
+>
467
+	:set statusline=%<%f%=%([%{Tlist_Get_Tagname_By_Line()}]%)
468
+<
469
+The following command can be used to display the current tag name in the
470
+window title bar:
471
+>
472
+	:set title titlestring=%<%f\ %([%{Tlist_Get_Tagname_By_Line()}]%)
473
+<
474
+Note that the current tag name can be displayed only after the file is
475
+processed by the taglist plugin. For this, you have to either set the
476
+'Tlist_Process_File_Always' variable to 1 or open the taglist window or use
477
+the taglist menu. For more information about configuring the Vim status line,
478
+refer to the documentation for the Vim |'statusline'| option.
479
+
480
+Changing the taglist window highlighting~
481
+The following Vim highlight groups are defined and used to highlight the
482
+various entities in the taglist window:
483
+
484
+    TagListTagName  - Used for tag names
485
+    TagListTagScope - Used for tag scope
486
+    TagListTitle    - Used for tag titles
487
+    TagListComment  - Used for comments
488
+    TagListFileName - Used for filenames
489
+
490
+By default, these highlight groups are linked to the standard Vim highlight
491
+groups. If you want to change the colors used for these highlight groups,
492
+prefix the highlight group name with 'My' and define it in your .vimrc or
493
+.gvimrc file: MyTagListTagName, MyTagListTagScope, MyTagListTitle,
494
+MyTagListComment and MyTagListFileName.  For example, to change the colors
495
+used for tag names, you can use the following command:
496
+>
497
+    :highlight MyTagListTagName guifg=blue ctermfg=blue
498
+<
499
+Controlling the taglist window~
500
+To use a horizontally split taglist window, instead of a vertically split
501
+window, set the 'Tlist_Use_Horiz_Window' variable to 1.
502
+
503
+To use a vertically split taglist window on the rightmost side of the Vim
504
+window, set the 'Tlist_Use_Right_Window' variable to 1.
505
+
506
+You can specify the width of the vertically split taglist window, by setting
507
+the 'Tlist_WinWidth' variable.  You can specify the height of the horizontally
508
+split taglist window, by setting the 'Tlist_WinHeight' variable.
509
+
510
+When opening a vertically split taglist window, the Vim window width is
511
+increased to accommodate the new taglist window. When the taglist window is
512
+closed, the Vim window is reduced. To disable this, set the
513
+'Tlist_Inc_Winwidth' variable to zero.
514
+
515
+To reduce the number of empty lines in the taglist window, set the
516
+'Tlist_Compact_Format' variable to 1.
517
+
518
+To not display the Vim fold column in the taglist window, set the
519
+'Tlist_Enable_Fold_Column' variable to zero.
520
+
521
+To display the tag prototypes instead of the tag names in the taglist window,
522
+set the 'Tlist_Display_Prototype' variable to 1.
523
+
524
+To not display the scope of the tags next to the tag names, set the
525
+'Tlist_Display_Tag_Scope' variable to zero.
526
+
527
+						*taglist-keys*
528
+Taglist window key list~
529
+The following table lists the description of the keys that can be used
530
+in the taglist window.
531
+
532
+  Key           Description~
533
+
534
+  <CR>          Jump to the location where the tag under cursor is
535
+                defined.
536
+  o             Jump to the location where the tag under cursor is
537
+                defined in a new window.
538
+  P             Jump to the tag in the previous (Ctrl-W_p) window.
539
+  p             Display the tag definition in the file window and
540
+                keep the cursor in the taglist window itself.
541
+  t             Jump to the tag in a new tab. If the file is already
542
+                opened in a tab, move to that tab.
543
+  Ctrl-t	Jump to the tag in a new tab.
544
+  <Space>       Display the prototype of the tag under the cursor.
545
+  		For file names, display the full path to the file,
546
+		file type and the number of tags. For tag types, display the
547
+		tag type and the number of tags.
548
+  u             Update the tags listed in the taglist window
549
+  s             Change the sort order of the tags (by name or by order)
550
+  d             Remove the tags for the file under the cursor
551
+  x             Zoom-in or Zoom-out the taglist window
552
+  +             Open a fold
553
+  -             Close a fold
554
+  *             Open all folds
555
+  =             Close all folds
556
+  [[		Jump to the beginning of the previous file
557
+  <Backspace>	Jump to the beginning of the previous file
558
+  ]]		Jump to the beginning of the next file
559
+  <Tab>		Jump to the beginning of the next file
560
+  q             Close the taglist window
561
+  <F1>          Display help
562
+
563
+The above keys will work in both the normal mode and the insert mode.
564
+
565
+						*taglist-menu*
566
+Taglist menu~
567
+When using GUI Vim, the taglist plugin can display the tags defined in the
568
+current file in the drop-down menu and the popup menu. By default, this
569
+feature is turned off. To turn on this feature, set the 'Tlist_Show_Menu'
570
+variable to 1.
571
+
572
+You can jump to a tag by selecting the tag name from the menu. You can use the
573
+taglist menu independent of the taglist window i.e. you don't need to open the
574
+taglist window to get the taglist menu.
575
+
576
+When you switch between files/buffers, the taglist menu is automatically
577
+updated to display the tags defined in the current file/buffer.
578
+
579
+The tags are grouped by their type (variables, functions, classes, methods,
580
+etc.) and displayed as a separate sub-menu for each type. If all the tags
581
+defined in a file are of the same type (e.g. functions), then the sub-menu is
582
+not used.
583
+
584
+If the number of items in a tag type submenu exceeds the value specified by
585
+the 'Tlist_Max_Submenu_Items' variable, then the submenu will be split into
586
+multiple submenus. The default setting for 'Tlist_Max_Submenu_Items' is 25.
587
+The first and last tag names in the submenu are used to form the submenu name.
588
+The menu items are prefixed by alpha-numeric characters for easy selection by
589
+keyboard.
590
+
591
+If the popup menu support is enabled (the |'mousemodel'| option contains
592
+"popup"), then the tags menu is added to the popup menu. You can access
593
+the popup menu by right clicking on the GUI window.
594
+
595
+You can regenerate the tags menu by selecting the 'Tags->Refresh menu' entry.
596
+You can sort the tags listed in the menu either by name or by order by
597
+selecting the 'Tags->Sort menu by->Name/Order' menu entry.
598
+
599
+You can tear-off the Tags menu and keep it on the side of the Vim window
600
+for quickly locating the tags.
601
+
602
+Using the taglist plugin with the winmanager plugin~
603
+You can use the taglist plugin with the winmanager plugin. This will allow you
604
+to use the file explorer, buffer explorer and the taglist plugin at the same
605
+time in different windows. To use the taglist plugin with the winmanager
606
+plugin, set 'TagList' in the 'winManagerWindowLayout' variable. For example,
607
+to use the file explorer plugin and the taglist plugin at the same time, use
608
+the following setting: >
609
+
610
+	let winManagerWindowLayout = 'FileExplorer|TagList'
611
+<
612
+Getting help~
613
+If you have installed the taglist help file (this file), then you can use the
614
+Vim ":help taglist-<keyword>" command to get help on the various taglist
615
+topics.
616
+
617
+You can press the <F1> key in the taglist window to display the help
618
+information about using the taglist window. If you again press the <F1> key,
619
+the help information is removed from the taglist window.
620
+
621
+						*taglist-debug*
622
+Debugging the taglist plugin~
623
+You can use the ":TlistDebug" command to enable logging of the debug messages
624
+from the taglist plugin. To display the logged debug messages, you can use the
625
+":TlistMessages" command. To disable the logging of the debug messages, use
626
+the ":TlistUndebug" command.
627
+
628
+You can specify a file name to the ":TlistDebug" command to log the debug
629
+messages to a file. Otherwise, the debug messages are stored in a script-local
630
+variable. In the later case, to minimize memory usage, only the last 3000
631
+characters from the debug messages are stored.
632
+
633
+==============================================================================
634
+						*taglist-options*
635
+6. Options~
636
+
637
+A number of Vim variables control the behavior of the taglist plugin. These
638
+variables are initialized to a default value. By changing these variables you
639
+can change the behavior of the taglist plugin. You need to change these
640
+settings only if you want to change the behavior of the taglist plugin. You
641
+should use the |:let| command in your .vimrc file to change the setting of any
642
+of these variables. 
643
+
644
+The configurable taglist variables are listed below. For a detailed
645
+description of these variables refer to the text below this table.
646
+
647
+|'Tlist_Auto_Highlight_Tag'|	Automatically highlight the current tag in the
648
+				taglist.
649
+|'Tlist_Auto_Open'|		Open the taglist window when Vim starts.
650
+|'Tlist_Auto_Update'|		Automatically update the taglist to include
651
+				newly edited files.
652
+|'Tlist_Close_On_Select'|	Close the taglist window when a file or tag is
653
+				selected.
654
+|'Tlist_Compact_Format'|	Remove extra information and blank lines from
655
+       				the taglist window.
656
+|'Tlist_Ctags_Cmd'|		Specifies the path to the ctags utility.
657
+|'Tlist_Display_Prototype'|	Show prototypes and not tags in the taglist
658
+				window.
659
+|'Tlist_Display_Tag_Scope'|	Show tag scope next to the tag name.
660
+|'Tlist_Enable_Fold_Column'|	Show the fold indicator column in the taglist
661
+				window.
662
+|'Tlist_Exit_OnlyWindow'|	Close Vim if the taglist is the only window.
663
+|'Tlist_File_Fold_Auto_Close'|	Close tag folds for inactive buffers.
664
+|'Tlist_GainFocus_On_ToggleOpen'|
665
+				Jump to taglist window on open.
666
+|'Tlist_Highlight_Tag_On_BufEnter'|
667
+				On entering a buffer, automatically highlight
668
+				the current tag.
669
+|'Tlist_Inc_Winwidth'|		Increase the Vim window width to accommodate
670
+				the taglist window.
671
+|'Tlist_Max_Submenu_Items'|	Maximum number of items in a tags sub-menu.
672
+|'Tlist_Max_Tag_Length'|	Maximum tag length used in a tag menu entry.
673
+|'Tlist_Process_File_Always'|	Process files even when the taglist window is
674
+				closed.
675
+|'Tlist_Show_Menu'|		Display the tags menu.
676
+|'Tlist_Show_One_File'|		Show tags for the current buffer only.
677
+|'Tlist_Sort_Type'|		Sort method used for arranging the tags.
678
+|'Tlist_Use_Horiz_Window'|	Use a horizontally split window for the
679
+				taglist window.
680
+|'Tlist_Use_Right_Window'|	Place the taglist window on the right side.
681
+|'Tlist_Use_SingleClick'|	Single click on a tag jumps to it.
682
+|'Tlist_WinHeight'|		Horizontally split taglist window height.
683
+|'Tlist_WinWidth'|		Vertically split taglist window width.
684
+
685
+						*'Tlist_Auto_Highlight_Tag'*
686
+Tlist_Auto_Highlight_Tag~
687
+The taglist plugin will automatically highlight the current tag in the taglist
688
+window. If you want to disable this, then you can set the
689
+'Tlist_Auto_Highlight_Tag' variable to zero. Note that even though the current
690
+tag highlighting is disabled, the tags for a new file will still be added to
691
+the taglist window.
692
+>
693
+	let Tlist_Auto_Highlight_Tag = 0
694
+<
695
+With the above variable set to 1, you can use the ":TlistHighlightTag" command
696
+to highlight the current tag.
697
+
698
+						*'Tlist_Auto_Open'*
699
+Tlist_Auto_Open~
700
+To automatically open the taglist window, when you start Vim, you can set the
701
+'Tlist_Auto_Open' variable to 1. By default, this variable is set to zero and
702
+the taglist window will not be opened automatically on Vim startup.
703
+>
704
+	let Tlist_Auto_Open = 1
705
+<
706
+The taglist window is opened only when a supported type of file is opened on
707
+Vim startup. For example, if you open text files, then the taglist window will
708
+not be opened.
709
+
710
+						*'Tlist_Auto_Update'*
711
+Tlist_Auto_Update~
712
+When a new file is edited, the tags defined in the file are automatically
713
+processed and added to the taglist. To stop adding new files to the taglist,
714
+set the 'Tlist_Auto_Update' variable to zero. By default, this variable is set
715
+to 1.
716
+>
717
+	let Tlist_Auto_Update = 0
718
+<
719
+With the above variable set to 1, you can use the ":TlistUpdate" command to
720
+add the tags defined in the current file to the taglist.
721
+
722
+						*'Tlist_Close_On_Select'*
723
+Tlist_Close_On_Select~
724
+If you want to close the taglist window when a file or tag is selected, then
725
+set the 'Tlist_Close_On_Select' variable to 1. By default, this variable is
726
+set zero and when you select a tag or file from the taglist window, the window
727
+is not closed.
728
+>
729
+	let Tlist_Close_On_Select = 1
730
+<
731
+						*'Tlist_Compact_Format'*
732
+Tlist_Compact_Format~
733
+By default, empty lines are used to separate different tag types displayed for
734
+a file and the tags displayed for different files in the taglist window. If
735
+you want to display as many tags as possible in the taglist window, you can
736
+set the 'Tlist_Compact_Format' variable to 1 to get a compact display.
737
+>
738
+	let Tlist_Compact_Format = 1
739
+<
740
+						*'Tlist_Ctags_Cmd'*
741
+Tlist_Ctags_Cmd~
742
+The 'Tlist_Ctags_Cmd' variable specifies the location (path) of the exuberant
743
+ctags utility. If exuberant ctags is present in any one of the directories in
744
+the PATH environment variable, then there is no need to set this variable.
745
+
746
+The exuberant ctags tool can be installed under different names.  When the
747
+taglist plugin starts up, if the 'Tlist_Ctags_Cmd' variable is not set, it
748
+checks for the names exuberant-ctags, exctags, ctags, ctags.exe and tags in
749
+the PATH environment variable.  If any one of the named executable is found,
750
+then the Tlist_Ctags_Cmd variable is set to that name.
751
+
752
+If exuberant ctags is not present in one of the directories specified in the
753
+PATH environment variable, then set this variable to point to the location of
754
+the ctags utility in your system. Note that this variable should point to the
755
+fully qualified exuberant ctags location and NOT to the directory in which
756
+exuberant ctags is installed. If the exuberant ctags tool is not found in
757
+either PATH or in the specified location, then the taglist plugin will not be
758
+loaded. Examples:
759
+>
760
+	let Tlist_Ctags_Cmd = 'd:\tools\ctags.exe'
761
+	let Tlist_Ctags_Cmd = '/usr/local/bin/ctags'
762
+<
763
+						*'Tlist_Display_Prototype'*
764
+Tlist_Display_Prototype~
765
+By default, only the tag name will be displayed in the taglist window. If you
766
+like to see tag prototypes instead of names, set the 'Tlist_Display_Prototype'
767
+variable to 1. By default, this variable is set to zero and only tag names
768
+will be displayed.
769
+>
770
+	let Tlist_Display_Prototype = 1
771
+<
772
+						*'Tlist_Display_Tag_Scope'*
773
+Tlist_Display_Tag_Scope~
774
+By default, the scope of a tag (like a C++ class) will be displayed in
775
+square brackets next to the tag name. If you don't want the tag scopes
776
+to be displayed, then set the 'Tlist_Display_Tag_Scope' to zero. By default,
777
+this variable is set to 1 and the tag scopes will be displayed.
778
+>
779
+	let Tlist_Display_Tag_Scope = 0
780
+<
781
+						*'Tlist_Enable_Fold_Column'*
782
+Tlist_Enable_Fold_Column~
783
+By default, the Vim fold column is enabled and displayed in the taglist
784
+window. If you wish to disable this (for example, when you are working with a
785
+narrow Vim window or terminal), you can set the 'Tlist_Enable_Fold_Column'
786
+variable to zero.
787
+>
788
+	let Tlist_Enable_Fold_Column = 1
789
+<
790
+						*'Tlist_Exit_OnlyWindow'*
791
+Tlist_Exit_OnlyWindow~
792
+If you want to exit Vim if only the taglist window is currently opened, then
793
+set the 'Tlist_Exit_OnlyWindow' variable to 1. By default, this variable is
794
+set to zero and the Vim instance will not be closed if only the taglist window
795
+is present.
796
+>
797
+	let Tlist_Exit_OnlyWindow = 1
798
+<
799
+						*'Tlist_File_Fold_Auto_Close'*
800
+Tlist_File_Fold_Auto_Close~
801
+By default, the tags tree displayed in the taglist window for all the files is
802
+opened. You can close/fold the tags tree for the files manually. To
803
+automatically close the tags tree for inactive files, you can set the
804
+'Tlist_File_Fold_Auto_Close' variable to 1. When this variable is set to 1,
805
+the tags tree for the current buffer is automatically opened and for all the
806
+other buffers is closed.
807
+>
808
+	let Tlist_File_Fold_Auto_Close = 1
809
+<
810
+					    *'Tlist_GainFocus_On_ToggleOpen'*
811
+Tlist_GainFocus_On_ToggleOpen~
812
+When the taglist window is opened using the ':TlistToggle' command, this
813
+option controls whether the cursor is moved to the taglist window or remains
814
+in the current window. By default, this option is set to 0 and the cursor
815
+remains in the current window. When this variable is set to 1, the cursor
816
+moves to the taglist window after opening the taglist window.
817
+>
818
+	let Tlist_GainFocus_On_ToggleOpen = 1
819
+<
820
+					    *'Tlist_Highlight_Tag_On_BufEnter'*
821
+Tlist_Highlight_Tag_On_BufEnter~
822
+When you enter a Vim buffer/window, the current tag in that buffer/window is
823
+automatically highlighted in the taglist window. If the current tag name is
824
+not visible in the taglist window, then the taglist window contents are
825
+scrolled to make that tag name visible. If you like to disable the automatic
826
+highlighting of the current tag when entering a buffer, you can set the
827
+'Tlist_Highlight_Tag_On_BufEnter' variable to zero. The default setting for
828
+this variable is 1.
829
+>
830
+	let Tlist_Highlight_Tag_On_BufEnter = 0
831
+<
832
+						*'Tlist_Inc_Winwidth'*
833
+Tlist_Inc_Winwidth~
834
+By default, when the width of the window is less than 100 and a new taglist
835
+window is opened vertically, then the window width is increased by the value
836
+set in the 'Tlist_WinWidth' variable to accommodate the new window. The value
837
+of this variable is used only if you are using a vertically split taglist
838
+window.
839
+
840
+If your terminal doesn't support changing the window width from Vim (older
841
+version of xterm running in a Unix system) or if you see any weird problems in
842
+the screen due to the change in the window width or if you prefer not to
843
+adjust the window width then set the 'Tlist_Inc_Winwidth' variable to zero.
844
+CAUTION: If you are using the MS-Windows version of Vim in a MS-DOS command
845
+window then you must set this variable to zero, otherwise the system may hang
846
+due to a Vim limitation (explained in :help win32-problems)
847
+>
848
+	let Tlist_Inc_Winwidth = 0
849
+<
850
+						*'Tlist_Max_Submenu_Items'*
851
+Tlist_Max_Submenu_Items~
852
+If a file contains too many tags of a particular type (function, variable,
853
+class, etc.), greater than that specified by the 'Tlist_Max_Submenu_Items'
854
+variable, then the menu for that tag type will be split into multiple
855
+sub-menus. The default setting for the 'Tlist_Max_Submenu_Items' variable is
856
+25.  This can be changed by setting the 'Tlist_Max_Submenu_Items' variable:
857
+>
858
+	let Tlist_Max_Submenu_Items = 20
859
+<
860
+The name of the submenu is formed using the names of the first and the last
861
+tag entries in that submenu.
862
+
863
+						*'Tlist_Max_Tag_Length'*
864
+Tlist_Max_Tag_Length~
865
+Only the first 'Tlist_Max_Tag_Length' characters from the tag names will be
866
+used to form the tag type submenu name. The default value for this variable is
867
+10.  Change the 'Tlist_Max_Tag_Length' setting if you want to include more or
868
+less characters:
869
+>
870
+	let Tlist_Max_Tag_Length = 10
871
+<
872
+						*'Tlist_Process_File_Always'*
873
+Tlist_Process_File_Always~
874
+By default, the taglist plugin will generate and process the tags defined in
875
+the newly opened files only when the taglist window is opened or when the
876
+taglist menu is enabled. When the taglist window is closed, the taglist plugin
877
+will stop processing the tags for newly opened files.
878
+
879
+You can set the 'Tlist_Process_File_Always' variable to 1 to generate the list
880
+of tags for new files even when the taglist window is closed and the taglist
881
+menu is disabled.
882
+>
883
+	let Tlist_Process_File_Always = 1
884
+<
885
+To use the ":TlistShowTag" and the ":TlistShowPrototype" commands without the
886
+taglist window and the taglist menu, you should set this variable to 1.
887
+
888
+						*'Tlist_Show_Menu'*
889
+Tlist_Show_Menu~
890
+When using GUI Vim, you can display the tags defined in the current file in a
891
+menu named "Tags". By default, this feature is turned off. To turn on this
892
+feature, set the 'Tlist_Show_Menu' variable to 1:
893
+>
894
+	let Tlist_Show_Menu = 1
895
+<
896
+						*'Tlist_Show_One_File'*
897
+Tlist_Show_One_File~
898
+By default, the taglist plugin will display the tags defined in all the loaded
899
+buffers in the taglist window. If you prefer to display the tags defined only
900
+in the current buffer, then you can set the 'Tlist_Show_One_File' to 1. When
901
+this variable is set to 1, as you switch between buffers, the taglist window
902
+will be refreshed to display the tags for the current buffer and the tags for
903
+the previous buffer will be removed.
904
+>
905
+	let Tlist_Show_One_File = 1
906
+<
907
+						*'Tlist_Sort_Type'*
908
+Tlist_Sort_Type~
909
+The 'Tlist_Sort_Type' variable specifies the sort order for the tags in the
910
+taglist window. The tags can be sorted either alphabetically by their name or
911
+by the order of their appearance in the file (chronological order). By
912
+default, the tag names will be listed by the order in which they are defined
913
+in the file. You can change the sort type (from name to order or from order to
914
+name) by pressing the "s" key in the taglist window. You can also change the
915
+default sort order by setting 'Tlist_Sort_Type' to "name" or "order":
916
+>
917
+	let Tlist_Sort_Type = "name"
918
+<
919
+						*'Tlist_Use_Horiz_Window'*
920
+Tlist_Use_Horiz_Window~
921
+Be default, the tag names are displayed in a vertically split window. If you
922
+prefer a horizontally split window, then set the 'Tlist_Use_Horiz_Window'
923
+variable to 1. If you are running MS-Windows version of Vim in a MS-DOS
924
+command window, then you should use a horizontally split window instead of a
925
+vertically split window. Also, if you are using an older version of xterm in a
926
+Unix system that doesn't support changing the xterm window width, you should
927
+use a horizontally split window.
928
+>
929
+	let Tlist_Use_Horiz_Window = 1
930
+<
931
+						*'Tlist_Use_Right_Window'*
932
+Tlist_Use_Right_Window~
933
+By default, the vertically split taglist window will appear on the left hand
934
+side. If you prefer to open the window on the right hand side, you can set the
935
+'Tlist_Use_Right_Window' variable to 1:
936
+>
937
+	let Tlist_Use_Right_Window = 1
938
+<
939
+						*'Tlist_Use_SingleClick'*
940
+Tlist_Use_SingleClick~
941
+By default, when you double click on the tag name using the left mouse 
942
+button, the cursor will be positioned at the definition of the tag. You 
943
+can set the 'Tlist_Use_SingleClick' variable to 1 to jump to a tag when
944
+you single click on the tag name using the mouse. By default this variable
945
+is set to zero.
946
+>
947
+	let Tlist_Use_SingleClick = 1
948
+<
949
+Due to a bug in Vim, if you set 'Tlist_Use_SingleClick' to 1 and try to resize
950
+the taglist window using the mouse, then Vim will crash. This problem is fixed
951
+in Vim 6.3 and above. In the meantime, instead of resizing the taglist window
952
+using the mouse, you can use normal Vim window resizing commands to resize the
953
+taglist window.
954
+
955
+						*'Tlist_WinHeight'*
956
+Tlist_WinHeight~
957
+The default height of the horizontally split taglist window is 10. This can be
958
+changed by modifying the 'Tlist_WinHeight' variable:
959
+>
960
+	let Tlist_WinHeight = 20
961
+<
962
+The |'winfixheight'| option is set for the taglist window, to maintain the
963
+height of the taglist window, when new Vim windows are opened and existing
964
+windows are closed.
965
+
966
+						*'Tlist_WinWidth'*
967
+Tlist_WinWidth~
968
+The default width of the vertically split taglist window is 30. This can be
969
+changed by modifying the 'Tlist_WinWidth' variable:
970
+>
971
+	let Tlist_WinWidth = 20
972
+<
973
+Note that the value of the |'winwidth'| option setting determines the minimum
974
+width of the current window. If you set the 'Tlist_WinWidth' variable to a
975
+value less than that of the |'winwidth'| option setting, then Vim will use the
976
+value of the |'winwidth'| option.
977
+
978
+When new Vim windows are opened and existing windows are closed, the taglist
979
+plugin will try to maintain the width of the taglist window to the size
980
+specified by the 'Tlist_WinWidth' variable.
981
+
982
+==============================================================================
983
+						*taglist-commands*
984
+7. Commands~
985
+
986
+The taglist plugin provides the following ex-mode commands:
987
+
988
+|:TlistAddFiles|	Add multiple files to the taglist.
989
+|:TlistAddFilesRecursive|
990
+			Add files recursively to the taglist.
991
+|:TlistClose|		Close the taglist window.
992
+|:TlistDebug|		Start logging of taglist debug messages.
993
+|:TlistLock|		Stop adding new files to the taglist.
994
+|:TlistMessages|	Display the logged taglist plugin debug messages.
995
+|:TlistOpen|		Open and jump to the taglist window.
996
+|:TlistSessionSave|	Save the information about files and tags in the
997
+			taglist to a session file.
998
+|:TlistSessionLoad|	Load the information about files and tags stored
999
+			in a session file to taglist.
1000
+|:TlistShowPrototype|	Display the prototype of the tag at or before the
1001
+		    	specified line number.
1002
+|:TlistShowTag|		Display the name of the tag defined at or before the
1003
+			specified line number.
1004
+|:TlistHighlightTag|	Highlight the current tag in the taglist window.
1005
+|:TlistToggle|		Open or close (toggle) the taglist window.
1006
+|:TlistUndebug|		Stop logging of taglist debug messages.
1007
+|:TlistUnlock|		Start adding new files to the taglist.
1008
+|:TlistUpdate|		Update the tags for the current buffer.
1009
+
1010
+						*:TlistAddFiles*
1011
+:TlistAddFiles {file(s)} [file(s) ...]
1012
+		Add one or more specified files to the taglist. You can
1013
+		specify multiple filenames using wildcards. To specify a
1014
+		file name with space character, you should escape the space
1015
+		character with a backslash.
1016
+		Examples:
1017
+>
1018
+		    :TlistAddFiles *.c *.cpp
1019
+		    :TlistAddFiles file1.html file2.html
1020
+<
1021
+		If you specify a large number of files, then it will take some
1022
+		time for the taglist plugin to process all of them. The
1023
+		specified files will not be edited in a Vim window and will
1024
+		not be added to the Vim buffer list.
1025
+
1026
+						*:TlistAddFilesRecursive*
1027
+:TlistAddFilesRecursive {directory} [ {pattern} ]
1028
+		Add files matching {pattern} recursively from the specified
1029
+		{directory} to the taglist. If {pattern} is not specified,
1030
+		then '*' is assumed. To specify the current directory, use "."
1031
+		for {directory}. To specify a directory name with space
1032
+		character, you should escape the space character with a
1033
+		backslash.
1034
+		Examples:
1035
+>
1036
+		    :TlistAddFilesRecursive myproject *.java
1037
+		    :TlistAddFilesRecursive smallproject
1038
+<
1039
+		If large number of files are present in the specified
1040
+		directory tree, then it will take some time for the taglist
1041
+		plugin to process all of them.
1042
+
1043
+						*:TlistClose*
1044
+:TlistClose	Close the taglist window. This command can be used from any
1045
+		one of the Vim windows.
1046
+
1047
+						*:TlistDebug*
1048
+:TlistDebug [filename]
1049
+		Start logging of debug messages from the taglist plugin.
1050
+		If {filename} is specified, then the debug messages are stored
1051
+		in the specified file. Otherwise, the debug messages are
1052
+		stored in a script local variable. If the file {filename} is
1053
+		already present, then it is overwritten.
1054
+
1055
+						*:TlistLock*
1056
+:TlistLock
1057
+		Lock the taglist and don't process new files. After this
1058
+		command is executed, newly edited files will not be added to
1059
+		the taglist.
1060
+
1061
+						*:TlistMessages*
1062
+:TlistMessages
1063
+		Display the logged debug messages from the taglist plugin
1064
+		in a window.  This command works only when logging to a
1065
+		script-local variable.
1066
+
1067
+						*:TlistOpen*
1068
+:TlistOpen	Open and jump to the taglist window. Creates the taglist
1069
+		window, if the window is not opened currently. After executing
1070
+		this command, the cursor is moved to the taglist window.  When
1071
+		the taglist window is opened for the first time, all the files
1072
+		in the buffer list are processed and the tags defined in them
1073
+		are displayed in the taglist window.
1074
+
1075
+						*:TlistSessionSave*
1076
+:TlistSessionSave {filename}
1077
+		Saves the information about files and tags in the taglist to
1078
+		the specified file. This command can be used to save and
1079
+		restore the taglist contents across Vim sessions.
1080
+
1081
+						*:TlistSessionLoad*
1082
+:TlistSessionLoad {filename}
1083
+		Load the information about files and tags stored in the
1084
+		specified session file to the taglist.
1085
+
1086
+						*:TlistShowPrototype*
1087
+:TlistShowPrototype [filename] [linenumber]
1088
+		Display the prototype of the tag at or before the specified
1089
+		line number. If the file name and the line number are not
1090
+		specified, then the current file name and line number are
1091
+		used. A tag spans multiple lines starting from the line where
1092
+		it is defined to the line before the next tag. This command
1093
+		displays the prototype for the tag for any line number in this
1094
+		range. 
1095
+
1096
+						*:TlistShowTag*
1097
+:TlistShowTag [filename] [linenumber]
1098
+		Display the name of the tag defined at or before the specified
1099
+		line number. If the file name and the line number are not
1100
+		specified, then the current file name and line number are
1101
+		used. A tag spans multiple lines starting from the line where
1102
+		it is defined to the line before the next tag. This command
1103
+		displays the tag name for any line number in this range. 
1104
+
1105
+						*:TlistHighlightTag*
1106
+:TlistHighlightTag
1107
+		Highlight the current tag in the taglist window. By default,
1108
+		the taglist plugin periodically updates the taglist window to
1109
+		highlight the current tag. This command can be used to force
1110
+		the taglist plugin to highlight the current tag.
1111
+
1112
+						*:TlistToggle*
1113
+:TlistToggle	Open or close (toggle) the taglist window. Opens the taglist
1114
+		window, if the window is not opened currently. Closes the
1115
+		taglist window, if the taglist window is already opened. When
1116
+		the taglist window is opened for the first time, all the files
1117
+		in the buffer list are processed and the tags are displayed in
1118
+		the taglist window. After executing this command, the cursor
1119
+		is not moved from the current window to the taglist window.
1120
+
1121
+						*:TlistUndebug*
1122
+:TlistUndebug
1123
+		Stop logging of debug messages from the taglist plugin.
1124
+
1125
+						*:TlistUnlock*
1126
+:TlistUnlock
1127
+		Unlock the taglist and start processing newly edited files.
1128
+
1129
+						*:TlistUpdate*
1130
+:TlistUpdate	Update the tags information for the current buffer. This
1131
+		command can be used to re-process the current file/buffer and
1132
+		get the tags information. As the taglist plugin uses the file
1133
+		saved in the disk (instead of the file displayed in a Vim
1134
+		buffer), you should save a modified buffer before you update
1135
+		the taglist. Otherwise the listed tags will not include the
1136
+		new tags created in the buffer. You can use this command even
1137
+		when the taglist window is not opened.
1138
+
1139
+==============================================================================
1140
+						*taglist-functions*
1141
+8. Global functions~
1142
+
1143
+The taglist plugin provides several global functions that can be used from
1144
+other Vim plugins to interact with the taglist plugin. These functions are
1145
+described below.
1146
+
1147
+|Tlist_Update_File_Tags()|		Update the tags for the specified file
1148
+|Tlist_Get_Tag_Prototype_By_Line()|	Return the prototype of the tag at or
1149
+				    	before the specified line number in the
1150
+				    	specified file.
1151
+|Tlist_Get_Tagname_By_Line()|		Return the name of the tag at or
1152
+					before the specified line number in
1153
+					the specified file.
1154
+|Tlist_Set_App()|			Set the name of the application
1155
+					controlling the taglist window.
1156
+
1157
+					    *Tlist_Update_File_Tags()*
1158
+Tlist_Update_File_Tags({filename}, {filetype})
1159
+		Update the tags for the file {filename}. The second argument
1160
+		specifies the Vim filetype for the file. If the taglist plugin
1161
+		has not processed the file previously, then the exuberant
1162
+		ctags tool is invoked to generate the tags for the file.
1163
+
1164
+					    *Tlist_Get_Tag_Prototype_By_Line()*
1165
+Tlist_Get_Tag_Prototype_By_Line([{filename}, {linenumber}])
1166
+		Return the prototype of the tag at or before the specified
1167
+		line number in the specified file. If the filename and line
1168
+		number are not specified, then the current buffer name and the
1169
+		current line number are used.
1170
+
1171
+					    *Tlist_Get_Tagname_By_Line()*
1172
+Tlist_Get_Tagname_By_Line([{filename}, {linenumber}])
1173
+		Return the name of the tag at or before the specified line
1174
+		number in the specified file. If the filename and line number
1175
+		are not specified, then the current buffer name and the
1176
+		current line number are used.
1177
+
1178
+					    *Tlist_Set_App()*
1179
+Tlist_Set_App({appname})
1180
+		Set the name of the plugin that controls the taglist plugin
1181
+		window and buffer. This can be used to integrate the taglist
1182
+		plugin with other Vim plugins.
1183
+		
1184
+		For example, the winmanager plugin and the Cream package use
1185
+		this function and specify the appname as "winmanager" and
1186
+		"cream" respectively.
1187
+		
1188
+		By default, the taglist plugin is a stand-alone plugin and
1189
+		controls the taglist window and buffer. If the taglist window
1190
+		is controlled by an external plugin, then the appname should
1191
+		be set appropriately.
1192
+
1193
+==============================================================================
1194
+						*taglist-extend*
1195
+9. Extending~
1196
+
1197
+The taglist plugin supports all the languages supported by the exuberant ctags
1198
+tool, which includes the following languages: Assembly, ASP, Awk, Beta, C,
1199
+C++, C#, Cobol, Eiffel, Erlang, Fortran, HTML, Java, Javascript, Lisp, Lua,
1200
+Make, Pascal, Perl, PHP, Python, Rexx, Ruby, Scheme, Shell, Slang, SML, Sql,
1201
+TCL, Verilog, Vim and Yacc.
1202
+
1203
+You can extend the taglist plugin to add support for new languages and also
1204
+modify the support for the above listed languages.
1205
+
1206
+You should NOT make modifications to the taglist plugin script file to add
1207
+support for new languages. You will lose these changes when you upgrade to the
1208
+next version of the taglist plugin. Instead you should follow the below
1209
+described instructions to extend the taglist plugin.
1210
+
1211
+You can extend the taglist plugin by setting variables in the .vimrc or _vimrc
1212
+file. The name of these variables depends on the language name and is
1213
+described below.
1214
+
1215
+Modifying support for an existing language~
1216
+To modify the support for an already supported language, you have to set the
1217
+tlist_xxx_settings variable in the ~/.vimrc or $HOME/_vimrc file. Replace xxx
1218
+with the Vim filetype name for the language file.  For example, to modify the
1219
+support for the perl language files, you have to set the tlist_perl_settings
1220
+variable. To modify the support for java files, you have to set the
1221
+tlist_java_settings variable.
1222
+
1223
+To determine the filetype name used by Vim for a file, use the following
1224
+command in the buffer containing the file:
1225
+
1226
+	:set filetype
1227
+
1228
+The above command will display the Vim filetype for the current buffer.
1229
+
1230
+The format of the value set in the tlist_xxx_settings variable is
1231
+
1232
+    <language_name>;flag1:name1;flag2:name2;flag3:name3
1233
+
1234
+The different fields in the value are separated by the ';' character.
1235
+
1236
+The first field 'language_name' is the name used by exuberant ctags to refer
1237
+to this language file. This name can be different from the file type name used
1238
+by Vim. For example, for C++, the language name used by ctags is 'c++' but the
1239
+filetype name used by Vim is 'cpp'. To get the list of language names
1240
+supported by exuberant ctags, use the following command:
1241
+
1242
+	$ ctags --list-maps=all
1243
+
1244
+The remaining fields follow the format "flag:name". The sub-field 'flag' is
1245
+the language specific flag used by exuberant ctags to generate the
1246
+corresponding tags. For example, for the C language, to list only the
1247
+functions, the 'f' flag is used. To get the list of flags supported by
1248
+exuberant ctags for the various languages use the following command:
1249
+
1250
+	$ ctags --list-kinds=all
1251
+
1252
+The sub-field 'name' specifies the title text to use for displaying the tags
1253
+of a particular type. For example, 'name' can be set to 'functions'. This
1254
+field can be set to any text string name.
1255
+
1256
+For example, to list only the classes and functions defined in a C++ language
1257
+file, add the following line to your .vimrc file:
1258
+
1259
+	let tlist_cpp_settings = 'c++;c:class;f:function'
1260
+
1261
+In the above setting, 'cpp' is the Vim filetype name and 'c++' is the name
1262
+used by the exuberant ctags tool. 'c' and 'f' are the flags passed to
1263
+exuberant ctags to list C++ classes and functions and 'class' is the title
1264
+used for the class tags and 'function' is the title used for the function tags
1265
+in the taglist window.
1266
+
1267
+For example, to display only functions defined in a C file and to use "My
1268
+Functions" as the title for the function tags, use
1269
+
1270
+	let tlist_c_settings = 'c;f:My Functions'
1271
+
1272
+When you set the tlist_xxx_settings variable, you will override the default
1273
+setting used by the taglist plugin for the 'xxx' language. You cannot add to
1274
+the default options used by the taglist plugin for a particular file type. To
1275
+add to the options used by the taglist plugin for a language, copy the option
1276
+values from the taglist plugin file to your .vimrc file and modify it.
1277
+
1278
+Adding support for a new language~
1279
+If you want to add support for a new language to the taglist plugin, you need
1280
+to first extend the exuberant ctags tool. For more information about extending
1281
+exuberant ctags, visit the following page:
1282
+
1283
+    http://ctags.sourceforge.net/EXTENDING.html
1284
+
1285
+To add support for a new language, set the tlist_xxx_settings variable in the
1286
+~/.vimrc file appropriately as described above. Replace 'xxx' in the variable
1287
+name with the Vim filetype name for the new language.
1288
+
1289
+For example, to extend the taglist plugin to support the latex language, you
1290
+can use the following line (assuming, you have already extended exuberant
1291
+ctags to support the latex language):
1292
+
1293
+	let tlist_tex_settings='latex;b:bibitem;c:command;l:label'
1294
+
1295
+With the above line, when you edit files of filetype "tex" in Vim, the taglist
1296
+plugin will invoke the exuberant ctags tool passing the "latex" filetype and
1297
+the flags b, c and l to generate the tags. The text heading 'bibitem',
1298
+'command' and 'label' will be used in the taglist window for the tags which
1299
+are generated for the flags b, c and l respectively.
1300
+
1301
+==============================================================================
1302
+						*taglist-faq*
1303
+10. Frequently Asked Questions~
1304
+
1305
+Q. The taglist plugin doesn't work. The taglist window is empty and the tags
1306
+   defined in a file are not displayed. 
1307
+A. Are you using Vim version 6.0 and above? The taglist plugin relies on the
1308
+   features supported by Vim version 6.0 and above. You can use the following
1309
+   command to get the Vim version:
1310
+>
1311
+	$ vim --version
1312
+<
1313
+   Are you using exuberant ctags version 5.0 and above? The taglist plugin
1314
+   relies on the features supported by exuberant ctags and will not work with
1315
+   GNU ctags or the Unix ctags utility. You can use the following command to
1316
+   determine whether the ctags installed in your system is exuberant ctags:
1317
+>
1318
+	$ ctags --version
1319
+<
1320
+   Is exuberant ctags present in one of the directories in your PATH? If not,
1321
+   you need to set the Tlist_Ctags_Cmd variable to point to the location of
1322
+   exuberant ctags. Use the following Vim command to verify that this is setup
1323
+   correctly:
1324
+>
1325
+	:echo system(Tlist_Ctags_Cmd . ' --version')
1326
+<
1327
+   The above command should display the version information for exuberant
1328
+   ctags.
1329
+
1330
+   Did you turn on the Vim filetype detection? The taglist plugin relies on
1331
+   the filetype detected by Vim and passes the filetype to the exuberant ctags
1332
+   utility to parse the tags. Check the output of the following Vim command:
1333
+>
1334
+	:filetype
1335
+<
1336
+   The output of the above command should contain "filetype detection:ON".
1337
+   To turn on the filetype detection, add the following line to the .vimrc or
1338
+   _vimrc file:
1339
+>
1340
+	filetype on
1341
+<
1342
+   Is your version of Vim compiled with the support for the system() function?
1343
+   The following Vim command should display 1:
1344
+>
1345
+	:echo exists('*system')
1346
+<
1347
+   In some Linux distributions (particularly Suse Linux), the default Vim
1348
+   installation is built without the support for the system() function. The
1349
+   taglist plugin uses the system() function to invoke the exuberant ctags
1350
+   utility. You need to rebuild Vim after enabling the support for the
1351
+   system() function. If you use the default build options, the system()
1352
+   function will be supported. 
1353
+
1354
+   Do you have the |'shellslash'| option set? You can try disabling the
1355
+   |'shellslash'| option. When the taglist plugin invokes the exuberant ctags
1356
+   utility with the path to the file, if the incorrect slashes are used, then
1357
+   you will see errors.
1358
+   
1359
+   Check the shell related Vim options values using the following command:
1360
+>
1361
+	:set shell? shellcmdflag? shellpipe?
1362
+	:set shellquote? shellredir? shellxquote?
1363
+<
1364
+   If these options are set in your .vimrc or _vimrc file, try removing those
1365
+   lines.
1366
+
1367
+   Are you using a Unix shell in a MS-Windows environment? For example,
1368
+   the Unix shell from the MKS-toolkit. Do you have the SHELL environment
1369
+   set to point to this shell? You can try resetting the SHELL environment
1370
+   variable.
1371
+
1372
+   If you are using a Unix shell on MS-Windows, you should try to use
1373
+   exuberant ctags that is compiled for Unix-like environments so that
1374
+   exuberant ctags will understand path names with forward slash characters.
1375
+
1376
+   Is your filetype supported by the exuberant ctags utility? The file types
1377
+   supported by the exuberant ctags utility are listed in the ctags help. If a
1378
+   file type is not supported, you have to extend exuberant ctags. You can use
1379
+   the following command to list the filetypes supported by exuberant ctags:
1380
+>
1381
+	ctags --list-languages
1382
+<
1383
+   Run the following command from the shell prompt and check whether the tags
1384
+   defined in your file are listed in the output from exuberant ctags:
1385
+>
1386
+	ctags -f - --format=2 --excmd=pattern --fields=nks <filename>
1387
+<
1388
+   If you see your tags in the output from the above command, then the
1389
+   exuberant ctags utility is properly parsing your file.
1390
+
1391
+   Do you have the .ctags or _ctags or the ctags.cnf file in your home
1392
+   directory for specifying default options or for extending exuberant ctags?
1393
+   If you do have this file, check the options in this file and make sure
1394
+   these options are not interfering with the operation of the taglist plugin.
1395
+
1396
+   If you are using MS-Windows, check the value of the TEMP and TMP
1397
+   environment variables. If these environment variables are set to a path
1398
+   with space characters in the name, then try using the DOS 8.3 short name
1399
+   for the path or set them to a path without the space characters in the
1400
+   name. For example, if the temporary directory name is "C:\Documents and
1401
+   Settings\xyz\Local Settings\Temp", then try setting the TEMP variable to
1402
+   the following:
1403
+>
1404
+	set TEMP=C:\DOCUMEN~1\xyz\LOCALS~1\Temp
1405
+<
1406
+   If exuberant ctags is installed in a directory with space characters in the
1407
+   name, then try adding the directory to the PATH environment variable or try
1408
+   setting the 'Tlist_Ctags_Cmd' variable to the shortest path name to ctags
1409
+   or try copying the exuberant ctags to a path without space characters in
1410
+   the name. For example, if exuberant ctags is installed in the directory
1411
+   "C:\Program Files\Ctags", then try setting the 'Tlist_Ctags_Cmd' variable
1412
+   as below:
1413
+>
1414
+	let Tlist_Ctags_Cmd='C:\Progra~1\Ctags\ctags.exe'
1415
+<
1416
+   If you are using a cygwin compiled version of exuberant ctags on MS-Windows,
1417
+   make sure that either you have the cygwin compiled sort utility installed
1418
+   and available in your PATH or compile exuberant ctags with internal sort
1419
+   support. Otherwise, when exuberant ctags sorts the tags output by invoking
1420
+   the sort utility, it may end up invoking the MS-Windows version of
1421
+   sort.exe, thereby resulting in failure.
1422
+
1423
+Q. When I try to open the taglist window, I am seeing the following error
1424
+   message. How do I fix this problem?
1425
+
1426
+   Taglist: Failed to generate tags for /my/path/to/file
1427
+   ctags: illegal option -- -^@usage: ctags [-BFadtuwvx] [-f tagsfile] file ...
1428
+
1429
+A. The taglist plugin will work only with the exuberant ctags tool. You
1430
+   cannot use the GNU ctags or the Unix ctags program with the taglist plugin.
1431
+   You will see an error message similar to the one shown above, if you try
1432
+   use a non-exuberant ctags program with Vim. To fix this problem, either add
1433
+   the exuberant ctags tool location to the PATH environment variable or set
1434
+   the 'Tlist_Ctags_Cmd' variable.
1435
+
1436
+Q. A file has more than one tag with the same name. When I select a tag name
1437
+   from the taglist window, the cursor is positioned at the incorrect tag
1438
+   location. 
1439
+A. The taglist plugin uses the search pattern generated by the exuberant ctags
1440
+   utility to position the cursor at the location of a tag definition. If a
1441
+   file has more than one tag with the same name and same prototype, then the
1442
+   search pattern will be the same. In this case, when searching for the tag
1443
+   pattern, the cursor may be positioned at the incorrect location. 
1444
+
1445
+Q. I have made some modifications to my file and introduced new
1446
+   functions/classes/variables. I have not yet saved my file. The taglist
1447
+   plugin is not displaying the new tags when I update the taglist window.
1448
+A. The exuberant ctags utility will process only files that are present in the
1449
+   disk. To list the tags defined in a file, you have to save the file and
1450
+   then update the taglist window. 
1451
+
1452
+Q. I have created a ctags file using the exuberant ctags utility for my source
1453
+   tree. How do I configure the taglist plugin to use this tags file? 
1454
+A. The taglist plugin doesn't use a tags file stored in disk. For every opened
1455
+   file, the taglist plugin invokes the exuberant ctags utility to get the
1456
+   list of tags dynamically. The Vim system() function is used to invoke
1457
+   exuberant ctags and get the ctags output. This function internally uses a
1458
+   temporary file to store the output. This file is deleted after the output
1459
+   from the command is read. So you will never see the file that contains the
1460
+   output of exuberant ctags.
1461
+
1462
+Q. When I set the |'updatetime'| option to a low value (less than 1000) and if
1463
+   I keep pressing a key with the taglist window open, the current buffer
1464
+   contents are changed. Why is this?
1465
+A. The taglist plugin uses the |CursorHold| autocmd to highlight the current
1466
+   tag. The CursorHold autocmd triggers for every |'updatetime'| milliseconds.
1467
+   If the |'updatetime'| option is set to a low value, then the CursorHold
1468
+   autocmd will be triggered frequently. As the taglist plugin changes
1469
+   the focus to the taglist window to highlight the current tag, this could
1470
+   interfere with the key movement resulting in changing the contents of
1471
+   the current buffer. The workaround for this problem is to not set the
1472
+   |'updatetime'| option to a low value.
1473
+
1474
+==============================================================================
1475
+						*taglist-license*
1476
+11. License~
1477
+Permission is hereby granted to use and distribute the taglist plugin, with or
1478
+without modifications, provided that this copyright notice is copied with it.
1479
+Like anything else that's free, taglist.vim is provided *as is* and comes with
1480
+no warranty of any kind, either expressed or implied. In no event will the
1481
+copyright holder be liable for any damamges resulting from the use of this
1482
+software.
1483
+
1484
+==============================================================================
1485
+						*taglist-todo*
1486
+12. Todo~
1487
+
1488
+1. Group tags according to the scope and display them. For example,
1489
+   group all the tags belonging to a C++/Java class 
1490
+2. Support for displaying tags in a modified (not-yet-saved) file. 
1491
+3. Automatically open the taglist window only for selected filetypes.
1492
+   For other filetypes, close the taglist window. 
1493
+4. When using the shell from the MKS toolkit, the taglist plugin 
1494
+   doesn't work.
1495
+5. The taglist plugin doesn't work with files edited remotely using the
1496
+   netrw plugin. The exuberant ctags utility cannot process files over
1497
+   scp/rcp/ftp, etc.
1498
+
1499
+==============================================================================
1500
+
1501
+vim:tw=78:ts=8:noet:ft=help:
... ...
@@ -0,0 +1,4546 @@
1
+" File: taglist.vim
2
+" Author: Yegappan Lakshmanan (yegappan AT yahoo DOT com)
3
+" Version: 4.5
4
+" Last Modified: September 21, 2007
5
+" Copyright: Copyright (C) 2002-2007 Yegappan Lakshmanan
6
+"            Permission is hereby granted to use and distribute this code,
7
+"            with or without modifications, provided that this copyright
8
+"            notice is copied with it. Like anything else that's free,
9
+"            taglist.vim is provided *as is* and comes with no warranty of any
10
+"            kind, either expressed or implied. In no event will the copyright
11
+"            holder be liable for any damamges resulting from the use of this
12
+"            software.
13
+"
14
+" The "Tag List" plugin is a source code browser plugin for Vim and provides
15
+" an overview of the structure of the programming language files and allows
16
+" you to efficiently browse through source code files for different
17
+" programming languages.  You can visit the taglist plugin home page for more
18
+" information:
19
+"
20
+"       http://vim-taglist.sourceforge.net
21
+"
22
+" You can subscribe to the taglist mailing list to post your questions
23
+" or suggestions for improvement or to report bugs. Visit the following
24
+" page for subscribing to the mailing list:
25
+"
26
+"       http://groups.yahoo.com/group/taglist/
27
+"
28
+" For more information about using this plugin, after installing the
29
+" taglist plugin, use the ":help taglist" command.
30
+"
31
+" Installation
32
+" ------------
33
+" 1. Download the taglist.zip file and unzip the files to the $HOME/.vim
34
+"    or the $HOME/vimfiles or the $VIM/vimfiles directory. This should
35
+"    unzip the following two files (the directory structure should be
36
+"    preserved):
37
+"
38
+"       plugin/taglist.vim - main taglist plugin file
39
+"       doc/taglist.txt    - documentation (help) file
40
+"
41
+"    Refer to the 'add-plugin', 'add-global-plugin' and 'runtimepath'
42
+"    Vim help pages for more details about installing Vim plugins.
43
+" 2. Change to the $HOME/.vim/doc or $HOME/vimfiles/doc or
44
+"    $VIM/vimfiles/doc directory, start Vim and run the ":helptags ."
45
+"    command to process the taglist help file.
46
+" 3. If the exuberant ctags utility is not present in your PATH, then set the
47
+"    Tlist_Ctags_Cmd variable to point to the location of the exuberant ctags
48
+"    utility (not to the directory) in the .vimrc file.
49
+" 4. If you are running a terminal/console version of Vim and the
50
+"    terminal doesn't support changing the window width then set the
51
+"    'Tlist_Inc_Winwidth' variable to 0 in the .vimrc file.
52
+" 5. Restart Vim.
53
+" 6. You can now use the ":TlistToggle" command to open/close the taglist
54
+"    window. You can use the ":help taglist" command to get more
55
+"    information about using the taglist plugin.
56
+"
57
+" ****************** Do not modify after this line ************************
58
+
59
+" Line continuation used here
60
+let s:cpo_save = &cpo
61
+set cpo&vim
62
+
63
+if !exists('loaded_taglist')
64
+    " First time loading the taglist plugin
65
+    "
66
+    " To speed up the loading of Vim, the taglist plugin uses autoload
67
+    " mechanism to load the taglist functions.
68
+    " Only define the configuration variables, user commands and some
69
+    " auto-commands and finish sourcing the file
70
+
71
+    " The taglist plugin requires the built-in Vim system() function. If this
72
+    " function is not available, then don't load the plugin.
73
+    if !exists('*system')
74
+        echomsg 'Taglist: Vim system() built-in function is not available. ' .
75
+                    \ 'Plugin is not loaded.'
76
+        let loaded_taglist = 'no'
77
+        let &cpo = s:cpo_save
78
+        finish
79
+    endif
80
+
81
+    " Location of the exuberant ctags tool
82
+    if !exists('Tlist_Ctags_Cmd')
83
+        if executable('exuberant-ctags')
84
+            " On Debian Linux, exuberant ctags is installed
85
+            " as exuberant-ctags
86
+            let Tlist_Ctags_Cmd = 'exuberant-ctags'
87
+        elseif executable('exctags')
88
+            " On Free-BSD, exuberant ctags is installed as exctags
89
+            let Tlist_Ctags_Cmd = 'exctags'
90
+        elseif executable('ctags')
91
+            let Tlist_Ctags_Cmd = 'ctags'
92
+        elseif executable('ctags.exe')
93
+            let Tlist_Ctags_Cmd = 'ctags.exe'
94
+        elseif executable('tags')
95
+            let Tlist_Ctags_Cmd = 'tags'
96
+        else
97
+            echomsg 'Taglist: Exuberant ctags (http://ctags.sf.net) ' .
98
+                        \ 'not found in PATH. Plugin is not loaded.'
99
+            " Skip loading the plugin
100
+            let loaded_taglist = 'no'
101
+            let &cpo = s:cpo_save
102
+            finish
103
+        endif
104
+    endif
105
+
106
+
107
+    " Automatically open the taglist window on Vim startup
108
+    if !exists('Tlist_Auto_Open')
109
+        let Tlist_Auto_Open = 0
110
+    endif
111
+
112
+    " When the taglist window is toggle opened, move the cursor to the
113
+    " taglist window
114
+    if !exists('Tlist_GainFocus_On_ToggleOpen')
115
+        let Tlist_GainFocus_On_ToggleOpen = 0
116
+    endif
117
+
118
+    " Process files even when the taglist window is not open
119
+    if !exists('Tlist_Process_File_Always')
120
+        let Tlist_Process_File_Always = 0
121
+    endif
122
+
123
+    if !exists('Tlist_Show_Menu')
124
+        let Tlist_Show_Menu = 0
125
+    endif
126
+
127
+    " Tag listing sort type - 'name' or 'order'
128
+    if !exists('Tlist_Sort_Type')
129
+        let Tlist_Sort_Type = 'order'
130
+    endif
131
+
132
+    " Tag listing window split (horizontal/vertical) control
133
+    if !exists('Tlist_Use_Horiz_Window')
134
+        let Tlist_Use_Horiz_Window = 0
135
+    endif
136
+
137
+    " Open the vertically split taglist window on the left or on the right
138
+    " side.  This setting is relevant only if Tlist_Use_Horiz_Window is set to
139
+    " zero (i.e.  only for vertically split windows)
140
+    if !exists('Tlist_Use_Right_Window')
141
+        let Tlist_Use_Right_Window = 0
142
+    endif
143
+
144
+    " Increase Vim window width to display vertically split taglist window.
145
+    " For MS-Windows version of Vim running in a MS-DOS window, this must be
146
+    " set to 0 otherwise the system may hang due to a Vim limitation.
147
+    if !exists('Tlist_Inc_Winwidth')
148
+        if (has('win16') || has('win95')) && !has('gui_running')
149
+            let Tlist_Inc_Winwidth = 0
150
+        else
151
+            let Tlist_Inc_Winwidth = 1
152
+        endif
153
+    endif
154
+
155
+    " Vertically split taglist window width setting
156
+    if !exists('Tlist_WinWidth')
157
+        let Tlist_WinWidth = 30
158
+    endif
159
+
160
+    " Horizontally split taglist window height setting
161
+    if !exists('Tlist_WinHeight')
162
+        let Tlist_WinHeight = 10
163
+    endif
164
+
165
+    " Display tag prototypes or tag names in the taglist window
166
+    if !exists('Tlist_Display_Prototype')
167
+        let Tlist_Display_Prototype = 0
168
+    endif
169
+
170
+    " Display tag scopes in the taglist window
171
+    if !exists('Tlist_Display_Tag_Scope')
172
+        let Tlist_Display_Tag_Scope = 1
173
+    endif
174
+
175
+    " Use single left mouse click to jump to a tag. By default this is disabled.
176
+    " Only double click using the mouse will be processed.
177
+    if !exists('Tlist_Use_SingleClick')
178
+        let Tlist_Use_SingleClick = 0
179
+    endif
180
+
181
+    " Control whether additional help is displayed as part of the taglist or
182
+    " not.  Also, controls whether empty lines are used to separate the tag
183
+    " tree.
184
+    if !exists('Tlist_Compact_Format')
185
+        let Tlist_Compact_Format = 0
186
+    endif
187
+
188
+    " Exit Vim if only the taglist window is currently open. By default, this is
189
+    " set to zero.
190
+    if !exists('Tlist_Exit_OnlyWindow')
191
+        let Tlist_Exit_OnlyWindow = 0
192
+    endif
193
+
194
+    " Automatically close the folds for the non-active files in the taglist
195
+    " window
196
+    if !exists('Tlist_File_Fold_Auto_Close')
197