/plugins/SideKick/tags/release-1-1/users-guide.xml
# · XML · 1009 lines · 925 code · 82 blank · 2 comment · 0 complexity · c624d0e6b99b95966c7fa4992e82cf3e MD5 · raw file
- <?xml version="1.0" encoding="utf-8"?>
- <book xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:noNamespaceSchemaLocation='http://www.docbook.org/xsd/4.4/docbook.xsd' >
- <!-- jEdit buffer-local properties: -->
- <!-- :indentSize=2:noTabs=true:folding=sidekick: -->
- <bookinfo>
- <title>SideKick plugin user's guide</title>
- <authorgroup>
- <author>
- <firstname>Slava</firstname>
- <surname>Pestov</surname>
- </author>
- <author>
- <firstname>Dale</firstname>
- <surname>Anson</surname>
- </author>
- <author>
- <firstname>Martin</firstname>
- <surname>Raspe</surname>
- </author>
- <author>
- <firstname>Alan</firstname>
- <surname>Ezust</surname>
- </author>
- <author>
- <firstname>Shlomy</firstname>
- <surname>Reinstein</surname>
- </author>
- </authorgroup>
- <legalnotice>
- <title>Legal Notice</title>
- <para>
- Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.1 or
- any later version published by the Free Software Foundation; with no
- <quote>Invariant Sections</quote>, <quote>Front-Cover Texts</quote> or
- <quote>Back-Cover Texts</quote>, each as defined in the license. A copy of
- the license can be found in the file <filename>COPYING.DOC.txt</filename>
- included with jEdit.
- </para>
- <para>
- The SideKick plugin itself is released under the GNU General Public License.
- A copy of the GPL can be found in the jEdit online help.
- </para>
- </legalnotice>
- </bookinfo>
- <chapter id="browser">
- <title>The SideKick dockable</title>
- <para>
- The SideKick plugin provides a dockable in which other plugins can
- display buffer structure.
- </para>
- <para>
- <guimenu>Plugins</guimenu>><guisubmenu>SideKick</guisubmenu>><guimenuitem>SideKick</guimenuitem> displays the current buffer's structure in a dockable window. This window is floating by default, but it can be docked into the view 2 ways.
- </para>
- <orderedlist>
- <listitem>
- <para> Choosing a docking area from the docking menu (a little arrow in the upper left corner of each floating dockable)</para>
- </listitem>
- <listitem>
- <para> Go to the <guibutton>Docking</guibutton>
- pane of the <guimenuitem>Global Options</guimenuitem> dialog box </para>
- </listitem>
- </orderedlist>
- <para> On the top of the window, you will see a combobox which lists all installed SideKick parsers. You can switch to another parser temporarily for a buffer by selecting it from the combo box. </para>
- <para>
- The SideKick plugin can automatically parse your buffer depending on various events, such as: Buffer Switch, Buffer Save, or on the fly (after it is idle for a period of time). The last option is rarely used since it can eat up CPU time, so it is disabled by default. </para>
- <para>
- <guimenu>Plugins</guimenu>><guisubmenu>SideKick</guisubmenu>><guimenuitem>Parse
- on Keystroke</guimenuitem> is a checkbox menu item that toggles on-the-fly parsing, for the current buffer only.
- </para>
- <para> You can also manually parse a buffer by clicking on the "Parse" button in the Sidekick dockable, or through a keyboard shortcut, if you bind Sidekick's "parse buffer" action to a keystroke. <footnote><para>
- global options - jedit - Shortcuts - Plugin: Sidekick (combo) - Parse Buffer</para>
- </footnote>
- </para>
- <para>
- The current buffer can be parsed at any other time by clicking the parse
- button in the <guimenuitem>Sidekick</guimenuitem> window, or by
- invoking the
- <guimenu>Plugins</guimenu>><guisubmenu>SideKick</guisubmenu>><guimenuitem>Parse
- Buffer</guimenuitem> command.
- </para>
- <tip>
- <title> Parse button menu </title>
- <para> A popup menu is available in JDK 1.5 which
- appears when you right-click the "Parse" button.
- From there, you can set some auto-parse options
- without going to the plugin options. </para>
- </tip>
- <tip>
- <title> Mode Options </title>
- <para> SideKick supports what are called "Mode Options". Certain properties can be set on an edit-mode basis, such as the SideKick parser, tree expansion depth, etc. Other plugins (such as CtagsSideKick) added their own optionpane to this dialog, via the
- services API. </para>
- </tip>
- <tip>
- <title> Filter textfield </title>
- <para>
- Also at the top of the window is a "Filter" box. Entering text into the box will cause the tree to collapse to show only those items in the tree whose names contain the text in the filter box. This makes it easy to quickly locate items in the tree. By default, clicking on an item in the tree clears the filter, but this can be changed in the SideKick plugin option settings by using the "Filter persists after tree selection" checkbox.
- </para>
- <para>
- You don't have to click into the filter box to begin typing. As long as SideKick has focus, keystrokes are automatically sent to the box to make locating items even faster.
- </para>
- </tip>
- <para>
- Any errors found while parsing the buffer are sent to the
- <application>ErrorList</application> plugin, which means they are highlighted
- in the text area, and shown in the
- <guimenu>Plugins</guimenu>><guisubmenu>Error
- List</guisubmenu>> window. See the
- documentation for the <application>ErrorList</application> plugin for details.
- </para>
- <para>
- Clicking on a node in the tree will move the caret to its location in the
- buffer;
- conversely, moving the caret in the buffer will select the corresponding
- node.
- </para>
- <para>
- <keycap>Shift</keycap>-clicking on a node will select that node in the text
- area. <keycap>Alt</keycap>-clicking on a node will narrow the text area
- display to that node.
- </para>
- <para>
- If SideKick is docked into the current view, hovering the mouse
- over a node will display its attributes in the status bar.
- </para>
- </chapter>
- <chapter id="moving-around">
- <title>Moving around</title>
- <para>
- <guimenu>Plugins</guimenu>><guisubmenu>SideKick</guisubmenu>><guimenuitem>Go
- to Previous Asset</guimenuitem> moves the caret to start of the structure
- element (<quote>asset</quote>).
- </para>
- <para>
- <guimenu>Plugins</guimenu>><guisubmenu>SideKick</guisubmenu>><guimenuitem>Go
- to Next Asset</guimenuitem> moves the caret to start of the next asset.
- </para>
- <para>
- <guimenu>Plugins</guimenu>><guisubmenu>SideKick</guisubmenu>><guimenuitem>Select
- Asset at Caret</guimenuitem> selects the asset at the caret position.
- </para>
- </chapter>
- <chapter id="toolbar">
- <title>Toolbar</title>
-
- <para>
- SideKick can optionally display the structure of the buffer in a toolbar, using
- one or more combo-boxes. This option is useful where screen real-estate is
- important and the tree takes too much of the screen. To use this option, select
- <guimenu>Plugins</guimenu>><guisubmenu>SideKick</guisubmenu>>
- <guisubmenu>General</guisubmenu>><guimenuitem>Show the assets in a
- combo-box (inside a toolbar)</guimenuitem>.
- By default, a single combo-box is shown, which can be used to jump to various
- positions inside the buffer.
- </para>
- <para>
- There is also an option to show a separate check-box for each level in the
- SideKick tree. To use this option, select
- <guimenu>Plugins</guimenu>><guisubmenu>SideKick</guisubmenu>>
- <guisubmenu>General</guisubmenu>><guimenuitem>Use a separate combo-box
- for each level of the tree</guimenuitem>.
- </para>
- <para>
- To make the combo-box (or multiple combo-boxes) show the asset where the caret is
- currently located, select
- <guimenu>Plugins</guimenu>><guisubmenu>SideKick</guisubmenu>>
- <guisubmenu>General</guisubmenu>><guimenuitem>Tree/combo-box selection
- follows caret position</guimenuitem>.
- </para>
-
- </chapter>
- <chapter id="folding">
- <title>Folding</title>
- <para>
- The SideKick plugin adds a new <quote>sidekick</quote> fold handler that
- folds the buffer according to the structure tree. See the jEdit user's guide
- for general details about folding.
- </para>
- <para>
- <guimenu>Plugins</guimenu>><guisubmenu>SideKick</guisubmenu>><guimenuitem>Narrow to
- Asset at Caret</guimenuitem> hides all text except that of the asset at the
- caret location. This works in any folding mode, not just the <quote>sidekick</quote>
- mode.
- </para>
- </chapter>
- <chapter id="completion">
- <title>Completion</title>
- <para>
- A completion popup can be shown at any time
- by invoking the
- <guimenu>Plugins</guimenu>><guisubmenu>SideKick</guisubmenu>><guimenuitem>Show
- Completion Popup</guimenuitem> command. Each plugin that uses SideKick
- implements its own specific completion behavior; see the plugin documentation
- for details.
- </para>
- </chapter>
- <chapter id="other-plugins">
- <title>Developing SideKick back-ends</title>
- <para>
- By itself the SideKick plugin is not very useful; it relies on other plugins to
- provide buffer structure information. This chapter gives a brief overview of
- how it's done.
- </para>
- <sect1 id="preliminaries">
- <title>Preliminaries</title>
- <para>
- First you will also need to add a dependency for the SideKick plugin in your plugin's
- property file:
- </para>
- <programlisting>plugin.MyPlugin.depend.<replaceable>n</replaceable>=plugin sidekick.SideKickPlugin 0.1</programlisting>
- <para>
- Note that you must replace <replaceable>n</replaceable> with the
- appropriate number, as dependency properties must have consecutive numbers.
- </para>
- <para>
- All SideKick plugin classes are in the <classname>sidekick</classname> package;
- you will need to add <literal>import</literal> statements where appropriate.
- </para>
- <para>
- Parser instances must be registered using the
- <literal>services.xml</literal> file. With this, you define a service which
- returns a derived instance of <ulink url="jeditresource:/Sidekick.jar!/docs/api/sidekick/SideKickParser.html">
- <classname>SideKickParser</classname>
- </ulink>
- </para>
- <programlisting>
- <?xml version="1.0"?>
- <!DOCTYPE SERVICES SYSTEM "services.dtd">
- <SERVICES>
- <SERVICE CLASS="sidekick.SideKickParser" NAME="xml">
- new xml.parser.SAXParserImpl();
- </SERVICE>
- </SERVICES>
- </programlisting>
- </sect1>
- <sect1 id="class-sidekickparser">
- <title>The SideKickParser class</title>
- <para>
- <ulink url="jeditresource:/Sidekick.jar!/docs/api/sidekick/SideKickParser.html">
- <classname>SideKickParser</classname>
- </ulink> is an abstract class. The constructor takes one string parameter. This string is used in several properties:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <literal>sidekick.parser.<replaceable>name</replaceable>.label</literal>
- - specifies a human-readable label for the parser, shown in status messages. </para>
- <para> Your derived parser class should return this same name from the <literal>getName()</literal> function.
- </para>
- </listitem>
- <listitem>
- <para>
- <literal>mode.<replaceable>mode</replaceable>.sidekick.parser</literal>
- - properties of this form are used to associate a parser with an edit mode.
- </para>
- </listitem>
- </itemizedlist>
- <para>
- For example, the XML plugin, which used to provide two <classname>SideKickParser</classname>
- implementations, had these properties:
- </para>
- <programlisting>sidekick.parser.xml.label=XML
- mode.xml.sidekick.parser=xml
- mode.xsl.sidekick.parser=xml
- sidekick.parser.html.label=HTML
- mode.asp.sidekick.parser=html
- mode.coldfusion.sidekick.parser=html
- mode.html.sidekick.parser=html
- mode.jhtml.sidekick.parser=html
- mode.jsp.sidekick.parser=html
- mode.php.sidekick.parser=html
- mode.shtml.sidekick.parser=html
- mode.sgml.sidekick.parser=html
- mode.velocity.sidekick.parser=html</programlisting>
- </sect1>
- <sect1 id="implement-structure-tree">
- <title>Implementing a structure tree</title>
- <para>
- The <ulink url="jeditresource:/Sidekick.jar!/docs/api/sidekick/SideKickParser.html">
- <classname>SideKickParser</classname>
- </ulink> has one abstract method that all
- subclasses must implement:
- </para>
- <funcsynopsis>
- <funcprototype>
- <funcdef>public
- SideKickParsedData <function>parse</function>
- </funcdef>
- <paramdef>Buffer <parameter>buffer</parameter>
- </paramdef>
- <paramdef>DefaultErrorSource <parameter>errorSource</parameter>
- </paramdef>
- </funcprototype>
- </funcsynopsis>
- <para>
- The <literal>errorSource</literal> is an instance of a class provided by the
- <application>ErrorList</application> plugin; consult its documentation for
- details.
- </para>
- <para>
- The method is called from a thread, so care must be taken to access the
- buffer in a thread-safe manner; the API documentation for the
- <classname>Buffer</classname> class describes how this is done.
- </para>
- <para>
- Your implementation of the <function>parse()</function> method should create and return
- an instance of
- <ulink url="jeditresource:/Sidekick.jar!/docs/api/sidekick/SideKickParsedData.html">SideKickParsedData </ulink>. Its constructor of the takes one parameter, which is the file name (to be shown at the root of the structure tree). Your method should
- add structure elements to the <varname>root</varname> field of the instance.
- <varname>root</varname> is an instance of Java's <classname>DefaultMutableTreeNode</classname> class,
- and is given an initial value by the <classname>SideKickParsedData</classname> constructor.
- </para>
- <formalpara id="optionalPanel">
- <title> getPanel() </title>
- <para> Some SideKick parsers, such as CtagsSideKick, offer an additional toolbar to provide a convenient interface to change certain mode options such as sort by, and group by. They achieve this by overriding the <literal>getPanel()</literal> method of SideKickParser. </para>
- </formalpara>
- </sect1>
- <sect1 id="implement-completion">
- <title>Implementing completion popups</title>
- <para> Your derived instance of
- <ulink url="jeditresource:/Sidekick.jar!/docs/api/sidekick/SideKickParser.html">
- SideKickParser</ulink> can implement additional
- methods to tell Sidekick that your parser supports completions.
- </para>
- <programlisting>
- /* @return true if plugin supports completion */
- public boolean supportsCompletion();
- /* @return true if we show completions after a period of inactivity. */
- public boolean canCompleteAnywhere() ;
- /* @return a list of characters which trigger completion immediately. */
- public String getInstantCompletionTriggers();
- /* @return all completions at a given caret position for this
- editpane */
- public SideKickCompletion complete(EditPane editPane, int caret)
- </programlisting>
- <para> If your SideKickParser does support completion, the actual
- brains of the plugin goes in the last method, <literal>complete()</literal>,
- which must construct an instance of <ulink url="jeditresource:/Sidekick.jar!/docs/api/sidekick/SideKickCompletion.html">
- SideKickCompletion</ulink>, given an <literal>EditPane</literal> and a caret position.
- </para>
- <para>
- The constructor for <literal>SideKickCompletion</literal> accepts a list (or array) of possible values, these are the values that are displayed in the dropdown.
- This is an abstract class, so you'll need to derive a specific implementation. You may want to override the 'insert(int)' method to
- support language specifics, like "dot" completion.
- </para>
- <para>How you actually create the completion depends on the specific language and support classes, and the information provided by the parser for the current file. </para>
- </sect1>
- </chapter>
- <appendix id="futureplans">
- <title> Future Plans </title>
- <itemizedlist>
- <listitem>
- <para> Adding a Help tooltip to the CompletionPopup window and methods to the CompletinoInfo for getting/setting help.
- </para>
- </listitem>
- </itemizedlist>
- </appendix>
- <appendix id="changes">
- <title>Change log</title>
- <itemizedlist>
- <listitem>
- <para>
- <emphasis role="bold">Version 1.1</emphasis>
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Added options for showing the structure of the buffer in a toolbar (using
- combo-boxes), for cases where the tree takes too much screen space.
- </para>
- </listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Version 1.0</emphasis>
- </para>
- <itemizedlist>
- <listitem>
- <para>
- New macros / actions: search asset for selection and go to begin/end of function.
- </para>
- </listitem>
- <listitem>
- <para>
- Added a "macros/" dir where additional bsh macros can be placed.
- </para>
- </listitem>
- <listitem>
- <para>
- Fixes for 'go to next' and 'go to previous' asset, which also fixes Tracker 3008037.
- </para>
- </listitem>
- <listitem>
- <para>
- Fix for Shift-Click on sidekick tree to select the entire asset.
- </para>
- </listitem>
- <listitem>
- <para>
- Fix for Tracker 3081956, race condition during parse on save.
- </para>
- </listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Version 0.9</emphasis>
- </para>
- <itemizedlist>
- <listitem>
- <para>
- Added ability for SideKick derivatives to specify an initial tree expansion model. This model
- can be based on option settings or specific language characteristics. For example, the
- JavaSideKick could expand inner classes to show method names while leaving the imports node
- collapsed.
- </para>
- </listitem>
- <listitem>
- <para>
- Added ability to hide and disable the filter text area. Some users don't use it and it tends to
- grab focus away from the tree, so this new feature helps those users.
- </para>
- </listitem>
- <listitem>
- <para>
- Added alternate keyboard handling to the tree. Now using the arrow keys causes movement through
- the tree to work as a normal tree and all nodes are accessible with the arrow keys. Nodes are
- not automatically expanded as they are highlighted. The previous keyboard handling is accessible
- by using the Ctrl key with the up and down arrows, this will move the tree selection to the
- next/prev leaf nodes, which some people find useful when used in conjunction with the filter
- text box.
- </para>
- </listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Version 0.8</emphasis> requires JDK 1.5, jEdit 4.3pre17 and ErrorListPlugin 1.4. </para>
- <itemizedlist>
- <listitem>
- <para>
- Fixed issue where 'Select asset at caret' was not select the last character of the asset.
- </para>
- </listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Version 0.7.7</emphasis> requires JDK 1.5, jEdit 4.3pre14 and ErrorListPlugin 1.4.</para>
- <itemizedlist>
- <listitem>
- <para> Updated to 4.3pre17 API (using Iterator instead of Enumerator)
- </para>
- </listitem>
- <listitem>
- <para>
- Fixed "parse on save" so parsing does not occur when parse on save is not selected. (danson)
- </para>
- </listitem>
- <listitem>
- <para> Possible fix for 1633393, "TextArea painting corruption when saving". (danson)
- </para>
- </listitem>
- <listitem>
- <para> Fixed the auto-expand tree functionality that I broke earlier when adjusting it for the new filtering. (danson)
- </para>
- </listitem>
- <listitem>
- <para> Rearranged SideKick toolbars in dockable to add a text field for the "Filter" and a "clear" button to remove the current filter. Typing works as it did previously, that is, you don't have to click into the text field to begin entering a filter. (danson) </para>
- </listitem>
- <listitem>
- <para> Applied patch from bug#2134884 to resolve focus issues with filter textfield (Matthew Gilbert). </para>
- </listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Version 0.7.6</emphasis> requires JDK 1.5, jEdit 4.3pre14 and ErrorListPlugin 1.4.</para>
- <itemizedlist>
- <listitem>
- <para>Filtering capability in tree view (Matthew Gilbert, #1902558) </para>
- </listitem>
- <listitem>
- <para>
- Fixed a minor bug; typing over an active completion popup inactivated the popup. (Kazutoshi Satoda)
- </para>
- </listitem>
- <listitem>
- <para>
- Completion popup for explicit completion is now active as same as builtin completion. (Kazutoshi Satoda)
- </para>
- </listitem>
- <listitem>
- <para>
- Added a new option, which makes automatic completion popups get focus, to make the new behavior in 0.7.5 optional. (Kazutoshi Satoda, Bug #2027704)
- </para>
- </listitem>
- <listitem>
- <para>
- Fixed a memory leak; multiple parser specific panels could be held in SideKickTree. (Kazutoshi Satoda)
- </para>
- </listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Version 0.7.5</emphasis> requires JDK 1.5, jEdit 4.3pre11 and ErrorListPlugin 1.4.</para>
- <itemizedlist>
- <listitem>
- <para> Uses refactored CompletionPopup class in 4.3pre11. Checks the edit mode at the caret position for valid completions. When multiple completions are possible, Sidekick no longer selects the first item automatically when a space is typed. (1752044 - Kazutoshi Satoda). </para>
- </listitem>
- <listitem>
- <para>Fixed "sidekick fold starts in the previous line when the corresponding folding node starts at the beginning of the line ( 1767390 - Matthieu Casanova ) </para>
- </listitem>
- <listitem>
- <para>Fixed a minor memory leak when Sidekick is unloaded ( Matthieu Casanova ) </para>
- </listitem>
- <listitem>
- <para>Improved Mode Option Pane so it works properly when the edit mode is changed before an "ok/apply" (Shlomy Reinstein) </para>
- </listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Version 0.7.4</emphasis> requires JDK 1.5, jEdit 4.3pre8 and ErrorListPlugin 1.4.</para>
- <itemizedlist>
- <listitem>
- <para>Fixed "can't determine mode of buffer" ( 1744627 - Shlomy Reinstein ) </para>
- </listitem>
- <listitem>
- <para>Added support for SideKick Parser Services to offer a JPanel for inserting above the SideKickTree. (Shlomy Reinstein, # 1744797 ) </para>
- </listitem>
- <listitem>
- <para>Preserve horizontal scroll position (Vladimir Avondin # 1746146) </para>
- </listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Version 0.7.3</emphasis> requires JDK 1.5, jEdit 4.3pre8 and ErrorListPlugin 1.4.</para>
- <itemizedlist>
- <listitem>
- <para> Added parser setting from mode options pane. (ezust) </para>
- </listitem>
- <listitem>
- <para> NPE after install from plugin manager fixed. (Matthieu Casanova) </para>
- </listitem>
- <listitem>
- <para> Bug 1643614 fixed (reparse on mode change) </para>
- </listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Version 0.7.2</emphasis> requires JDK 1.5, jEdit 4.3pre8 and ErrorListPlugin 1.4.</para>
- <itemizedlist>
- <listitem>
- <para>Bugs 1617620,1624552 - Can't get rid of wrong parser. (hertzhaft, ezust) </para>
- </listitem>
- <listitem>
- <para>NPE fixed when a jEdit mode had no parser. (Matthieu Casanova) </para>
- </listitem>
- <listitem>
- <para>Added a dynamic parser switcher menu to a new ActionSet, allowing you to switch parsers via keyboard shortcuts. (ezust) </para>
- </listitem>
- <listitem>
- <para>Rewrote and simplified fold handler code (Matthieu Casanova). </para>
- </listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Version 0.7.1</emphasis> requires JDK 1.5, jEdit 4.3pre8 and ErrorListPlugin 1.4.</para>
- <itemizedlist>
- <listitem>
- <para> SF.net bugs 1072043, 1553554, 1506964 - Sidekick FoldHandler bugs fixed. </para>
- </listitem>
- <listitem>
- <para> SF.net bug # 1593604 - reparse on save happens only in the active view.
- </para>
- </listitem>
- <listitem>
- <para> Sf.net bug # 1595835 - can't switch to default parser
- </para>
- </listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Version 0.7</emphasis> requires JDK 1.5, jEdit 4.3pre8 and ErrorListPlugin 1.4.</para>
- <itemizedlist>
- <listitem>
- <para>
- Added a mode-specific option pane, so that settings can
- be customized on a mode basis by SideKick and its parser service plugins. (ezust).
- </para>
- </listitem>
- <listitem>
- <para>
- Made the completion popup accept-characters configurable. Prevented the completion popup from showing when the word at the caret is the same as a completion list entry. (hertzhaft) </para>
- </listitem>
- <listitem>
- <para>Recuses into non-asset nodes #1571697, 1573034. (shlomy) </para>
- </listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Version 0.6.6</emphasis> requires JDK 1.5, jEdit 4.3pre5 and ErrorListPlugin 1.4.</para>
- <itemizedlist>
- <listitem>
- <para>
- Added sidekick.util package. This contains classes to help integrate javacc-generated parsers with sidekick. (danson) </para>
- </listitem>
- <listitem>
- <para> Some work on the popup for code completion. It still doesn't work right with picking from the list with a mouse. (danson) </para>
- </listitem>
- <listitem>
- <para> Fix for a null pointer exception. (danson) </para>
- </listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Version 0.6.4</emphasis> requires JDK 1.5, jEdit 4.3pre5 and ErrorListPlugin 1.4. </para>
- <itemizedlist>
- <listitem>
- <para>
- Emits new EBMessage <classname>msg.CaretChanging</classname> when an asset is selected in the tree. (ezust) </para>
- </listitem>
- <listitem>
- <para> Mouse Clicks, PgUp and PgDn keys work from completion popups. Arrow keys don't wrap around anymore. (ezust) </para>
- </listitem>
- <listitem>
- <para> Popup menu on parse button for conveniently changing auto parse settings/caret follow settings (requires JDK 1.5). (ezust) </para>
- </listitem>
- <listitem>
- <para> Parse event bugfixes (ezust) </para>
- </listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Version 0.6.2</emphasis> requires JDK 1.4, jEdit 4.3pre3 and ErrorListPlugin 1.4.
- <itemizedlist>
- <listitem> <para> Broke up options "parse on buffer switch/save" into 2 separate options. Now you can parse on switch, or on save, or on both, and when you switch buffers with parse-on-switch off, the tree keeps its state. (Alan Ezust) </para>
- </listitem>
- <listitem>
- <para> Added option setting to turn off tool tips. Tool tips can be
- annoying on slower systems as they are not necessarily drawn quickly. (Dale Anson) </para>
- </listitem>
- <listitem>
- <para> Added option setting to be able to display a status window
- at the bottom of the tree. This window is larger than the jEdit status bar,
- so the full display of tree node can be shown. This is nice when tool tips
- are off and the node details are shown on more than one line. (Dale Anson) </para>
- </listitem>
- </itemizedlist>
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Version 0.6.1</emphasis> requires
- jEdit 4.3pre3 and ErrorListPlugin 1.4.
- <itemizedlist>
- <listitem><para> Made <varname>SideKickParser.name</varname>
- <literal>protected</literal>.
- </para>
- </listitem>
- <listitem>
- <para> Bug 1504746 fixed [combobox]. </para>
- </listitem>
- </itemizedlist>
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Version 0.6</emphasis> requires
- jEdit 4.3pre3 and ErrorListPlugin 1.4.
- <itemizedlist>
- <listitem> <para> Added a combo box to let you switch parsers on an individual buffer basis. (Alan Ezust) </para>
- </listitem>
- <listitem>
- <para> Improved Documentation. (Alan Ezust) </para>
- </listitem>
- <listitem>
- <para> No more multi-line StatusBar messages. Using <function>getShortString()</function>
- instead of <function>getLongString()</function>. (Alan Ezust) </para>
- </listitem>
- </itemizedlist>
- </para>
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Version 0.5</emphasis> requires jEdit 4.3pre3 and ErrorListPlugin 1.2.</para>
- <itemizedlist>
- <listitem>
- <para> SideKick now auto-expands the proper depth of the tree, and properly follows the textarea's caret as the selected node in the sidekick. (Dale Anson) </para>
- </listitem>
- <listitem>
- <para> A new context menu exists in SideKick permitting the user to set and view markers. (Martin Raspe) </para>
- </listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Version 0.4</emphasis> requires
- jEdit 4.3pre3 and ErrorListPlugin 1.2.</para>
- <itemizedlist>
- <listitem>
- <para> Moved 4 classes from the PerlSideKick plugin into this plugin. The classes are in <literal>package sidekick.enhanced</literal>.
- This is so that we can break the dependency between
- JavaScriptSideKick and PerlSideKick. </para>
- </listitem>
- <listitem>
- <para> Patched for 4.3pre3 API </para>
- </listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Version 0.3.4</emphasis> requires
- jEdit 4.2final.</para>
- <itemizedlist>
- <listitem>
- <para>Added a new <classname>IAsset</classname> interface that can be
- used instead of the <classname>Asset</classname> abstract class to realize more flexible
- inheritance relationships.</para>
- </listitem>
- <listitem>
- <para>Added a new option pane to associate edit modes with SideKick parsers.</para>
- </listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Version 0.3.3</emphasis> requires
- jEdit 4.2final.</para>
- <itemizedlist>
- <listitem>
- <para>The completion popup is now positioned within the screen bounds.</para>
- </listitem>
- <listitem>
- <para>The <classname>SideKickCompletion</classname> class is now much more full-featured (but backwards-compatible, if you ignore the new features).</para>
- </listitem>
- <listitem>
- <para>Some changes were made to the way the parser works to improve perceived responsiveness.</para>
- </listitem>
- <listitem>
- <para>The <classname>SideKickParsedData</classname> associated with a buffer was not unset when the SideKick plugin was unloaded, and as a result, reloading the
- SideKick plugin would horribly break buffers using the <quote>sidekick</quote> fold handler.</para>
- </listitem>
- <listitem>
- <para>The option to delay parsing after a keystroke did not work; the timeout was always fixed at 1.5 seconds.</para>
- </listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Version 0.3.2</emphasis> requires
- jEdit 4.2final and ErrorListPlugin 1.2.</para>
- <itemizedlist>
- <listitem>
- <para>Fixed NullPointerException in <guimenuitem>Select Asset</guimenuitem>.</para>
- </listitem>
- <listitem>
- <para>Sometimes a buffer would be parsed more than once in a row.</para>
- </listitem>
- <listitem>
- <para>Fixed a bug that would show the completion popup twice if the <guilabel>Show completion popups where possible</guilabel> option was on andthe popup trigger delay was larger than 0 seconds and the user invoked the <guilabel>complete</guilabel> action before the trigger delay run out. (Dirk Moebius)</para>
- </listitem>
- <listitem>
- <para>Fixed a bug where typing with the completion popup open would not insert keys if there were no completions available.</para>
- </listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Version 0.3.1</emphasis> requires
- jEdit 4.2pre3 and ErrorListPlugin 1.2.</para>
- <itemizedlist>
- <listitem>
- <para>
- <classname>SideKickCompletion</classname> implementations can now disable automatic completion popups.</para>
- </listitem>
- <listitem>
- <para>Fix a problem in buffer listener handling.</para>
- </listitem>
- <listitem>
- <para>Various other minor fixes.</para>
- </listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Version 0.3</emphasis> requires
- jEdit 4.2pre3 and ErrorListPlugin 1.1.</para>
- <itemizedlist>
- <listitem>
- <para>Updated for jEdit 4.2 API changes.</para>
- </listitem>
- <listitem>
- <para>Added <function>getParseTriggers()</function> method
- to <classname>SideKickParser</classname> class.</para>
- </listitem>
- <listitem>
- <para>Added <function>getErrorSource()</function> method
- to <classname>SideKickPlugin</classname> class.</para>
- </listitem>
- <listitem>
- <para>Cleaned up and debugged completion code.</para>
- </listitem>
- <listitem>
- <para>Previously if the <guilabel>parse on keystroke</guilabel>
- option was on, an in-progress parse was not stopped. This resulted in poor
- performance. Now, an API has been added for stopping parsing (although only
- the XML plugin uses it at the moment). Combined with the position optimization
- in jEdit 4.2pre3, this should result in improved responsiveness when editing
- large XML files.</para>
- </listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Version 0.2</emphasis> requires
- jEdit 4.1pre11 and ErrorListPlugin 1.0.</para>
- <itemizedlist>
- <listitem>
- <para>Fixed a thread safety problem.
- </para>
- </listitem>
- <listitem>
- <para>Added <function>activate()</function> and
- <function>deactivate()</function> methods to
- <classname>SideKickParser</classname> class. These methods are called when
- a buffer using this parser is selected and deselected in a given view.
- </para>
- </listitem>
- <listitem>
- <para>The priority of the thread used by SideKick to parse files
- is now the minimum priority.
- </para>
- </listitem>
- <listitem>
- <para>jEdit keyboard shortcuts now work when invoked while a
- completion popup is open.
- </para>
- </listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <para>
- <emphasis role="bold">Version 0.1</emphasis> requires
- jEdit 4.1pre11.</para>
- <itemizedlist>
- <listitem>
- <para>Initial release.
- </para>
- </listitem>
- </itemizedlist>
- </listitem>
- </itemizedlist>
- </appendix>
- </book>