/plugins/Tags/tags/Tags-3.1.0/doc/users-guide.xml

# · XML · 580 lines · 578 code · 0 blank · 2 comment · 0 complexity · 31c52c85cb7fcb756cebb03aaba73443 MD5 · raw file

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!DOCTYPE article
  3. PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
  4. "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
  5. <article>
  6. <title>Tags Plugin</title><articleinfo>
  7. <authorgroup>
  8. <author><othername>Kenrick Drew</othername></author>
  9. <author><othername>Ollie Rutherfurd</othername></author>
  10. <author><othername>Shlomy Reinstein</othername></author>
  11. </authorgroup>
  12. <edition>Version 3.1.0</edition>
  13. </articleinfo>
  14. <!-- $Id: users-guide.xml 19082 2010-12-02 15:52:44Z kpouer $ -->
  15. <section>
  16. <title>Introduction</title>
  17. <para>The Tags plugin allows one to &quot;jump&quot; to the definition of a
  18. class, function, variable, etc... using tag index files.
  19. For example, in C programs, the user can immediately jump to the
  20. definition of a desired function or data structure without having
  21. to know where or what file it is defined. Tag jumping can be
  22. accomplished by either selecting the desired tag, placing the
  23. cursor on the tag, or entering the tag.</para><para>Tag index files are created by <ulink url="http://ctags.sourceforge.net/">ctags</ulink> (<ulink url="http://ctags.sourceforge.net/">http://ctags.sourceforge.net/</ulink>).</para></section>
  24. <section>
  25. <title>Creating Tag Index Files</title>
  26. <para>For the Tags plugin to be useful, you must generate tag index files
  27. using <citetitle>ctags</citetitle>.</para><para>To generate a tag index file for all source files in the
  28. current directory:</para><programlisting>
  29. ctags *</programlisting>
  30. <para>To generate a tag index file or all source files in the
  31. current directory and child directories:</para><programlisting>
  32. ctags -R</programlisting>
  33. <para>See the man page or documentation that comes with your version
  34. of <citetitle>ctags</citetitle> for more information on using <citetitle>ctags</citetitle>.</para><para>Note that file paths in tag index file are relative to the
  35. generated file, unless you pass absolute paths to <citetitle>ctags</citetitle>.</para><para><emphasis role="strong">Tag index files must be sorted, as the Tags plugin searches
  36. using a binary search. By default Exuberant CTags sorts generated
  37. tag index files.</emphasis></para></section>
  38. <section>
  39. <title>Usage</title>
  40. <section>
  41. <title>Tag Jumping</title>
  42. <para>There are 2 ways to jump to a desired tag:</para><orderedlist>
  43. <listitem>
  44. <para>Place the cursor on or select the desired tag. Use
  45. <citetitle>Plugins</citetitle> &gt; <citetitle>Tags</citetitle> &gt; <citetitle>Follow Tag</citetitle>. <citetitle>Plugins</citetitle> &gt; <citetitle>Tags</citetitle> &gt;
  46. <citetitle>Follow Tag (New View)</citetitle> will jump to a tag in a new view.</para></listitem>
  47. <listitem>
  48. <para><citetitle>Plugins</citetitle> &gt; <citetitle>Tags</citetitle> &gt; <citetitle>Follow Tag...</citetitle> will prompt you for
  49. the desired tag. The <citetitle>Open new view</citetitle> checkbox will jump
  50. to the entered tag in an new view.</para></listitem>
  51. </orderedlist>
  52. </section>
  53. <section>
  54. <title>The Tag Stack</title>
  55. <para>The <citetitle>Tag Stack</citetitle> provides a visual history of tags you've followed
  56. and where you've jumped from. When you jump to (or <citetitle>follow</citetitle>) a
  57. tag, both the location you jumped from and the location of the
  58. tag you followed are pushed onto the <citetitle>Tag Stack</citetitle>. Aside from
  59. seeing how you've moved through buffers, the <citetitle>Tag Stack</citetitle> enables
  60. you to jump to any of the positions in the stack.</para><para>For each position, the <citetitle>Tag Stack</citetitle> displays the line number, filename
  61. and directory and the contents of the line (in bold). The line before
  62. and after are also displayed to provide some context.</para><blockquote>
  63. <mediaobject><imageobject><imagedata backrefs="" classes="" dupnames="" fileref="tagstack.png" ids="" names="" />
  64. </imageobject></mediaobject></blockquote>
  65. <para>The context menu for the <citetitle>Tag Stack</citetitle> provides the follow actions:</para><variablelist>
  66. <varlistentry>
  67. <term>
  68. <varname><citetitle>Go to</citetitle>:</varname></term>
  69. <listitem>
  70. <para>Move the caret to the position, leaving the item on the stack.</para></listitem>
  71. </varlistentry>
  72. <varlistentry>
  73. <term>
  74. <varname><citetitle>Remove</citetitle>:</varname></term>
  75. <listitem>
  76. <para>Remove the selected element from the <citetitle>Tag Stack</citetitle>, without
  77. changing the caret position.</para></listitem>
  78. </varlistentry>
  79. <varlistentry>
  80. <term>
  81. <varname><citetitle>Pop</citetitle>:</varname></term>
  82. <listitem>
  83. <para>Move the caret to the topmost position on the stack, and remove
  84. the topmost position.</para></listitem>
  85. </varlistentry>
  86. <varlistentry>
  87. <term>
  88. <varname><citetitle>Clear</citetitle>:</varname></term>
  89. <listitem>
  90. <para>Removes all positions from the <citetitle>Tag Stack</citetitle> without moving the caret.</para></listitem>
  91. </varlistentry>
  92. </variablelist>
  93. <para><citetitle>Tag Stack</citetitle> actions are accessible via <citetitle>Plugins</citetitle> &gt; <citetitle>Tags</citetitle>:</para><variablelist>
  94. <varlistentry>
  95. <term>
  96. <varname><citetitle>Pop Position</citetitle>:</varname></term>
  97. <listitem>
  98. <para>Return to the topmost position on the stack. This will
  99. also remove the position from the <citetitle>Tag Stack</citetitle>.</para></listitem>
  100. </varlistentry>
  101. <varlistentry>
  102. <term>
  103. <varname><citetitle>Push Position onto Tag Stack</citetitle>:</varname></term>
  104. <listitem>
  105. <para>Puts your current position at the top of the <citetitle>Tag Stack</citetitle>.</para></listitem>
  106. </varlistentry>
  107. <varlistentry>
  108. <term>
  109. <varname><citetitle>Clear Tag Stack</citetitle>:</varname></term>
  110. <listitem>
  111. <para>Removes all elements from the <citetitle>Tag Stack</citetitle>.</para></listitem>
  112. </varlistentry>
  113. </variablelist>
  114. <para>Each jEdit <citetitle>View</citetitle> has it's own stack.</para></section>
  115. <section>
  116. <title>Tag Collisions</title>
  117. <para>A tag collision can occur when there is more than one defintion
  118. for a specific tag as defined in the tag index files. This
  119. especially occurs on object oriented programming languages, and
  120. local projects where you are using a global system tag index
  121. file along with a local tag index file. To easily facilitate
  122. tag collisions, if more than one tag is found in the tag index
  123. files, you are presented, located under the cursor, a list of
  124. choices. You can select the desired tag by either using the
  125. mouse, keyboard arrow keys or number keys (1 - 9 only). The
  126. tag collision list can be dismissed with the Escape (<citetitle>Esc</citetitle>) key.
  127. The tag collision list can also be converted to a dialog
  128. with the Space key.</para><para>If the <citetitle>Tag List</citetitle> dockable window is open, the list will be shown
  129. in the dockable window instead of in a pop-up window. The
  130. <citetitle>Tag List</citetitle> dockable window provides a 'Filter' menu using which
  131. you can quickly filter the list of tags by the available attribute
  132. values.</para></section>
  133. </section>
  134. <section>
  135. <title>Configuration</title>
  136. <para>The Tags plugin can be configured under the <citetitle>Plugins</citetitle> &gt;
  137. <citetitle>Plugin Options...</citetitle>.</para><section>
  138. <title>General</title>
  139. <para><citetitle>Position dialogs under cursor</citetitle>:</para><blockquote>
  140. <para>If your window manager is set to have window focus
  141. follow the mouse pointer, and doesn't automatically
  142. shift the window focus to new dialogs/windows,
  143. this option can be helpful. Any dialog that the
  144. plugin creates will be automatically placed under
  145. the cursor. This is currently experimental. Note
  146. that this doesn't work well for window managers
  147. which automatically shift focus to new dialogs/windows.</para></blockquote>
  148. <para><citetitle>Tags extend through member access operator</citetitle>:</para><blockquote>
  149. <para>When tagging in the text area, the plugin by
  150. default will consider the tag to be the word
  151. under the cursor as well as any member access.</para></blockquote>
  152. <para><citetitle>If tag match is found continue searching subsequent tag index files</citetitle>:</para><blockquote>
  153. <para>By default, the first matching tag (or groups of tags
  154. if a tag collision occurs) found will stop the search.
  155. Using this option will allow all tag files to be searched,
  156. results in searches taking longer.</para></blockquote>
  157. <para><citetitle>Use line numbers when following tags, if specified in the tag files</citetitle>:</para><blockquote>
  158. <para>Invoking Ctags with:</para><blockquote>
  159. <para>--fields=+l</para></blockquote>
  160. <para>causes it to add a &quot;line&quot; attribute to each tag, specifying
  161. the line number in which the tag is defined. By default,
  162. the &quot;follow tag&quot; operation ignores the line attribute of the
  163. tag and uses the pattern to locate the tag. This has the
  164. advantage that the tag may be located even if the file has
  165. changed since it was indexed by Ctags.
  166. However, using the pattern to locate the
  167. tag does not work if there are multiple tags with the same
  168. name and pattern in the file, which is common in object
  169. oriented languages (e.g. an actionPerformed method in
  170. several anonymous Java classes defined in the same file, or
  171. a C function definition and forward declaration in the same
  172. file).
  173. In such cases, the line numbers can be used to locate the
  174. tags. If the line attributes are specified in the tag files,
  175. using this option causes the &quot;follow tag&quot; operation to jump
  176. to the specified line number instead of searching for the
  177. pattern.</para></blockquote>
  178. <para><citetitle>Number of tag files to keep in memory</citetitle>:</para><blockquote>
  179. <para>The tags plugin caches remote tag index files, when
  180. editing over FTP, SFTP, etc... To avoid loading remote
  181. tag index files every time you wish to jump to a tag
  182. defintion, these are cached. This value controls how
  183. many remote index files to cache in memory.</para></blockquote>
  184. <para><citetitle>Keep local tags files in memory</citetitle></para><blockquote>
  185. <para>If enabled, tag index file located on the local filesystem
  186. are cached in memory, just as remote ones, rather than
  187. reading them as a RandomAccessFile. This may result
  188. in slightly faster searching, but can dramatically increase
  189. memory usage.</para></blockquote>
  190. </section>
  191. <section>
  192. <title>Actions</title>
  193. <para>List of actions that provide the &quot;follow tag&quot; functionality with
  194. filtering of the tag list in case of collisions. For example,
  195. you can create an action that jumps only to function prototypes,
  196. or only to tags that belong to a certain class.
  197. The filtering is based on tag attributes. Ctags provides command-
  198. line options for adding various tag attributes (fields) to its
  199. tag files, such as access, class, kind, scope etc. For custom
  200. actions to work, this attribute information must exist in the tag
  201. files.</para><para>Each action that you add has a name, an associated attribute and
  202. a list of values for that attribute. When the action is invoked,
  203. it first runs the &quot;follow tag&quot; action, and if tags are found,
  204. it goes over the list of values one by one, and for each value
  205. it reduces the list to only those tags having this value for
  206. the attribute. If tags were found to have this value for the
  207. attribute, these tags are then used for jumping or for the tag
  208. collision popup/dockable. If no tags in the list have any of
  209. the values, the action indicates that no tags were found.</para></section>
  210. <section>
  211. <title>Tag Files</title>
  212. <para>List of tag index files the Tags plugin uses to search for
  213. tag definitions.</para><para>&quot;tags&quot; is a special entry that doesn't represent an actual
  214. file but rather the name of the file to look for in the current
  215. buffer's directory. The Tags plugin can also search for this
  216. file in the current buffer's parent directories. Double-click
  217. on the entry to edit it.</para><para>The order of entries in the list is the order in which files
  218. will be searched.</para></section>
  219. </section>
  220. <section>
  221. <title>Suggested Keyboard Shortcuts and UI</title>
  222. <para>Here are some suggested key bindings. These do stomp on
  223. some jEdit key bindings, but I find that they work well.
  224. They are based on the vi (and it's clones) key bindings
  225. for tagging.</para><informaltable frame="all">
  226. <tgroup cols="2">
  227. <colspec colname="col_1" />
  228. <colspec colname="col_2" />
  229. <thead>
  230. <row>
  231. <entry><para>Action</para></entry>
  232. <entry><para>Shortcut</para></entry>
  233. </row>
  234. </thead>
  235. <tbody>
  236. <row>
  237. <entry><para>Follow Tag</para></entry>
  238. <entry><para>C+]</para></entry>
  239. </row>
  240. <row>
  241. <entry><para>Follow Tag (New View)</para></entry>
  242. <entry><para>C+S+]</para></entry>
  243. </row>
  244. <row>
  245. <entry><para>Follow Tag...</para></entry>
  246. <entry><para>A+]</para></entry>
  247. </row>
  248. <row>
  249. <entry><para>Pop Position</para></entry>
  250. <entry><para>C+T</para></entry>
  251. </row>
  252. </tbody>
  253. </tgroup>
  254. </informaltable>
  255. <para>Keyboard shortcuts can be defined under the <citetitle>Shortcuts</citetitle> node
  256. of the <citetitle>Global Options</citetitle> dialog.</para><para>Also one can place the tagging commands in the Context Menu.
  257. Context menu items can be defined under the <citetitle>Context Menu</citetitle>
  258. node of the Global Options dialog.</para></section>
  259. <section>
  260. <title>Where to Find <citetitle>ctags</citetitle></title>
  261. <para>You can find the Exuberant C Tags program at:</para><blockquote>
  262. <para><ulink url="http://ctags.sourceforge.net">http://ctags.sourceforge.net</ulink></para></blockquote>
  263. <para>Exuberant C Tags is also included in the cygwin distribution
  264. for Windows.</para><para>You can also use the standard UNIX ctags program, or the GNU
  265. C Tags program, but you'll find that Exuberant C Tags
  266. provides a bit more info (or too much depending on how much
  267. of a minimalist you are).</para></section>
  268. <section>
  269. <title>License</title>
  270. <para>The source code is distributed under the GPL. Please see
  271. <ulink url="http://www.fsf.org/copyleft/gpl.html">http://www.fsf.org/copyleft/gpl.html</ulink>.</para></section>
  272. <section>
  273. <title>Known Bugs/Limitations</title>
  274. <itemizedlist>
  275. <listitem>
  276. <para>Tag index files <emphasis role="strong">MUST</emphasis> be sorted. This is becuase
  277. tags are search for using a binary search.</para></listitem>
  278. <listitem>
  279. <para>Bachward searching patterns <literal>(?...?)</literal> are not supported.</para></listitem>
  280. </itemizedlist>
  281. </section>
  282. <section>
  283. <title>Future Directions</title>
  284. <para>See TODO.TXT</para></section>
  285. <section>
  286. <title>Feedback</title>
  287. <para>The preferred way to send bug reports or feature requests is
  288. to use the Sourceforge Bug Tracker at
  289. <ulink url="http://sourceforge.net/bugs/?group_id=588">http://sourceforge.net/bugs/?group_id=588</ulink>.</para><para>You can also write to:</para><itemizedlist>
  290. <listitem>
  291. <para>jEdit-users mailing-list &lt;<ulink url="mailto:jedit-users@lists.sourceforge.net">jedit-users@lists.sourceforge.net</ulink>&gt;;</para></listitem>
  292. <listitem>
  293. <para>jEdit-devel mailing.list &lt;<ulink url="mailto:jedit-devel@lists.sourceforge.net">jedit-devel@lists.sourceforge.net</ulink>&gt;.</para></listitem>
  294. <listitem>
  295. <para>Ollie Rutherfurd &lt;<ulink url="mailto:oliver@jedit.org">oliver@jedit.org</ulink>&gt; (Current Maintainer)</para></listitem>
  296. </itemizedlist>
  297. </section>
  298. <section>
  299. <title>Credits</title>
  300. <itemizedlist>
  301. <listitem>
  302. <para>Vim reference manual (Bram Moolenaar)</para></listitem>
  303. <listitem>
  304. <para>Exuberant C Tags man page (Darren Hiebert)</para></listitem>
  305. </itemizedlist>
  306. </section>
  307. <section>
  308. <title>Changelog</title>
  309. <itemizedlist>
  310. <listitem>
  311. <para>Version 2.0.2 (???)</para><itemizedlist>
  312. <listitem>
  313. <para>Updated for jEdit 4.3 API changes.</para></listitem>
  314. <listitem>
  315. <para>Fixed: Random Access Files weren't closed if no tag was found.</para></listitem>
  316. </itemizedlist>
  317. </listitem>
  318. <listitem>
  319. <para>Version 2.0.1 (Mar 2005)</para><itemizedlist>
  320. <listitem>
  321. <para>Fixed recursive directory search on local FS.</para></listitem>
  322. </itemizedlist>
  323. </listitem>
  324. <listitem>
  325. <para>Version 2.0 (Nov 2004)</para><itemizedlist>
  326. <listitem>
  327. <para>Tags plugin now uses jEdit's Virtual File Systems
  328. (enabling the plugin to work over FTP, SFTP, etc...).</para></listitem>
  329. <listitem>
  330. <para>Tags plugin can no longer be used stand-alone (outside of jEdit).</para></listitem>
  331. <listitem>
  332. <para>Various fixes, changes, etc...</para></listitem>
  333. </itemizedlist>
  334. </listitem>
  335. <listitem>
  336. <para>Version 1.1.2, bug fix (Jun 2004)</para><itemizedlist>
  337. <listitem>
  338. <para>Fixed StringIndexOutOfBoundsException, if tag ended with &quot;\&quot;.
  339. Bug report &amp; patch from Ian MacLarty.</para></listitem>
  340. </itemizedlist>
  341. </listitem>
  342. <listitem>
  343. <para>Version 1.1.1, bug fix (Apr 2004)</para><itemizedlist>
  344. <listitem>
  345. <para>escaping <literal>$</literal> when searching for tag definition.</para></listitem>
  346. </itemizedlist>
  347. </listitem>
  348. <listitem>
  349. <para>Version 1.1, update (Dec 2003)</para><itemizedlist>
  350. <listitem>
  351. <para>Added the ability to specify the sort order of the current
  352. buffer tag index file.</para></listitem>
  353. <listitem>
  354. <para>Added the ability to clear the tag stack.</para></listitem>
  355. <listitem>
  356. <para>Replaced text field in Enter Tag dialog with history text
  357. field.</para></listitem>
  358. <listitem>
  359. <para>Quickly reject tag index files if last tag in file is
  360. less than the tag we are looking for.</para></listitem>
  361. <listitem>
  362. <para>Added the ability to specify whether tags extend through
  363. the member access operator.</para></listitem>
  364. <listitem>
  365. <para>Restore search and replace search string after following tag.</para></listitem>
  366. <listitem>
  367. <para>Ability to enable or disable tag index files without having
  368. to remove them from the tag index filepath list.</para></listitem>
  369. <listitem>
  370. <para>Experimental: Ability for dialogs to appear under the cursor.</para></listitem>
  371. <listitem>
  372. <para>Ability to keep tag collision dialog.</para></listitem>
  373. <listitem>
  374. <para>Ability to convert tag collision popup into dialog.</para></listitem>
  375. <listitem>
  376. <para>Focus to return to history panel when checkbox is used in
  377. Enter Tag dialog.</para></listitem>
  378. <listitem>
  379. <para>Focus to return to list when checkbox is used in Tag
  380. Collision dialog.</para></listitem>
  381. <listitem>
  382. <para>Updated for jEdit 4.2 plugin API.</para></listitem>
  383. <listitem>
  384. <para>Ability to search for tag index files for current buffer
  385. in parent directories of the current buffer.</para></listitem>
  386. <listitem>
  387. <para>Added <citetitle>Tag Stack</citetitle> dockable.</para></listitem>
  388. <listitem>
  389. <para>Tag index filenames can contain spaces.</para></listitem>
  390. <listitem>
  391. <para>Added <citetitle>Push Current Position onto Stack</citetitle>.</para></listitem>
  392. <listitem>
  393. <para>Converted docs to DocBook and added a build.xml file.</para></listitem>
  394. </itemizedlist>
  395. </listitem>
  396. <listitem>
  397. <para>Version 1.0.6, bug fixes (Feb 2002)</para><itemizedlist>
  398. <listitem>
  399. <para>Fixed bug where the escape character <literal>'\'</literal> was showing
  400. up in the user visible search string.</para></listitem>
  401. <listitem>
  402. <para>Used JEditTextArea.offsetToXY() to position popup
  403. within folded, and wrapped text.</para></listitem>
  404. <listitem>
  405. <para>Requires java 1.3</para></listitem>
  406. <listitem>
  407. <para>Requires JEdit 4.0</para></listitem>
  408. </itemizedlist>
  409. </listitem>
  410. <listitem>
  411. <para>Version 1.0.3, update (Nov 2001)</para><itemizedlist>
  412. <listitem>
  413. <para>Replaced Macros.error with GUIUtilities.error.</para></listitem>
  414. </itemizedlist>
  415. </listitem>
  416. <listitem>
  417. <para>Version 1.0.2, bug fixes (Nov 2001)</para><itemizedlist>
  418. <listitem>
  419. <para>Fixed bug where if you removed tag index files from
  420. the search the code would remember the later entries.</para></listitem>
  421. <listitem>
  422. <para>Fixed bug where searching for tag search string in
  423. file was using the search file set.</para></listitem>
  424. <listitem>
  425. <para>Fixed bug in option panel where changes to the list of
  426. tag index files were always committed even if you
  427. pressed &quot;Cancel&quot;.</para></listitem>
  428. <listitem>
  429. <para>Fixed exuberant tag info display when mixed tag files
  430. are used.</para></listitem>
  431. <listitem>
  432. <para>Removed directions from COPYING.</para></listitem>
  433. <listitem>
  434. <para>Added some initial user hidden development code.</para></listitem>
  435. </itemizedlist>
  436. </listitem>
  437. <listitem>
  438. <para>Version 1.0.1, bug fixes (Nov 2001)</para><itemizedlist>
  439. <listitem>
  440. <para>Fixed bug where if you added a new tag file, then
  441. moved that file in the list, a null exception occured
  442. during tagging.</para></listitem>
  443. <listitem>
  444. <para>If tag collision popup is wider than the screen, place
  445. it flush to the left side of the screen.</para></listitem>
  446. <listitem>
  447. <para>Ability to have commas in tag index file path names.</para></listitem>
  448. </itemizedlist>
  449. </listitem>
  450. <listitem>
  451. <para>Version 1.0, Initial public release (Oct 2001)</para><itemizedlist>
  452. <listitem>
  453. <para>Made Enter Tag dialog a stand alone dialog (no JOptionPane).</para></listitem>
  454. <listitem>
  455. <para>Moved enter event into KeyPressed() in enter tag dialog.</para></listitem>
  456. <listitem>
  457. <para>Added the display of exuberant info from the tag indx file.</para></listitem>
  458. <listitem>
  459. <para>Reverted back to platform independent Monospaced font
  460. for tag collision list.</para></listitem>
  461. </itemizedlist>
  462. </listitem>
  463. <listitem>
  464. <para>Version 0.9.2 (Oct 2001)</para><itemizedlist>
  465. <listitem>
  466. <para>Listen for ENTER in Enter Tag dialog.</para></listitem>
  467. <listitem>
  468. <para>Use KeyEventWorkaround.processKeyEvent() in key listener.</para></listitem>
  469. <listitem>
  470. <para>Removed display of wait cursor when opening tag
  471. definition file.</para></listitem>
  472. </itemizedlist>
  473. </listitem>
  474. <listitem>
  475. <para>Version 0.9.1 (Oct 2001)</para><itemizedlist>
  476. <listitem>
  477. <para>Removed Tags.displayMessage in favor of
  478. org.gjt.sp.util.Log.log()</para></listitem>
  479. <listitem>
  480. <para>Used ^ and $ from tag index file when searching (regexp)</para></listitem>
  481. <listitem>
  482. <para>Fixed bug where search string wasn't complete</para></listitem>
  483. <listitem>
  484. <para>Fixed off by 1 bug when tag index file uses line numbers</para></listitem>
  485. </itemizedlist>
  486. </listitem>
  487. <listitem>
  488. <para>Version 0.9 (Oct 2001)</para><itemizedlist>
  489. <listitem>
  490. <para>Scroll pane for collision dialog.</para></listitem>
  491. <listitem>
  492. <para>Added public Tags.pushPosition()</para></listitem>
  493. <listitem>
  494. <para>Better display tag information collision list.</para></listitem>
  495. <listitem>
  496. <para>Fixed bugs introduced in 0.7.3.</para></listitem>
  497. <listitem>
  498. <para>Display tag line numbers in collision list when search
  499. string is a line number.</para></listitem>
  500. <listitem>
  501. <para>Changed font of collision list from &quot;Monospaced&quot; to
  502. &quot;Courier New&quot;.</para></listitem>
  503. <listitem>
  504. <para>Removed public use of tag catagories.</para></listitem>
  505. <listitem>
  506. <para>Fixed Enter Tag dialog focus issue.</para></listitem>
  507. <listitem>
  508. <para>Only display 1 - 9 in collision list.</para></listitem>
  509. <listitem>
  510. <para>Resolve relative tag defintion files before possible
  511. use of tag collision list.</para></listitem>
  512. </itemizedlist>
  513. </listitem>
  514. <listitem>
  515. <para>Version 0.7.3 (Oct 2001)</para><itemizedlist>
  516. <listitem>
  517. <para>Ability to use number keys with the tag collision popup.</para></listitem>
  518. <listitem>
  519. <para>Fixed relative tag defintion file name path problem.</para></listitem>
  520. <listitem>
  521. <para>Fixed problem when tagging from command line.</para></listitem>
  522. <listitem>
  523. <para>Fixed infinite loop problem when backtracking to
  524. beginning of first line in tag index file.</para></listitem>
  525. <listitem>
  526. <para>Fixed crash when tag is on last line of tag index file.</para></listitem>
  527. <listitem>
  528. <para>Made Java 1.1 compatible</para></listitem>
  529. </itemizedlist>
  530. </listitem>
  531. <listitem>
  532. <para>Version 0.7.2 (Oct 2001)</para><itemizedlist>
  533. <listitem>
  534. <para>Added the ability to specify the tag index file name,
  535. when using the tag index file in the current buffer's
  536. directory.</para></listitem>
  537. <listitem>
  538. <para>Added error message when tag defintion file does not exist</para></listitem>
  539. <listitem>
  540. <para>Updated HTML Documentaiton.</para></listitem>
  541. </itemizedlist>
  542. </listitem>
  543. <listitem>
  544. <para>Version 0.7.1 (Oct 2001)</para><itemizedlist>
  545. <listitem>
  546. <para>Updated HTML Documentaiton.</para></listitem>
  547. <listitem>
  548. <para>Updated labels and property strings.</para></listitem>
  549. <listitem>
  550. <para>Let user know if no tag index files have been specified.</para></listitem>
  551. <listitem>
  552. <para>Removed tag index file type specification.</para></listitem>
  553. <listitem>
  554. <para>Removed some unneeded code.</para></listitem>
  555. </itemizedlist>
  556. </listitem>
  557. <listitem>
  558. <para>Version 0.7 (Oct 2001)</para><itemizedlist>
  559. <listitem>
  560. <para>HTML Documentation</para></listitem>
  561. <listitem>
  562. <para>Use AbstractOptionPane for Global Options dialog</para></listitem>
  563. </itemizedlist>
  564. </listitem>
  565. <listitem>
  566. <para>Version 0.5 (Oct 2001)</para><itemizedlist>
  567. <listitem>
  568. <para>??</para></listitem>
  569. </itemizedlist>
  570. </listitem>
  571. <listitem>
  572. <para>Version 0.3 (Sep 2001)</para><itemizedlist>
  573. <listitem>
  574. <para>Initial beta release</para></listitem>
  575. </itemizedlist>
  576. </listitem>
  577. </itemizedlist>
  578. <!-- :mode=rest: -->
  579. </section>
  580. </article>