blob: 9f977b038df5a96a6d630fe7a901e4b2be344255 [file] [log] [blame]
<html>
<!--
NO NO NO NO NO!
==============> DO NOT EDIT ME! <======================
AUTOMATICALLY GENERATED FROM APICHANGES.XML, DO NOT EDIT
SEE editor/util/api/apichanges.xml
-->
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Change History for the Editor Utilities API</title>
<link rel="stylesheet" href="prose.css" type="text/css">
</head>
<body>
<p class="overviewlink">
<a href="overview-summary.html" shape="rect">Overview</a>
</p>
<h1>Introduction</h1>
<p>This document lists changes made to the <a href="" shape="rect">Editor Utilities
API</a>. Please ask on the <code>dev@openide.netbeans.org</code> mailing list
if you have any questions about the details of a
change, or are wondering how to convert existing code to be compatible.</p>
<!-- The actual lists of changes, as summaries and details: -->
<hr>
<h1>
<a name="list-all-apis">Index of APIs</a>
</h1>
<ul>
<li>
<a href="#uncategorized-api">Uncategorized changes</a>
</li>
</ul>
<h1>
<a name="incompat-by-date">Incompatible changes by date</a>
</h1>
<p>Fuller descriptions of all changes can be found below (follow links).</p>
<p>Not all deprecations are listed here, assuming that the deprecated
APIs continue to essentially work. For a full deprecation list, please
consult the
<a href="deprecated-list.html">Javadoc</a>.</p>
<ul>
<li>(Oct 17 '06) <a href="#ListenerList.getListeners">ListenerList.getListeners() return type changed.</a>
</li>
<li>(Oct 11 '06) <a href="#CompactMap.MapEntry-abstract">CompactMap.MapEntry made an abstract class (not interface).</a>
</li>
<li>(Mar 13 '05) <a href="#org.netbeans.lib.editor.util">Repackaged to org.netbeans.lib.editor.util package</a>
</li>
</ul>
<h1>
<a name="all-by-date">All changes by date</a>
</h1>
<ul>
<li>(Feb 22 '16) <a href="#GapListAddAll">Added methods to append elements to a GapList</a>
</li>
<li>(May 20 '14) <a href="#EventPropertyStorage.test">Added test for property storage support on events</a>
</li>
<li>(Dec 10 '12) <a href="#StringEscapeUtils">Added String escape utils</a>
</li>
<li>(Jul 30 '12) <a href="#BlockCompare-invalidX">Added BlockCompare.invalidX() and invalidY()</a>
</li>
<li>(Mar 9 '10) <a href="#DocumentUtilities.document-property-listeners">Added support for document property listeners</a>
</li>
<li>(Jan 14 '10) <a href="#DocumentUtilities.getDocumentTimestamp-added">Added DocumentUtilities.getDocumentTimestamp(Document)</a>
</li>
<li>(Feb 1 '09) <a href="#DocumentUtilities.getDocumentVersion-added">Added DocumentUtilities.getDocumentVersion(Document)</a>
</li>
<li>(Jun 16 '08) <a href="#DocumentUtilities.debugOffset-added">Added DocumentUtilities.debugOffset(Document, int)</a>
</li>
<li>(Jan 10 '08) <a href="#getMimeType-added">Added DocumentUtilities.getMimeType</a>
</li>
<li>(Oct 17 '07) <a href="#CharacterConversions-added">Added CharacterConversions class</a>
</li>
<li>(Sep 21 '07) <a href="#DocumentListenerPriority.FIRST-added">Added DocumentListenerPriority.FIRST</a>
</li>
<li>(Sep 17 '07) <a href="#DocumentUtilities.getDocumentListenerCount-added">Added DocumentUtilities.getDocumentListenerCount().</a>
</li>
<li>(Sep 4 '07) <a href="#ArrayUtilities.binarySearch-added">Added ArrayUtilities.binarySearch(...) methods.</a>
</li>
<li>(Mar 27 '07) <a href="#DocumentUtilities.isReadLocked-isWriteLocked">Added DocumentUtilities.isReadLocked() and isWriteLocked().</a>
</li>
<li>(Jan 16 '07) <a href="#FlyOffsetGapList.elementOrEndOffset">Added FlyOffsetGapList.elementOrEndOffset().</a>
</li>
<li>(Dec 6 '06) <a href="#DocumentListenerPriority.LEXER"><code>DocumentListenerPriority.LEXER</code> added</a>
</li>
<li>(Nov 16 '06) <a href="#ArrayUtilities.unmodifiableList">Added ArrayUtilities.unmodifiableList().</a>
</li>
<li>(Oct 17 '06) <a href="#ListenerList.getListeners">ListenerList.getListeners() return type changed.</a>
</li>
<li>(Oct 11 '06) <a href="#CompactMap.MapEntry-abstract">CompactMap.MapEntry made an abstract class (not interface).</a>
</li>
<li>(Sep 13 '06) <a href="#ListenerList-DocumentListenerPriority.VIEW">Added ListenerList and DocumentListenerPriority.VIEW.</a>
</li>
<li>(Jun 14 '05) <a href="#PositionComparator-PositionRegion">Added PositionComparator and PositionRegion</a>
</li>
<li>(Mar 24 '05) <a href="#DocumentUtilities.addDocumentListener-priority">Added document listeners ordering support</a>
</li>
<li>(Mar 13 '05) <a href="#org.netbeans.lib.editor.util">Repackaged to org.netbeans.lib.editor.util package</a>
</li>
</ul>
<h1>
<a name="all-by-version">Changes by version</a>
</h1>
<p>
These API specification versions may be used to indicate that a module
requires a certain API feature in order to function. For example, if you
see here a feature you need which is labelled <samp>1.20</samp>, your
manifest should contain in its main attributes the line:
</p>
<pre>OpenIDE-Module-Module-Dependencies: org.netbeans.modules.editor.util &gt; 1.20</pre>
<ul>
<li>
(1.64) <a href="#GapListAddAll">Added methods to append elements to a GapList</a>
</li>
<li>
(1.60) <a href="#EventPropertyStorage.test">Added test for property storage support on events</a>
</li>
<li>
(1.52) <a href="#StringEscapeUtils">Added String escape utils</a>
</li>
<li>
(1.49) <a href="#BlockCompare-invalidX">Added BlockCompare.invalidX() and invalidY()</a>
</li>
<li>
(1.35) <a href="#DocumentUtilities.document-property-listeners">Added support for document property listeners</a>
</li>
<li>
(1.34) <a href="#DocumentUtilities.getDocumentTimestamp-added">Added DocumentUtilities.getDocumentTimestamp(Document)</a>
</li>
<li>
(1.28) <a href="#DocumentUtilities.getDocumentVersion-added">Added DocumentUtilities.getDocumentVersion(Document)</a>
</li>
<li>
(1.25) <a href="#DocumentUtilities.debugOffset-added">Added DocumentUtilities.debugOffset(Document, int)</a>
</li>
<li>
(1.23) <a href="#getMimeType-added">Added DocumentUtilities.getMimeType</a>
</li>
<li>
(1.21) <a href="#CharacterConversions-added">Added CharacterConversions class</a>
</li>
<li>
(1.20) <a href="#DocumentListenerPriority.FIRST-added">Added DocumentListenerPriority.FIRST</a>
</li>
<li>
(1.19) <a href="#DocumentUtilities.getDocumentListenerCount-added">Added DocumentUtilities.getDocumentListenerCount().</a>
</li>
<li>
(1.18) <a href="#ArrayUtilities.binarySearch-added">Added ArrayUtilities.binarySearch(...) methods.</a>
</li>
<li>
(1.17) <a href="#DocumentUtilities.isReadLocked-isWriteLocked">Added DocumentUtilities.isReadLocked() and isWriteLocked().</a>
</li>
<li>
(1.16) <a href="#FlyOffsetGapList.elementOrEndOffset">Added FlyOffsetGapList.elementOrEndOffset().</a>
</li>
<li>
(1.15) <a href="#DocumentListenerPriority.LEXER"><code>DocumentListenerPriority.LEXER</code> added</a>
</li>
<li>
(1.14) <a href="#ArrayUtilities.unmodifiableList">Added ArrayUtilities.unmodifiableList().</a>
</li>
<li>
(1.13) <a href="#ListenerList.getListeners">ListenerList.getListeners() return type changed.</a>
</li>
<li>
(1.12) <a href="#CompactMap.MapEntry-abstract">CompactMap.MapEntry made an abstract class (not interface).</a>
</li>
<li>
(1.11) <a href="#ListenerList-DocumentListenerPriority.VIEW">Added ListenerList and DocumentListenerPriority.VIEW.</a>
</li>
<li>
(1.6) <a href="#PositionComparator-PositionRegion">Added PositionComparator and PositionRegion</a>
</li>
<li>
(1.5) <a href="#org.netbeans.lib.editor.util">Repackaged to org.netbeans.lib.editor.util package</a>
</li>
<li>
(1.4) <a href="#DocumentUtilities.addDocumentListener-priority">Added document listeners ordering support</a>
</li>
</ul>
<h1>
<a name="all-by-class">Changes by affected class</a>
</h1>
<h2>
<a name="org.netbeans.lib.editor.util.GapList"><code><span style="color:gray">org.netbeans.lib.editor.util.</span>GapList</code></a>
</h2><ul><li>(Feb 22 '16) <a href="#GapListAddAll">Added methods to append elements to a GapList</a>
</li></ul><hr>
<h1>
<a name="details-by-api">Details of all changes by API and date</a>
</h1>
<hr style="width:50%">
<h2>
<a name="uncategorized-api">Uncategorized changes</a>
</h2>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="GapListAddAll">Added methods to append elements to a GapList</a>
</h3>
<em>Feb 22 '16; API spec. version: 1.64; affected top-level classes: <a href="./org/netbeans/lib/editor/util/GapList.html"><code>GapList</code></a>; made by: mmetelka; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=257888">
#257888</a></em>
<br>
Added supplementary methods to GapList to accompany the existing
methods to add elements.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="EventPropertyStorage.test">Added test for property storage support on events</a>
</h3>
<em>May 20 '14; API spec. version: 1.60; made by: sdedic</em>
<br>
Presence of property storage depends on the event publisher or document implementation. A client that
wants to attach property to the event should be able to check whether the feature is available. In past
the check was done by testing the implementation document type, which is not desirable.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="StringEscapeUtils">Added String escape utils</a>
</h3>
<em>Dec 10 '12; API spec. version: 1.52; made by: mkristofic</em>
<br>
<p>
Added <code>StringEscapeUtils.escapeHtml</code> and <code>StringEscapeUtil.unescapeHtml</code>
to escape text to html.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="BlockCompare-invalidX">Added BlockCompare.invalidX() and invalidY()</a>
</h3>
<em>Jul 30 '12; API spec. version: 1.49; made by: mmetelka</em>
<br>
<p>
Added <code>BlockCompare.invalidX()</code> and <code>BlockCompare.invalidY()</code>
to check for invalid bounds of compared blocks.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="DocumentUtilities.document-property-listeners">Added support for document property listeners</a>
</h3>
<em>Mar 9 '10; API spec. version: 1.35; made by: vstejskal</em>
<br>
<p>
Adding <code>DocumentUtilities.addPropertyChangeListener(Document, PropertyChangeListener)</code>
and <code>DocumentUtilities.removePropertyChangeListener(Document, PropertyChangeListener)</code> in order
to support listening on document property changes.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="DocumentUtilities.getDocumentTimestamp-added">Added DocumentUtilities.getDocumentTimestamp(Document)</a>
</h3>
<em>Jan 14 '10; API spec. version: 1.34; made by: vstejskal</em>
<br>
<p>
Adding DocumentUtilities.getDocumentTimestamp(Document) to provide access
to documents' timestamp property.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="DocumentUtilities.getDocumentVersion-added">Added DocumentUtilities.getDocumentVersion(Document)</a>
</h3>
<em>Feb 1 '09; API spec. version: 1.28; made by: vstejskal</em>
<br>
<p>
Adding DocumentUtilities.getDocumentVersion(Document) to provide access
to documents' version property.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="DocumentUtilities.debugOffset-added">Added DocumentUtilities.debugOffset(Document, int)</a>
</h3>
<em>Jun 16 '08; API spec. version: 1.25; made by: mmetelka</em>
<br>
<p>
Adding DocumentUtilities.debugOffset(Document, int) to dump both the integer offset
and line and column as seen in editor's status bar.
PositionRegion.toString(doc) debugs its bounds using debugOffset().
Added PositionRegion.getText() and PositionRegion.getString() to obtain text of the region.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="getMimeType-added">Added DocumentUtilities.getMimeType</a>
</h3>
<em>Jan 10 '08; API spec. version: 1.23; made by: vstejskal</em>
<br>
<p>
Adding <code>DocumentUtilities.getMimeType(Document)</code> and
<code>DocumentUtilities.getMimeType(JTextComponent)</code> in order
to standardize access to documents' mimetype.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="CharacterConversions-added">Added CharacterConversions class</a>
</h3>
<em>Oct 17 '07; API spec. version: 1.21; made by: vstejskal</em>
<br>
<p>
Adding <code>CharacterConversions</code> as a replacement for
<code>org.netbeans.editor.LineSeparatorConversion</code>, which was
deprecated.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="DocumentListenerPriority.FIRST-added">Added DocumentListenerPriority.FIRST</a>
</h3>
<em>Sep 21 '07; API spec. version: 1.20; made by: mmetelka</em>
<br>
<p>
<code>DocumentListenerPriority.FIRST</code> is called prior any other
priority levels.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="DocumentUtilities.getDocumentListenerCount-added">Added DocumentUtilities.getDocumentListenerCount().</a>
</h3>
<em>Sep 17 '07; API spec. version: 1.19; made by: mmetelka</em>
<br>
<p>
DocumentUtilities.getDocumentListenerCount() returns total count
of document listeners attached to a document covering the case when
the document priority listening is used.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="ArrayUtilities.binarySearch-added">Added ArrayUtilities.binarySearch(...) methods.</a>
</h3>
<em>Sep 4 '07; API spec. version: 1.18; made by: vstejskal</em>
<br>
<p>
ArrayUtilities.binarySearch(int [] array, int key) and its variants
can be used for searching in sorted integer array (eg. containing
document offsets, etc.).
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="DocumentUtilities.isReadLocked-isWriteLocked">Added DocumentUtilities.isReadLocked() and isWriteLocked().</a>
</h3>
<em>Mar 27 '07; API spec. version: 1.17; made by: mmetelka</em>
<br>
<p>
DocumentUtilities.isReadLocked() and isWriteLocked() allow to check
whether AbstractDocument based documents are currently read/write-locked.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="FlyOffsetGapList.elementOrEndOffset">Added FlyOffsetGapList.elementOrEndOffset().</a>
</h3>
<em>Jan 16 '07; API spec. version: 1.16; made by: mmetelka</em>
<br>
<p>
<code>FlyOffsetGapList.elementOrEndOffset()</code> added for use by lexer module
to get either an element's offset or end offset of the last element.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="DocumentListenerPriority.LEXER"><code>DocumentListenerPriority.LEXER</code> added</a>
</h3>
<em>Dec 6 '06; API spec. version: 1.15; made by: mmetelka</em>
<br>
<p>
<code>DocumentListenerPriority.LEXER</code> added for use by lexer module to update
token list for a document.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="ArrayUtilities.unmodifiableList">Added ArrayUtilities.unmodifiableList().</a>
</h3>
<em>Nov 16 '06; API spec. version: 1.14; made by: mmetelka</em>
<br>
<p>
ArrayUtilities.unmodifiableList() return simple unmodifiable list
for the given object array.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="ListenerList.getListeners">ListenerList.getListeners() return type changed.</a>
</h3>
<em>Oct 17 '06; API spec. version: 1.13; made by: vstejskal</em>
<br>
<p>
ListenerList.getListeners now returns List&lt;T&gt; instead of T[]. The listeners
are returned in exactly the same order as they were added to the ListenerList.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="CompactMap.MapEntry-abstract">CompactMap.MapEntry made an abstract class (not interface).</a>
</h3>
<em>Oct 11 '06; API spec. version: 1.12; made by: mmetelka</em>
<br>
<p>
CompactMap.MapEntry was made an abstract class (instead of original interface)
to prevent misuse of CompactMap.MapEntry.setNextMapEntry(). CompactMap.AbstractMapEntry was removed.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="ListenerList-DocumentListenerPriority.VIEW">Added ListenerList and DocumentListenerPriority.VIEW.</a>
</h3>
<em>Sep 13 '06; API spec. version: 1.11; made by: mmetelka</em>
<br>
<p>
Added ListenerList and added DocumentListenerPriority.VIEW.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="PositionComparator-PositionRegion">Added PositionComparator and PositionRegion</a>
</h3>
<em>Jun 14 '05; API spec. version: 1.6; made by: mmetelka; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=59388">
#59388</a></em>
<br>
<p>
Added two new classes PositionComparator and PositionRegion
and a new level AFTER_CARET_UPDATE to DocumentListenerPriority class.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="DocumentUtilities.addDocumentListener-priority">Added document listeners ordering support</a>
</h3>
<em>Mar 24 '05; API spec. version: 1.4; made by: mmetelka; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=35034">
#35034</a></em>
<br>
<p>
Added document listeners ordering support through
<code>DocumentUtilities.addDocumentListener(doc, listener, priority)</code>.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="org.netbeans.lib.editor.util">Repackaged to org.netbeans.lib.editor.util package</a>
</h3>
<em>Mar 13 '05; API spec. version: 1.5; made by: mmetelka; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=56339">
#56339</a></em>
<br>
<p>
The present classes were repackaged from org.netbeans.modules.editor.util
into org.netbeans.lib.editor.util package to fulfil the editor module
split proposal <a href="http://www.netbeans.org/issues/show_bug.cgi?id=51486" shape="rect">#51486</a>
according to which the editor classes independent of the NB IDE
should be placed under org.netbeans.lib package.
</p>
<hr>
<p><span class="footnote">Built on September 14 2018.&nbsp;&nbsp;|&nbsp;&nbsp; Copyright &#169; 2017-2018 Apache Software Foundation. All Rights Reserved.</span></p>
</body>
</html>