blob: 455184aa2aeac89a553efd353a54828719f6bd4f [file] [log] [blame]
<html>
<!--
NO NO NO NO NO!
==============> DO NOT EDIT ME! <======================
AUTOMATICALLY GENERATED FROM APICHANGES.XML, DO NOT EDIT
SEE lexer/api/doc/changes/apichanges.xml
-->
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Lexer API Changes by Date</title>
<link rel="stylesheet" href="prose.css" type="text/css">
<meta name="CATEGORY" content="OtherDevelopmentDoc">
<meta name="DESCRIPTION" content="A cross-indexed list of all changes made to the Lexer API.">
</head>
<body>
<h1>Introduction</h1>
<h2>What do the Dates Mean?</h2>
<p>The supplied dates indicate when the API change was made, on the CVS
trunk. From this you can generally tell whether the change should be
present in a given build or not; for trunk builds, simply whether it
was made before or after the change; for builds on a stabilization
branch, whether the branch was made before or after the given date. In
some cases corresponding API changes have been made both in the trunk
and in an in-progress stabilization branch, if they were needed for a
bug fix; this ought to be marked in this list.</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="#api">Lexer API</a>
</li>
<li>
<a href="#spi">Lexer SPI</a>
</li>
<li>
<a href="#swing">Lexer Swing API</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>(Nov 5 '07) <a href="#Lexer-API-Cleanup">Lexer API Cleanup</a>
</li>
<li>(Nov 3 '07) <a href="#LexerInput.integerState-removed">Removing LexerInput.integerState</a>
</li>
<li>(Aug 30 '07) <a href="#embedding.joinSections.support">Support for embeddings that join sections</a>
</li>
<li>(May 16 '07) <a href="#api.Language.refresh.remove">Removed previously added Language.refresh().</a>
</li>
<li>(Mar 1 '07) <a href="#api.PartType.added">Added PartType for token parts support</a>
</li>
<li>(Jan 16 '07) <a href="#api.tokensequence.move.semantics">Changed TokenSequence.move() and moveIndex() use</a>
</li>
<li>(Dec 7 '06) <a href="#api.lexer.release">Added Lexer.release()</a>
</li>
<li>(Nov 23 '06) <a href="#api.customembedding">Adding custom embedding creation TokenSequence.createEmbedding()</a>
</li>
<li>(Oct 12 '06) <a href="#spi.languageprovider.findLanguageEmbedding">LanguageProvider.findEmbeddedLanguage() changed to findLanguageEmbedding</a>
</li>
<li>(Oct 11 '06) <a href="#generification.improved">Improved generification</a>
</li>
<li>(Sep 18 '06) <a href="#api.tokensequence.move">TokenSequence.moveOffset() renamed to move()</a>
</li>
<li>(Aug 30 '06) <a href="#spi.tokenhandler">Removed TokenIdFilter and TokenHandler</a>
</li>
<li>(May 5 '06) <a href="#api.rebuild">Rebuilt the API and SPI completely</a>
</li>
</ul>
<h1>
<a name="all-by-date">All changes by date</a>
</h1>
<ul>
<li>(May 28 '08) <a href="#Joined-sections-Lexing">Joined Sections Lexing</a>
</li>
<li>(Nov 5 '07) <a href="#Lexer-API-Cleanup">Lexer API Cleanup</a>
</li>
<li>(Nov 3 '07) <a href="#LexerInput.integerState-removed">Removing LexerInput.integerState</a>
</li>
<li>(Oct 5 '07) <a href="#TokenSequence.removeEmbedding-added">Possibility to remove a previously created custom embedding</a>
</li>
<li>(Aug 30 '07) <a href="#embedding.joinSections.support">Support for embeddings that join sections</a>
</li>
<li>(Aug 17 '07) <a href="#api.LanguageHierarchy.embeddingPresence.added">Added LanguageHierarchy.embeddingPresence()</a>
</li>
<li>(Jun 5 '07) <a href="#api.TokenHierarchy.embeddedTokenSequences.added">Added TokenHierarchy.embeddedTokenSequences</a>
</li>
<li>(May 16 '07) <a href="#api.Language.refresh.remove">Removed previously added Language.refresh().</a>
</li>
<li>(Apr 27 '07) <a href="#api.Language.refresh">Added Language.refresh().</a>
</li>
<li>(Apr 13 '07) <a href="#api.TokenHierarchy.tokenSequenceList">Added TokenHierarchy.tokenSequenceList().</a>
</li>
<li>(Mar 23 '07) <a href="#api.TokenChange.isBoundsChange">Added TokenChange.isBoundsChange().</a>
</li>
<li>(Mar 1 '07) <a href="#api.PartType.added">Added PartType for token parts support</a>
</li>
<li>(Jan 16 '07) <a href="#api.tokensequence.move.semantics">Changed TokenSequence.move() and moveIndex() use</a>
</li>
<li>(Dec 7 '06) <a href="#api.lexer.release">Added Lexer.release()</a>
</li>
<li>(Nov 23 '06) <a href="#api.customembedding">Adding custom embedding creation TokenSequence.createEmbedding()</a>
</li>
<li>(Oct 18 '06) <a href="#api.languageDescription.find">Adding LanguageDescription.find(String mimePath)</a>
</li>
<li>(Oct 12 '06) <a href="#spi.languageprovider.findLanguageEmbedding">LanguageProvider.findEmbeddedLanguage() changed to findLanguageEmbedding</a>
</li>
<li>(Oct 11 '06) <a href="#generification.improved">Improved generification</a>
</li>
<li>(Sep 18 '06) <a href="#api.tokensequence.move">TokenSequence.moveOffset() renamed to move()</a>
</li>
<li>(Sep 14 '06) <a href="#spi.languageprovider">Added LanguageProvider</a>
</li>
<li>(Aug 30 '06) <a href="#spi.tokenhandler">Removed TokenIdFilter and TokenHandler</a>
</li>
<li>(May 5 '06) <a href="#api.rebuild">Rebuilt the API and SPI completely</a>
</li>
<li>(May 16 '03) <a href="#lexerinput.getreadtext">Added LexerInput.getReadText() and LexerInput.isEOFLookahead()</a>
</li>
<li>(Sep 20 '02) <a href="#lexerinput.readlength">Added LexerInput.getReadLength() and LexerInput.createToken(TokenId, tokenLength)
and renamed TokenTextMatcher to SampleTextMatcher</a>
</li>
<li>(Sep 20 '02) <a href="#api.lexer.swing">Added swing subpackage to API</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.lexer/1 &gt; 1.20</pre>
<ul>
<li>
(1.28) <a href="#Joined-sections-Lexing">Joined Sections Lexing</a>
</li>
<li>
(1.25) <a href="#Lexer-API-Cleanup">Lexer API Cleanup</a>
</li>
<li>
(1.24) <a href="#LexerInput.integerState-removed">Removing LexerInput.integerState</a>
</li>
<li>
(1.23) <a href="#TokenSequence.removeEmbedding-added">Possibility to remove a previously created custom embedding</a>
</li>
<li>
(1.22) <a href="#embedding.joinSections.support">Support for embeddings that join sections</a>
</li>
<li>
(1.21) <a href="#api.LanguageHierarchy.embeddingPresence.added">Added LanguageHierarchy.embeddingPresence()</a>
</li>
<li>
(1.20) <a href="#api.TokenHierarchy.embeddedTokenSequences.added">Added TokenHierarchy.embeddedTokenSequences</a>
</li>
<li>
(1.19) <a href="#api.Language.refresh.remove">Removed previously added Language.refresh().</a>
</li>
<li>
(1.18) <a href="#api.Language.refresh">Added Language.refresh().</a>
</li>
<li>
(1.17) <a href="#api.TokenHierarchy.tokenSequenceList">Added TokenHierarchy.tokenSequenceList().</a>
</li>
<li>
(1.16) <a href="#api.TokenChange.isBoundsChange">Added TokenChange.isBoundsChange().</a>
</li>
<li>
(1.14) <a href="#api.PartType.added">Added PartType for token parts support</a>
</li>
<li>
(1.13) <a href="#api.tokensequence.move.semantics">Changed TokenSequence.move() and moveIndex() use</a>
</li>
<li>
(1.12) <a href="#api.lexer.release">Added Lexer.release()</a>
</li>
<li>
(1.11) <a href="#api.customembedding">Adding custom embedding creation TokenSequence.createEmbedding()</a>
</li>
<li>
(1.10) <a href="#api.languageDescription.find">Adding LanguageDescription.find(String mimePath)</a>
</li>
<li>
(1.9) <a href="#spi.languageprovider.findLanguageEmbedding">LanguageProvider.findEmbeddedLanguage() changed to findLanguageEmbedding</a>
</li>
<li>
(1.8) <a href="#generification.improved">Improved generification</a>
</li>
<li>
(1.7) <a href="#api.tokensequence.move">TokenSequence.moveOffset() renamed to move()</a>
</li>
<li>
(1.6) <a href="#spi.languageprovider">Added LanguageProvider</a>
</li>
<li>
(1.5) <a href="#spi.tokenhandler">Removed TokenIdFilter and TokenHandler</a>
</li>
<li>
(1.4) <a href="#api.rebuild">Rebuilt the API and SPI completely</a>
</li>
<li>
(1.3) <a href="#lexerinput.getreadtext">Added LexerInput.getReadText() and LexerInput.isEOFLookahead()</a>
</li>
<li>
(1.2) <a href="#lexerinput.readlength">Added LexerInput.getReadLength() and LexerInput.createToken(TokenId, tokenLength)
and renamed TokenTextMatcher to SampleTextMatcher</a>
</li>
<li>
(1.1) <a href="#api.lexer.swing">Added swing subpackage to API</a>
</li>
</ul>
<h1>
<a name="all-by-class">Changes by affected class</a>
</h1>
<hr>
<h1>
<a name="details-by-api">Details of all changes by API and date</a>
</h1>
<hr style="width:50%">
<h2>
<a name="api">Lexer API</a>
</h2>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="Joined-sections-Lexing">Joined Sections Lexing</a>
</h3>
<em>May 28 '08; API spec. version: 1.28; made by: mmetelka; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=117450">
#117450</a></em>
<br>
<p>
Embeddings that request input sections to be joined before lexing
are now lexed as a single section.
<br>
<code>Token.isRemoved()</code> was added to check whether a particular token
is still present in token hierarchy or whether it was removed as part of a modification.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="Lexer-API-Cleanup">Lexer API Cleanup</a>
</h3>
<em>Nov 5 '07; API spec. version: 1.25; made by: mmetelka; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=120052">
#120052</a></em>
<br>
<p>
Support for token hierarchy snapshots and generic character preprocessing
was removed from the API and SPI since there were no usecases yet
and it should be possible to add the functionality later in a backward compatible way.
Some more changes regarding generification etc. were performed.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="LexerInput.integerState-removed">Removing LexerInput.integerState</a>
</h3>
<em>Nov 3 '07; API spec. version: 1.24; made by: vstejskal; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=88641">
#88641</a></em>
<br>
<p>
<code>LexerInput.integerState()</code> was removed.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="TokenSequence.removeEmbedding-added">Possibility to remove a previously created custom embedding</a>
</h3>
<em>Oct 5 '07; API spec. version: 1.23; made by: mmetelka; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=94365">
#94365</a></em>
<br>
<p>
<code>TokenSequence.removeEmbedding()</code> was added as counterpart
to <code>TokenSequence.createEmbedding()</code>.
<br>
Also <code>TokenSequence.isValid()</code> was added to check whether
the token sequence can be used for iteration (no modifications
of the underlying input in the meantime).
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="embedding.joinSections.support">Support for embeddings that join sections</a>
</h3>
<em>Aug 30 '07; API spec. version: 1.22; made by: mmetelka; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=87014">
#87014</a></em>
<br>
<p>
Joining sections embeddings now supported and some minor changes
were introduced like adding <code>LanguagePath.parent()</code>.
Some is* methods with trivial implementations were removed from LanguagePath.
<code>TokenChange.embeddedChange(Language)</code> was removed because
there might be multiple such changes and they can be gathered
with existing methods.
</p>
<br>
<em><a href="http://wiki.netbeans.org/VersioningPolicy#Compatible_change_on_the_trunk">Binary-compatible</a></em>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="api.LanguageHierarchy.embeddingPresence.added">Added LanguageHierarchy.embeddingPresence()</a>
</h3>
<em>Aug 17 '07; API spec. version: 1.21; made by: mmetelka; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=112465">
#112465</a></em>
<br>
<p>
Added <code>LanguageHierarchy.embeddingPresence()</code> method
and <code>EmbeddingPresence</code> enum to speed up queries
for embedded token sequences.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="api.TokenHierarchy.embeddedTokenSequences.added">Added TokenHierarchy.embeddedTokenSequences</a>
</h3>
<em>Jun 5 '07; API spec. version: 1.20; made by: vstejskal</em>
<br>
<p>
Added <code>TokenHierarchy.embeddedTokenSequences</code> method.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="api.Language.refresh.remove">Removed previously added Language.refresh().</a>
</h3>
<em>May 16 '07; API spec. version: 1.19; made by: mmetelka; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=102435">
#102435</a></em>
<br>
<p>
Removed previously added <code>Language.refresh()</code> since
there is an alternative in using LanguageProvider.firePropertyChange(PROP_LANGUAGE).
</p>
<br>
<em><a href="http://wiki.netbeans.org/VersioningPolicy#Compatible_change_on_the_trunk">Binary-compatible</a></em>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="api.Language.refresh">Added Language.refresh().</a>
</h3>
<em>Apr 27 '07; API spec. version: 1.18; made by: mmetelka; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=102435">
#102435</a></em>
<br>
<p>
Added <code>Language.refresh()</code> to allow languages framework
and other clients to update contents of a language dynamically.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="api.TokenHierarchy.tokenSequenceList">Added TokenHierarchy.tokenSequenceList().</a>
</h3>
<em>Apr 13 '07; API spec. version: 1.17; made by: mmetelka; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=95569">
#95569</a></em>
<br>
<p>
Added <code>TokenHierarchy.tokenSequenceList()</code> to find
token sequences having certain language path throughout the whole input source
or just within given offset bounds.
<br>
Also added <code>LanguagePath.embedded(language)</code>
and <code>LanguagePath.embedded(suffixLanguagePath)</code>.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="api.TokenChange.isBoundsChange">Added TokenChange.isBoundsChange().</a>
</h3>
<em>Mar 23 '07; API spec. version: 1.16; made by: mmetelka; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=93644">
#93644</a></em>
<br>
<p>
Added <code>TokenChange.isBoundsChange()</code> to check
for changes that only modify token bounds (see method's javadoc).
<br>
Improved incrementality for embedded sections for bounds changes.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="api.PartType.added">Added PartType for token parts support</a>
</h3>
<em>Mar 1 '07; API spec. version: 1.14; made by: mmetelka; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=91184">
#91184</a></em>
<br>
<p>
Added <code>PartType</code> enum and <code>Token.partType()</code>
that identifies whether the token is COMPLETE or which part
of a complete token this part represents (START, INNER or END).
</p>
<br>
<em><a href="http://wiki.netbeans.org/VersioningPolicy#Compatible_change_on_the_trunk">Binary-compatible</a></em>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="api.tokensequence.move.semantics">Changed TokenSequence.move() and moveIndex() use</a>
</h3>
<em>Jan 16 '07; API spec. version: 1.13; made by: mmetelka; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=90796">
#90796</a></em>
<br>
<p>
Changed the <code>TokenSequence.move()</code> to position <b>before</b> the particular token
that "contains" the offset (or after the last token if the given offset
is too high). Additional <code>moveNext()</code> is necessary
to actually move to the next token.
<br>
<code>TokenSequence.moveIndex()</code> was modified in a similar way
(see javadocs).
<br>
<code>TokenSequence.moveFirst()</code> and <code>moveLast()</code>
were replaced by <code>moveStart()</code> that positionins before
the first token and by <code>moveEnd()</code> that positions
after the last token.
<br>
<code>TokenSequence.isEmpty()</code> added to check whether there are
no tokens in the TS.
</p>
<br>
<em><a href="http://wiki.netbeans.org/VersioningPolicy#Compatible_change_on_the_trunk">Binary-compatible</a></em>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="api.lexer.release">Added Lexer.release()</a>
</h3>
<em>Dec 7 '06; API spec. version: 1.12; made by: mmetelka; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=89000">
#89000</a></em>
<br>
<p>
Added <code>Lexer.release()</code> useful for lexer instances caching.
</p>
<br>
<em><a href="http://wiki.netbeans.org/VersioningPolicy#Compatible_change_on_the_trunk">Binary-compatible</a></em>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="api.customembedding">Adding custom embedding creation TokenSequence.createEmbedding()</a>
</h3>
<em>Nov 23 '06; API spec. version: 1.11; made by: mmetelka; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=86473">
#86473</a></em>
<br>
<p>
Extracted <code>TokenHierarchyEvent.Type</code> inner class
into <code>TokenHierarchyEventType</code> top-level class.
<br>
Adding <code>TokenSequence.createEmbedding()</code>
method for creation of a custom embedding.
<code>TokenHierarchyEventType.EMBEDDING</code> fired
after embedding creation.
<br>
Affected offset information (<code>affectedStartOffset()</code>
and <code>affectedEndOffset()</code>) moved
from <code>TokenChange</code> to <code>TokenHierarchyEvent</code>
<br>
There can be now more than one embedded change in a TokenChange.
<br>
Removed <code>tokenComplete</code> parameter from
<code>LanguageHierarchy.embedding()</code> because the token incompletness
will be handled in a different way.
<br>
Swapped order of <code>token</code> and <code>languagePath</code>
parameters in <code>LanguageProvider</code> to be in sync with
<code>LanguageHierarchy.embedding()</code>.
<br>
<code>LanguageEmbedding</code> is now a final class
(instead of abstract class) with private constructor
and static <code>create()</code> method. That allows better control
over the evolution of the class and it also allows to cache the created embeddings
to save memory.
<br>
<code>LanguageEmbedding</code> is now generified with the
<code>T extends TokenId</code> which is a generification
of the language which it contains.
<br>
<code>TokenHierarchy.languagePaths()</code> set contains all language paths
used in the token hierarchy. <code>TokenHierarchyEventType.LANGUAGE_PATHS</code>
fired after change of that set.
</p>
<br>
<em><a href="http://wiki.netbeans.org/VersioningPolicy#Compatible_change_on_the_trunk">Binary-compatible</a></em>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="api.languageDescription.find">Adding LanguageDescription.find(String mimePath)</a>
</h3>
<em>Oct 18 '06; API spec. version: 1.10; made by: vstejskal</em>
<br>
<p>
Adding the LanguageDescription.find(String mimePath) method, which can
be used for looking up <code>LanguageDescription</code>s by their
mime types.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="generification.improved">Improved generification</a>
</h3>
<em>Oct 11 '06; API spec. version: 1.8; made by: mmetelka</em>
<br>
<p>
Generification of methods of LanguagePath, TokenSequence and other classes
has been improved.
</p>
<br>
<em><a href="http://wiki.netbeans.org/VersioningPolicy#Compatible_change_on_the_trunk">Binary-compatible</a></em>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="api.rebuild">Rebuilt the API and SPI completely</a>
</h3>
<em>May 5 '06; API spec. version: 1.4; made by: mmetelka</em>
<br>
<p>
The original API and SPI were <b>rebuilt completely</b> (under editor_api branch)
to comply with the standard requirements for the NetBeans APIs and allow
for better API evolution in the future.
<br>
The major version of the lexer module was increased to 2.
</p>
<br>
<em><a href="http://wiki.netbeans.org/VersioningPolicy#Compatible_change_on_the_trunk">Binary-compatible</a></em>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="lexerinput.getreadtext">Added LexerInput.getReadText() and LexerInput.isEOFLookahead()</a>
</h3>
<em>May 16 '03; API spec. version: 1.3; made by: mmetelka</em>
<br>
There were two methods added into <code>org.netbeans.api.lexer.LexerInput</code>:
<ul>
<li>
<code>LexerInput.getReadText(int start, int end)</code>
</li>
<li>
<code>LexerInput.isEOFLookahead()</code>
</li>
</ul>
<p>LexerInput.backup(int count) now accepts negative values too
to redo character backups.
</p>
<p>These methods are necessary for more efficient handling of the input.</p>
<p>Unfortunately this change is incompatible as the LexerInput is interface.</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="lexerinput.readlength">Added LexerInput.getReadLength() and LexerInput.createToken(TokenId, tokenLength)
and renamed TokenTextMatcher to SampleTextMatcher</a>
</h3>
<em>Sep 20 '02; API spec. version: 1.2; made by: mmetelka</em>
<br>
There were two methods added into <code>org.netbeans.api.lexer.LexerInput</code>:
<ul>
<li>
<code>LexerInput.getReadLength()</code>
</li>
<li>
<code>LexerInput.createToken(TokenId id, int tokenLength)</code>
</li>
</ul>
These methods are necessary for efficient support of the Antlr lexers.
<br>Unfortunately this change is incompatible as the LexerInput
is interface.
<p>
The <code>TokenTextMatcher</code> was renamed to <code>SampleTextMatcher</code>
which should be better name than the original one. Documentation was also updatged.
It should be now more clear that there can be zero or more samples for the text
of each token and that the <code>SampleTextMatcher</code> encapsulates
the given samples and can check whether the token's text matches one of them.
</p>
<hr style="width:50%">
<h2>
<a name="spi">Lexer SPI</a>
</h2>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="spi.languageprovider.findLanguageEmbedding">LanguageProvider.findEmbeddedLanguage() changed to findLanguageEmbedding</a>
</h3>
<em>Oct 12 '06; API spec. version: 1.9; made by: vstejskal</em>
<br>
<p>
LanguageProvider.findEmbeddedLanguage() method signature was changed.
The method is now called findLanguageEmbedding and returns
LanguageEmbedding instead of just LanguageDescription.
</p>
<br>
<em><a href="http://wiki.netbeans.org/VersioningPolicy#Compatible_change_on_the_trunk">Binary-compatible</a></em>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="api.tokensequence.move">TokenSequence.moveOffset() renamed to move()</a>
</h3>
<em>Sep 18 '06; API spec. version: 1.7; made by: mmetelka</em>
<br>
<p>
TokenSequence.moveOffset() was renamed to TokenSequence.move().
The original TokenSequence.move() which is seldom used
was renamed to TokenSequence.moveIndex().
</p>
<br>
<em><a href="http://wiki.netbeans.org/VersioningPolicy#Compatible_change_on_the_trunk">Binary-compatible</a></em>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="spi.languageprovider">Added LanguageProvider</a>
</h3>
<em>Sep 14 '06; API spec. version: 1.6; made by: vstejskal</em>
<br>
<p>
The LanguageProvider class was added to the SPI package. It is possible
to register instances of this class in the default lookup. The lexer
module will use them to find LanguageDescriptions for documents (
according to their mime types) and for tokens, which contain embedded
language.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="spi.tokenhandler">Removed TokenIdFilter and TokenHandler</a>
</h3>
<em>Aug 30 '06; API spec. version: 1.5; made by: mmetelka</em>
<br>
<p>
The TokenIdFilter class was removed from the API. Instead of it
Set&lt;? extends TokenId&gt; should be used where appropriate.
<br>
With the TokenFactory now being final the TokenHandler is no longer needed.
The few remaining overridable SPI methods were moved to LanguageHierarchy
and the TokenHandler class was removed.
<br>
LanguagePath and InputAttributes parameters were added
to LanguageHierarchy.createLexer() (to the end of the existing
parameters) in order to allow the lexer to react to input attributes.
<br>
For consistency the parameters of LanguageHierarchy.embedding()
were reordered so that the LanguagePath and InputAttributes parameters
are also at the end of the list and in the same order.
</p>
<br>
<em><a href="http://wiki.netbeans.org/VersioningPolicy#Compatible_change_on_the_trunk">Binary-compatible</a></em>
<hr style="width:50%">
<h2>
<a name="swing">Lexer Swing API</a>
</h2>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="api.lexer.swing">Added swing subpackage to API</a>
</h3>
<em>Sep 20 '02; API spec. version: 1.1; made by: mmetelka</em>
<br>
<p>
That API subpackage will contain swing-related API of the lexer
in the org.netbeans.api.lexer.swing package.
<br>I have removed Language.find(String mimeType) - it never worked.
<br>I have added Language.getValidId(int intId).
<br>The whole API and implementation was moved from libsrc
to src (libsrc is now abandoned) in order to better adhere
to module conventions.
</p>
</body>
</html>