/bundles/plugins-trunk/ErrorList/users-guide.xml

# · XML · 670 lines · 547 code · 119 blank · 4 comment · 0 complexity · e5aee5bd1ef2efca617defb948cae65c MD5 · raw file

  1. <?xml version="1.0"?>
  2. <!-- ErrorList user's guide -->
  3. <!-- (C) 2001, 2005 Slava Pestov -->
  4. <!-- jEdit buffer-local properties: -->
  5. <!-- :tabSize=1:indentSize=1:noTabs=true:folding=sidekick: -->
  6. <article xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  7. xsi:noNamespaceSchemaLocation='http://www.docbook.org/xsd/4.4/docbook.xsd' >
  8. <articleinfo><title>ErrorList plugin user's guide</title>
  9. <author><firstname>Slava</firstname><surname>Pestov</surname></author>
  10. <legalnotice><title>Legal Notice</title>
  11. <para>
  12. Permission is granted to copy, distribute and/or modify this document
  13. under the terms of the GNU Free Documentation License, Version 1.1 or
  14. any later version published by the Free Software Foundation; with no
  15. <quote>Invariant Sections</quote>, <quote>Front-Cover Texts</quote> or
  16. <quote>Back-Cover Texts</quote>, each as defined in the license. A copy of
  17. the license can be found in the file <filename>COPYING.DOC.txt</filename>
  18. included with jEdit.
  19. </para>
  20. </legalnotice>
  21. </articleinfo>
  22. <section id="intro"><title>Introduction</title>
  23. <para>
  24. The ErrorList plugin displays errors and warnings
  25. generated by other plugins. It does
  26. nothing on its own; for it to be useful, some plugins that support the
  27. error reporting API must be installed.
  28. </para>
  29. <para>
  30. The error reporting API is particularly well-suited to reporting compiler errors
  31. and such; plugins that use this API include Console, JCompiler, and
  32. SideKick.
  33. If you would like to use it from your plugin, see <xref linkend="api" />.
  34. </para>
  35. </section>
  36. <section id="window"><title>The error list window</title>
  37. <para>
  38. <guimenu>Plugins</guimenu>&gt;<guisubmenu>Error
  39. List</guisubmenu>&gt;<guimenuitem>Error List</guimenuitem> displays the error
  40. list window.
  41. </para>
  42. <para>
  43. Errors are shown in a tree control, with each branch being a file, and each
  44. leaf an error. Clicking on a file will open that file; clicking on an error
  45. will open the file containing the error and move the caret to its location.
  46. </para>
  47. <para>
  48. The buttons with the error and warning icons on the left of the window
  49. toolbar enable you to toggle the display of errors and warnings.
  50. </para>
  51. <para>
  52. The error reporting API supports two types of errors; genuine errors and
  53. warnings. The two are differentiated with different-colored icons in the
  54. tree; errors have a red icon, warnings have a yellow one.
  55. </para>
  56. <para>
  57. For information on keyboard-based navigation of the tree, see
  58. <xref linkend="actions" />.
  59. </para>
  60. </section>
  61. <section id="highlight"><title>Error highlighting</title>
  62. <para>
  63. The ErrorList plugin highlights errors in-place in the text area with
  64. a colored underline. The color depends on the error type; genuine errors
  65. have a red underline, warnings have a yellow one.
  66. </para>
  67. <para>
  68. Hovering the mouse over a line with an error highlight will show a tooltip
  69. with the error message.
  70. </para>
  71. <para>
  72. Error highlighting can be disabled in the <guibutton>Error List</guibutton> pane
  73. of the <guimenuitem>Plugin Options</guimenuitem> dialog box. The colors of
  74. the underlines can also be changed in that same option pane.
  75. </para>
  76. </section>
  77. <section id="overview"><title>Error overview</title>
  78. <para>
  79. When a buffer has errors, the ErrorList plugin displays a global overview of
  80. all errors in a vertical bar to the left of the
  81. text area's vertical scroll bar. Each error is shown as a thin horizontal
  82. line. The color depends on the error type; genuine errors
  83. have a red underline, warnings have a yellow one.
  84. Clicking on an error will scroll the text area to that location.
  85. Hovering the mouse over an error will show a tooltip
  86. with the error message.
  87. </para>
  88. <para>
  89. The error overview can be disabled in the <guibutton>Error List</guibutton>
  90. pane of the <guimenuitem>Plugin Options</guimenuitem> dialog box. The colors
  91. of the highlights can also be changed in that same option pane.
  92. </para>
  93. </section>
  94. <section id="actions"><title>Additional commands</title>
  95. <para>
  96. The ErrorList plugin provides a few additional commands that can be bound to
  97. keyboard shortcuts in the <guibutton>Shortcuts</guibutton> pane of the
  98. <guimenuitem>Global Options</guimenuitem> dialog box.
  99. </para>
  100. <para>
  101. <guimenu>Plugins</guimenu>&gt;<guisubmenu>Error
  102. List</guisubmenu>&gt;<guimenuitem>Go to Previous Error</guimenuitem> moves the
  103. caret to the error immediately before the one currently selected in the
  104. error list window. If no error is selected, the last error in the list is
  105. chosen. This will open the appropriate file if the error is in a
  106. different file.
  107. </para>
  108. <para>
  109. <guimenu>Plugins</guimenu>&gt;<guisubmenu>Error
  110. List</guisubmenu>&gt;<guimenuitem>Go to Next Error</guimenuitem> moves the
  111. caret to the error immediately after the one currently selected in the
  112. error list window. If no error is selected, the first error in the list is
  113. chosen. This will open the appropriate file if the error is in a
  114. different file.
  115. </para>
  116. <para>
  117. <guimenu>Plugins</guimenu>&gt;<guisubmenu>Error
  118. List</guisubmenu>&gt;<guimenuitem>Go to Previous File With Errors</guimenuitem>
  119. opens the file immediately before the one currently selected in the error
  120. list window. If no file is selected, the last file with errors is chosen.
  121. </para>
  122. <para>
  123. <guimenu>Plugins</guimenu>&gt;<guisubmenu>Error
  124. List</guisubmenu>&gt;<guimenuitem>Go to Next File With Errors</guimenuitem>
  125. opens the file immediately after the one currently selected in the error
  126. list window. If no file is selected, the first file with errors is chosen.
  127. </para>
  128. <para>
  129. <guimenu>Plugins</guimenu>&gt;<guisubmenu>Error
  130. List</guisubmenu>&gt;<guimenuitem>Toggle Display of Errors</guimenuitem>
  131. toggles the display of errors in the tree.
  132. </para>
  133. <para>
  134. <guimenu>Plugins</guimenu>&gt;<guisubmenu>Error
  135. List</guisubmenu>&gt;<guimenuitem>Toggle Display of Warnings</guimenuitem>
  136. toggles the display of warnings in the tree.
  137. </para>
  138. </section>
  139. <section id="options"> <title> ErrorList Options </title>
  140. <para> Errorlist offers the following configurable options. </para>
  141. <glosslist>
  142. <glossentry>
  143. <glossterm> Automatically Display on Error </glossterm>
  144. <glossdef> <para> Show the errorlist whenever an error is found </para> </glossdef>
  145. </glossentry>
  146. <glossentry>
  147. <glossterm> Auto-close on no errors </glossterm>
  148. <glossdef> <para> Hide the errorlist when there are no errors </para></glossdef>
  149. </glossentry>
  150. <glossentry>
  151. <glossterm> Auto-refocus on text area </glossterm>
  152. <glossdef><para> Give the TextArea keyboard focus after the ErrorList is shown </para></glossdef>
  153. </glossentry>
  154. <glossentry>
  155. <glossterm> Show Error Overview </glossterm>
  156. <glossdef><para> Show totals (errors/warnings) at top of errorlist </para></glossdef>
  157. </glossentry>
  158. <glossentry>
  159. <glossterm> Filename Filters </glossterm>
  160. <glossdef><para> Select whether you want the glob pattern to be for inclusion or exclusion, and enter a glob pattern below. For example: <literal>*.{c,h}</literal> specifies all C source and header files. See Appendix D. "Glob Patterns" in the jEdit users guide for more details.
  161. </para></glossdef>
  162. </glossentry>
  163. <glossentry>
  164. <glossterm> Show Icons instead of Underlines </glossterm>
  165. <glossdef><para> To make jEdit more "eclipse-like" put icons in the gutter instead of underlines. </para></glossdef>
  166. </glossentry>
  167. </glosslist>
  168. </section>
  169. <section id="api"><title>The error reporting API</title>
  170. <para>
  171. The error reporting API is very simple. A plugin that wishes to use it must
  172. do these three things:
  173. </para>
  174. <itemizedlist>
  175. <listitem><para>Specify that it requires the ErrorList plugin.</para></listitem>
  176. <listitem><para>Register an <quote>error source</quote> at some stage,
  177. usually during startup.</para></listitem>
  178. <listitem><para>Add errors to the error source when they occur.</para></listitem>
  179. </itemizedlist>
  180. <para>
  181. The ErrorList plugin handles
  182. the rest (displaying errors in a list, error highlighting, and
  183. so on) automatically.
  184. </para>
  185. <note>
  186. <para>
  187. All error list classes mentioned in this section are contained in the
  188. <filename>errorlist</filename> package. So you should add an import statement
  189. like the following to the start of your plugin's source file(s):
  190. </para>
  191. <programlisting>import errorlist.*;</programlisting>
  192. </note>
  193. <section id="api-deps"><title>Specifying dependencies</title>
  194. <para>
  195. In order to give the user a helpful error message if the ErrorList
  196. plugin is not installed, your plugin should specify dependency properties.
  197. If your plugin's core class is named <classname>MyPlugin</classname>, the
  198. corresponding dependencies might look like so:
  199. </para>
  200. <programlisting>plugin.MyPlugin.depend.0=jedit 04.02.02.00
  201. plugin.MyPlugin.depend.2=plugin errorlist.ErrorListPlugin 1.3</programlisting>
  202. <para>
  203. Note that the current version of the ErrorList plugin requires jEdit 4.2pre2
  204. or later, so your plugin should also require at least that jEdit version.
  205. If a newer version of the ErrorList plugin is available, you can
  206. specify higher version numbers than in the example above. However, all the
  207. API calls in this section are guaranteed to work with the above version,
  208. so in most cases you shouldn't worry about it.
  209. </para>
  210. </section>
  211. <section id="api-register"><title>Creating and registering an error source</title>
  212. <para>
  213. Errors are managed by implementations of the
  214. <classname>errorlist.ErrorSource</classname> abstract class.
  215. Extending this class is a bit involved and requires writing a lot of
  216. low-level code; most
  217. plugins can use the <classname>errorlist.DefaultErrorSource</classname>
  218. class instead, which provides a very easy-to-use front-end.
  219. </para>
  220. <para>
  221. The constructor for the <classname>DefaultErrorSource</classname> class
  222. accepts one parameter; a string that will identify the error source.
  223. Currently, this identifier is not used, but in the future the ErrorList plugin
  224. might show which error comes from which plugin, for example.
  225. </para>
  226. <para>
  227. Error sources should be registered when the user first invokes your
  228. plugins. A plugin can create any number of error sources.
  229. The Console plugin, for example, maintains a separate error source for each
  230. console window, and registers an unregisters them as consoles are opened
  231. and closed.
  232. </para>
  233. <para>
  234. To add an error source to the list of registered error sources, you must call
  235. the static <function>registerErrorSource()</function> method of the
  236. <classname>errorlist.ErrorSource</classname> class.
  237. </para>
  238. <para>
  239. A corresponding <function>unregisterErrorSource()</function> method must be
  240. called before your plugin is unloaded to avoid leaking memory.
  241. </para>
  242. </section>
  243. <section id="api-report"><title>Reporting errors</title>
  244. <para>
  245. A custom <classname>ErrorSource</classname> implementation would need to
  246. send the appropriate EditBus message when an error arrives, and then
  247. provide implementations of various <quote>getter</quote> methods that
  248. the ErrorList plugin would later call to obtain the error.
  249. Using <classname>DefaultErrorSource</classname> makes the task much easier.
  250. In fact, all that is involved is calling a single method on the appropriate
  251. <classname>DefaultErrorSource</classname> instance:
  252. </para>
  253. <funcsynopsis>
  254. <funcprototype>
  255. <funcdef>public void <function>addError</function></funcdef>
  256. <paramdef>DefaultErrorSource.DefaultError <parameter>error</parameter></paramdef>
  257. </funcprototype>
  258. </funcsynopsis>
  259. <para>
  260. The constructor of the <classname>DefaultErrorSource.DefaultError</classname>
  261. class is as follows:
  262. </para>
  263. <funcsynopsis>
  264. <funcprototype>
  265. <funcdef>public <function>DefaultError</function></funcdef>
  266. <paramdef>int <parameter>type</parameter></paramdef>
  267. <paramdef>String <parameter>path</parameter></paramdef>
  268. <paramdef>int <parameter>line</parameter></paramdef>
  269. <paramdef>int <parameter>start</parameter></paramdef>
  270. <paramdef>int <parameter>end</parameter></paramdef>
  271. <paramdef>String <parameter>message</parameter></paramdef>
  272. </funcprototype>
  273. </funcsynopsis>
  274. <itemizedlist>
  275. <listitem><para><varname>type</varname> - this should be either
  276. <classname>ErrorSource.ERROR</classname> or
  277. <classname>ErrorSource.WARNING</classname>.</para></listitem>
  278. <listitem><para><varname>path</varname> - the path name or URL of
  279. the file containing the error. If this is a relative path, it will
  280. be qualified relative to the current working directory
  281. (<literal>user.dir</literal> system property). However, it is best to qualify
  282. it beforehand, using the <function>MiscUtilities.constructPath()</function>
  283. method.</para></listitem>
  284. <listitem><para><varname>line</varname> - the line number in the file
  285. where the error occurred. Lines are numbered starting from zero; since most
  286. tools and compilers report line numbers starting from 1, you might need to
  287. subtract 1 from the number before passing it to this method.</para></listitem>
  288. <listitem><para><varname>start</varname> - an offset in the line where
  289. the error begins.</para></listitem>
  290. <listitem><para><varname>end</varname> - an offset in the line where
  291. the error ends. These two values are only used to give a more exact
  292. display for error highlighting, and if both are zero, the entire line will be
  293. highlighted.</para></listitem>
  294. <listitem><para><varname>message</varname> - the error message itself,
  295. as shown in the error list window and error highlighting tooltips.
  296. </para></listitem>
  297. </itemizedlist>
  298. <para>
  299. This method is fully thread safe; if your plugin generates errors from
  300. another thread, it can call this method without having to use any of the
  301. usual <function>SwingUtilities.invokeLater()</function> tricks required
  302. when calling non-thread safe methods.
  303. </para>
  304. <para>
  305. Here are two examples of <function>addError()</function> calls. The first
  306. adds a warning, covering the entire line, the second adds an error that
  307. only applies to a subset of the specified line:
  308. </para>
  309. <programlisting>errorSource.addError(new ErrorSource.DefaultError(
  310. ErrorSource.WARNING,path,line,0,0,
  311. "Are you sure this is what you intended?"));
  312. errorSource.addError(new ErrorSource.DefaultError(
  313. ErrorSource.WARNING,
  314. MiscUtilities.constructPath(directory,"input.src"),
  315. line,0,5,"First five characters of line are bad"));</programlisting>
  316. <para>
  317. Multiple-line messages can be created by calling the following method
  318. on the <classname>DefaultError</classname> instance before it is added
  319. to the error source (the last part is important, otherwise the extra
  320. messages will not be shown):
  321. </para>
  322. <funcsynopsis>
  323. <funcprototype>
  324. <funcdef>public void <function>addExtraMessage</function></funcdef>
  325. <paramdef>String <parameter>extra</parameter></paramdef>
  326. </funcprototype>
  327. </funcsynopsis>
  328. <para>
  329. That's basically all there is to it. There is one more method in the
  330. <classname>DefaultErrorSource</classname> class that needs to be mentioned:
  331. </para>
  332. <funcsynopsis>
  333. <funcprototype>
  334. <funcdef>public void <function>clear</function></funcdef>
  335. <void />
  336. </funcprototype>
  337. </funcsynopsis>
  338. <para>
  339. This method removes all errors from the error source. It is typically
  340. called before each invocation of the operation that generates errors;
  341. for example, the Console plugin clears its error source before each new
  342. command is run.
  343. </para>
  344. <funcsynopsis>
  345. <funcprototype>
  346. <funcdef>public void <function>removeFileErrors</function></funcdef>
  347. <void />
  348. </funcprototype>
  349. </funcsynopsis>
  350. <para>
  351. For more selective error removal, this method can be used to remove errors
  352. associated with one file only.
  353. </para>
  354. </section>
  355. <section><title>Performance Considerations</title>
  356. <para>
  357. Only create and register an <classname>ErrorSource</classname> instance
  358. when necessary. Do not do this in your plugin's <function>start()</function>
  359. method, since that forces the ErrorList to be loaded, etc. The "lazy" fashion is the best:
  360. Register the error source only after sending the first error.
  361. </para>
  362. </section>
  363. </section>
  364. <appendix id="changes"><title>Change log</title>
  365. <itemizedlist>
  366. <listitem>
  367. <formalpara><title>Version 1.9</title> <para>requires JDK 1.5, and jEdit 4.3.99.00. </para> </formalpara>
  368. <itemizedlist>
  369. <listitem><para> Fixed deadlock condition arising from new EditBus behavior in jEdit 4.4 (Kazutoshi Satoda) </para></listitem>
  370. </itemizedlist>
  371. </listitem>
  372. <listitem>
  373. <formalpara><title>Version 1.8</title> <para>requires JDK 1.5, and jEdit 4.3pre7. </para> </formalpara>
  374. <itemizedlist>
  375. <listitem><para> display error.extraMessages in GutterIcon (Dwayne Bernard - # 1854405) </para></listitem>
  376. <listitem><para> Remembers state of error/warning buttons (Shlomy Reinstein) </para></listitem>
  377. <listitem><para> Automatically Show on Errors no longer shows when only hidden warnings pass through (#2907190 - Shlomy Reinstein) </para></listitem>
  378. <listitem><para> No longer displays ErrorList when adding a zero-length ErrorSource. (#1869137 - Alan Ezust) </para></listitem>
  379. <listitem><para> Enable multiple errors at different offsets in a same line. (Patch #2011885 - kerik) </para></listitem>
  380. </itemizedlist>
  381. </listitem>
  382. <listitem>
  383. <formalpara><title>Version 1.7</title> <para>requires JDK 1.5, and jEdit 4.3pre7. </para> </formalpara>
  384. <itemizedlist>
  385. <listitem><para> <classname>DefaultErrorSource.DefaultError</classname> has new method: <methodname>setFilePath()</methodname> (for SshConsole). </para></listitem>
  386. </itemizedlist>
  387. </listitem>
  388. <listitem>
  389. <formalpara><title>Version 1.6</title> <para>requires JDK 1.5, and jEdit 4.3pre7. </para> </formalpara>
  390. <itemizedlist>
  391. <listitem><para> New option to hide warnings (patch 1719791 by Shlomy Reinstein) </para></listitem>
  392. <listitem><para> New options to filter files based on filename globs. (Shlomy Reinstein) </para></listitem>
  393. <listitem><para> New option to show icons instead of underlines under errors (Shlomy Reinstein, 1653073) </para></listitem>
  394. <listitem><para> Improved keyboard Handling when ErrorList has focus (patch 1729970 by k_satoda) </para></listitem>
  395. </itemizedlist>
  396. </listitem>
  397. <listitem><formalpara><title>Version 1.5</title>
  398. <para>requires JDK 1.4, and jEdit 4.2 final. </para></formalpara>
  399. <itemizedlist>
  400. <listitem><para>Bugfix to avoid displaying duplicate errors (k_satoda). </para></listitem>
  401. <listitem><para>New option: autoRefocusTextArea:
  402. When ErrorList gets focus, it now deliberately passes the focus back to the current jEditTextArea. (ezust)
  403. </para></listitem>
  404. </itemizedlist></listitem>
  405. <listitem>
  406. <formalpara>
  407. <title>Version 1.4</title>
  408. <para>requires jEdit 4.2final. </para>
  409. </formalpara>
  410. <itemizedlist>
  411. <listitem><para>Add option to close error list after no errors remain (Gerd Knops).
  412. </para></listitem>
  413. <listitem><para>Option "Automatically display on error" no longer causes ErrorList
  414. to request the focus, so that the cursor stays in the edit pane (Dirk Moebius).
  415. </para></listitem>
  416. </itemizedlist>
  417. </listitem>
  418. <listitem><formalpara><title>Version 1.3.2</title><para>requires
  419. jEdit 4.2pre8.
  420. </para></formalpara>
  421. <itemizedlist>
  422. <listitem><para>After adding and adding an error source, removing and adding it again would not add the error source to the EditBus, so it would not receive notifications of buffers being opened, and as a result floating positions for errors would not be created.</para></listitem>
  423. <listitem><para>Fix display of selected entires in the error list when using the GTK look and feel.</para></listitem>
  424. <listitem><para>New icons for errors and warnings.</para></listitem>
  425. </itemizedlist>
  426. </listitem>
  427. <listitem><formalpara><title>Version 1.3.1</title><para>requires
  428. jEdit 4.2pre2.
  429. </para></formalpara>
  430. <itemizedlist>
  431. <listitem><para><guilabel>Show on error</guilabel> option didn't always work.</para></listitem>
  432. <listitem><para>Fixed exception when using GTK+ look and feel.</para></listitem>
  433. <listitem><para>Fixed assorted problems when file paths contained
  434. symbolic links.</para></listitem>
  435. </itemizedlist>
  436. </listitem>
  437. <listitem><formalpara><title>Version 1.3</title><para>requires
  438. jEdit 4.2pre2.
  439. </para></formalpara>
  440. <itemizedlist>
  441. <listitem><para>Added optional <quote>error overview</quote> to the right of
  442. the text area (on by default).
  443. </para></listitem>
  444. <listitem><para>Added buttons to the error list window
  445. for going to the next and previous error and
  446. file with errors, respectively.
  447. </para></listitem>
  448. <listitem><para>Fixed problem with errors appearing twice when
  449. the <guilabel>Show on error</guilabel> option was on.
  450. </para></listitem>
  451. <listitem><para>Fixed problems with soft wrap.
  452. </para></listitem>
  453. <listitem><para>Fixed problems with split views.
  454. </para></listitem>
  455. <listitem><para>Updated for jEdit 4.2 API changes.
  456. </para></listitem>
  457. <listitem><para>Added <function>removeFileErrors()</function> method to
  458. <classname>DefaultErrorSource</classname> class.
  459. </para></listitem>
  460. <listitem><para>Performance improvements.
  461. </para></listitem>
  462. </itemizedlist>
  463. </listitem>
  464. <listitem><formalpara><title>Version 1.2.3</title><para>requires
  465. jEdit 4.1pre2.
  466. </para></formalpara>
  467. <itemizedlist>
  468. <listitem><para>The error list no longer flashes like a deprived man due to
  469. constant tree collapsing and expansion if errors are being added in a
  470. background thread.
  471. </para></listitem>
  472. <listitem><para>Error tool tips were not shown for some errors.
  473. </para></listitem>
  474. <listitem><para>Highlighter no longer paints wavy lines, since with some
  475. fonts this would result in the line extending below the bottom of the
  476. text descent. Now the error highlights are plain vanilla underlines.
  477. </para></listitem>
  478. <listitem><para>Fixed minor issue with error tree root node.
  479. </para></listitem>
  480. <listitem><para>Updated code to use a few 4.1 API additions.
  481. </para></listitem>
  482. </itemizedlist>
  483. </listitem>
  484. <listitem><formalpara><title>Version 1.2.2</title><para>requires
  485. jEdit 4.0pre4.
  486. </para></formalpara>
  487. <itemizedlist>
  488. <listitem><para>Fixed possible <classname>NullPointerException</classname>
  489. under Java 2 version 1.4.
  490. </para></listitem>
  491. <listitem><para>Error highlight didn't work properly when soft wrap was
  492. enabled.
  493. </para></listitem>
  494. <listitem><para>If the <quote>show on error</quote> feature is enabled, the
  495. error list will now open in the currently focused view, not the most
  496. recently opened view as before.
  497. </para></listitem>
  498. </itemizedlist>
  499. </listitem>
  500. <listitem><formalpara><title>Version 1.2.1</title><para>requires
  501. jEdit 4.0pre4.
  502. </para></formalpara>
  503. <itemizedlist>
  504. <listitem><para>Updated to use jEdit 4.0pre4 text area extension API.
  505. </para></listitem>
  506. </itemizedlist>
  507. </listitem>
  508. <listitem><formalpara><title>Version 1.2</title><para>requires jEdit 4.0pre1.
  509. </para></formalpara>
  510. <itemizedlist>
  511. <listitem><para>Updated for jEdit 4.0 API changes.</para></listitem>
  512. <listitem><para>EditBus plugin merged with this one.</para></listitem>
  513. <listitem><para>Changes to error source API; see <xref linkend="api" />
  514. for details.</para></listitem>
  515. </itemizedlist>
  516. </listitem>
  517. <listitem><formalpara><title>Version 1.1.2</title><para>requires jEdit 3.2pre8
  518. and the EditBus plugin 1.1.</para></formalpara>
  519. <itemizedlist>
  520. <listitem><para>If the error list was open but not visible, the
  521. <guilabel>Show on error</guilabel> option would do nothing.</para></listitem>
  522. <listitem><para>If no error sources were registered, all highlights added
  523. after the error list would not be painted.</para></listitem>
  524. </itemizedlist>
  525. </listitem>
  526. <listitem><formalpara><title>Version 1.1.1</title><para>requires jEdit 3.2pre8
  527. and the EditBus plugin 1.1.</para></formalpara>
  528. <itemizedlist>
  529. <listitem><para>Line numbers in the tree are now increased by one, so that
  530. they match the textarea line numbers (Dirk Moebius)</para></listitem>
  531. <listitem><para>The commands "Next/Previous Error" and "Next/Previous File
  532. With Errors" now ensure that the newly selected error is visible
  533. (Dirk Moebius)</para></listitem>
  534. <listitem><para>Supports multiple-line error messages, introduced
  535. by EditBus 1.1</para></listitem>
  536. </itemizedlist>
  537. </listitem>
  538. <listitem><formalpara><title>Version 1.1</title><para>requires jEdit 3.2pre8
  539. and the EditBus plugin 1.0.1.</para></formalpara>
  540. <itemizedlist>
  541. <listitem><para>Errors are now shown in a tree, not a list</para></listitem>
  542. <listitem><para>Error highlighting does not highlight leading whitespace
  543. of lines, leading to better appearance</para></listitem>
  544. <listitem><para>Minor update for jEdit 3.2 selection API</para></listitem>
  545. <listitem><para>Documentation generated with DocBook</para></listitem>
  546. <listitem><para>Error reporting API documentation included</para></listitem>
  547. </itemizedlist>
  548. </listitem>
  549. </itemizedlist>
  550. </appendix>
  551. </article>