This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
TokenSequence.embedded () is very slow.
Yes, we've found this out with Vita when analyzing syntax coloring performance. I have already a change in-progress for this I just have to finish it.
I have reduced checking for embeddings by only checking result of the first embedding creation for the particular token id. This should be ok for most cases. If the default behavior needs to be modified the LanguageHierarchy.embeddingPresence(TokenId) allows to override the default behavior to either always check for an embedding for each token with the given id (like before this modification) or to disable check for default embedding completely (suitable e.g. for keywords or operators). I have added a test for the new behavior. Checking in src/org/netbeans/lib/lexer/EmbeddingContainer.java; /cvs/lexer/src/org/netbeans/lib/lexer/EmbeddingContainer.java,v <-- EmbeddingContainer.java new revision: 1.9; previous revision: 1.8 done Checking in src/org/netbeans/lib/lexer/EmbeddedTokenList.java; /cvs/lexer/src/org/netbeans/lib/lexer/EmbeddedTokenList.java,v <-- EmbeddedTokenList.java new revision: 1.9; previous revision: 1.8 done Checking in src/org/netbeans/lib/lexer/LexerSpiPackageAccessor.java; /cvs/lexer/src/org/netbeans/lib/lexer/LexerSpiPackageAccessor.java,v <-- LexerSpiPackageAccessor.java new revision: 1.8; previous revision: 1.7 done Checking in src/org/netbeans/lib/lexer/LexerApiPackageAccessor.java; /cvs/lexer/src/org/netbeans/lib/lexer/LexerApiPackageAccessor.java,v <-- LexerApiPackageAccessor.java new revision: 1.7; previous revision: 1.6 done Checking in src/org/netbeans/lib/lexer/LanguageOperation.java; /cvs/lexer/src/org/netbeans/lib/lexer/LanguageOperation.java,v <-- LanguageOperation.java new revision: 1.9; previous revision: 1.8 done Checking in src/org/netbeans/lib/lexer/LexerInputOperation.java; /cvs/lexer/src/org/netbeans/lib/lexer/LexerInputOperation.java,v <-- LexerInputOperation.java new revision: 1.8; previous revision: 1.7 done Checking in src/org/netbeans/lib/lexer/TokenHierarchyOperation.java; /cvs/lexer/src/org/netbeans/lib/lexer/TokenHierarchyOperation.java,v <-- TokenHierarchyOperation.java new revision: 1.17; previous revision: 1.16 done Checking in src/org/netbeans/lib/lexer/LexerUtilsConstants.java; /cvs/lexer/src/org/netbeans/lib/lexer/LexerUtilsConstants.java,v <-- LexerUtilsConstants.java new revision: 1.15; previous revision: 1.14 done Checking in src/org/netbeans/spi/lexer/LanguageEmbedding.java; /cvs/lexer/src/org/netbeans/spi/lexer/LanguageEmbedding.java,v <-- LanguageEmbedding.java new revision: 1.8; previous revision: 1.7 done RCS file: /cvs/lexer/src/org/netbeans/spi/lexer/EmbeddingPresence.java,v done Checking in src/org/netbeans/spi/lexer/EmbeddingPresence.java; /cvs/lexer/src/org/netbeans/spi/lexer/EmbeddingPresence.java,v <-- EmbeddingPresence.java initial revision: 1.1 done Checking in src/org/netbeans/spi/lexer/LanguageHierarchy.java; /cvs/lexer/src/org/netbeans/spi/lexer/LanguageHierarchy.java,v <-- LanguageHierarchy.java new revision: 1.13; previous revision: 1.12 done Checking in src/org/netbeans/api/lexer/TokenChange.java; /cvs/lexer/src/org/netbeans/api/lexer/TokenChange.java,v <-- TokenChange.java new revision: 1.8; previous revision: 1.7 done Checking in src/org/netbeans/api/lexer/TokenSequence.java; /cvs/lexer/src/org/netbeans/api/lexer/TokenSequence.java,v <-- TokenSequence.java new revision: 1.12; previous revision: 1.11 done Checking in src/org/netbeans/api/lexer/Language.java; /cvs/lexer/src/org/netbeans/api/lexer/Language.java,v <-- Language.java new revision: 1.11; previous revision: 1.10 done Checking in nbproject/project.properties; /cvs/lexer/nbproject/project.properties,v <-- project.properties new revision: 1.14; previous revision: 1.13 done Checking in test/unit/src/org/netbeans/lib/lexer/EmbeddedTokenListTest.java; /cvs/lexer/test/unit/src/org/netbeans/lib/lexer/EmbeddedTokenListTest.java,v <-- EmbeddedTokenListTest.java new revision: 1.4; previous revision: 1.3 done Checking in api/apichanges.xml; /cvs/lexer/api/apichanges.xml,v <-- apichanges.xml new revision: 1.20; previous revision: 1.19 done Checking in src/org/netbeans/lib/lexer/inc/TokenListUpdater.java; /cvs/lexer/src/org/netbeans/lib/lexer/inc/TokenListUpdater.java,v <-- TokenListUpdater.java new revision: 1.16; previous revision: 1.15 done RCS file: /cvs/lexer/test/unit/src/org/netbeans/lib/lexer/lang/TestEmbeddingTokenId.java,v done Checking in test/unit/src/org/netbeans/lib/lexer/lang/TestEmbeddingTokenId.java; /cvs/lexer/test/unit/src/org/netbeans/lib/lexer/lang/TestEmbeddingTokenId.java,v <-- TestEmbeddingTokenId.java initial revision: 1.1
*** Issue 93534 has been marked as a duplicate of this issue. ***