Lines 17-22
Link Here
|
17 |
import junit.framework.TestCase; |
17 |
import junit.framework.TestCase; |
18 |
import org.netbeans.api.lexer.InputAttributes; |
18 |
import org.netbeans.api.lexer.InputAttributes; |
19 |
import org.netbeans.api.lexer.Language; |
19 |
import org.netbeans.api.lexer.Language; |
|
|
20 |
import org.netbeans.api.lexer.LanguagePath; |
20 |
import org.netbeans.api.lexer.TokenHierarchy; |
21 |
import org.netbeans.api.lexer.TokenHierarchy; |
21 |
import org.netbeans.api.lexer.TokenId; |
22 |
import org.netbeans.api.lexer.TokenId; |
22 |
import org.netbeans.api.lexer.TokenSequence; |
23 |
import org.netbeans.api.lexer.TokenSequence; |
Lines 54-60
Link Here
|
54 |
TokenHierarchy<?> hi = TokenHierarchy.get(doc); |
55 |
TokenHierarchy<?> hi = TokenHierarchy.get(doc); |
55 |
TokenSequence<? extends TokenId> ts = hi.tokenSequence(); |
56 |
TokenSequence<? extends TokenId> ts = hi.tokenSequence(); |
56 |
|
57 |
|
57 |
ts = hi.tokenSequence(); |
|
|
58 |
assertTrue(ts.moveNext()); |
58 |
assertTrue(ts.moveNext()); |
59 |
LexerTestUtilities.assertTokenEquals(ts, StateTokenId.A, "a", 0); |
59 |
LexerTestUtilities.assertTokenEquals(ts, StateTokenId.A, "a", 0); |
60 |
assertEquals(LexerTestUtilities.lookahead(ts), 0); |
60 |
assertEquals(LexerTestUtilities.lookahead(ts), 0); |
Lines 68-73
Link Here
|
68 |
} catch (IllegalStateException e) { |
68 |
} catch (IllegalStateException e) { |
69 |
// Expected fail of lexer |
69 |
// Expected fail of lexer |
70 |
} |
70 |
} |
|
|
71 |
} |
72 |
|
73 |
public void testBatchLexerRelease() throws Exception { |
74 |
String text = "ab"; |
75 |
InputAttributes attrs = new InputAttributes(); |
76 |
TokenHierarchy<?> hi = TokenHierarchy.create(text, false, StateTokenId.language(), |
77 |
null, attrs); |
78 |
TokenSequence<? extends TokenId> ts = hi.tokenSequence(); |
79 |
assertTrue(ts.moveNext()); |
80 |
LexerTestUtilities.assertTokenEquals(ts, StateTokenId.A, "a", 0); |
81 |
assertTrue(ts.moveNext()); |
82 |
LanguagePath lp = LanguagePath.get(StateTokenId.language()); |
83 |
assertFalse(Boolean.TRUE.equals(attrs.getValue(lp, "lexerRelease"))); |
84 |
LexerTestUtilities.assertTokenEquals(ts, StateTokenId.BMULTI, "b", 1); |
85 |
assertFalse(ts.moveNext()); |
86 |
assertTrue(Boolean.TRUE.equals(attrs.getValue(lp, "lexerRelease"))); |
87 |
|
88 |
} |
89 |
|
90 |
public void testIncLexerRelease() throws Exception { |
91 |
Document doc = new ModificationTextDocument(); |
92 |
// Assign a language to the document |
93 |
InputAttributes attrs = new InputAttributes(); |
94 |
doc.putProperty(InputAttributes.class, attrs); |
95 |
|
96 |
// Insert initial text into document |
97 |
String text = "ab"; |
98 |
doc.insertString(0, text, null); |
99 |
// Put the language now into the document so that lexing starts from scratch |
100 |
doc.putProperty(Language.class, StateTokenId.language()); |
101 |
TokenHierarchy<?> hi = TokenHierarchy.get(doc); |
102 |
TokenSequence<? extends TokenId> ts = hi.tokenSequence(); |
103 |
|
104 |
assertTrue(ts.moveNext()); |
105 |
LexerTestUtilities.assertTokenEquals(ts, StateTokenId.A, "a", 0); |
106 |
LanguagePath lp = LanguagePath.get(StateTokenId.language()); |
107 |
assertFalse(Boolean.TRUE.equals(attrs.getValue(lp, "lexerRelease"))); |
108 |
assertTrue(ts.moveNext()); |
109 |
LexerTestUtilities.assertTokenEquals(ts, StateTokenId.BMULTI, "b", 1); |
110 |
assertFalse(ts.moveNext()); |
111 |
assertTrue(Boolean.TRUE.equals(attrs.getValue(lp, "lexerRelease"))); |
112 |
attrs.setValue(lp, "lexerRelease", Boolean.FALSE, false); |
113 |
|
114 |
// Do modification and check lexer release after it |
115 |
doc.insertString(1, "b", null); |
116 |
assertTrue(Boolean.TRUE.equals(attrs.getValue(lp, "lexerRelease"))); |
71 |
} |
117 |
} |
72 |
|
118 |
|
73 |
} |
119 |
} |