HighlighterIterator iterator = highlighter.createIterator(caret - 2); IElementType tokenType = iterator.getTokenType(); HighlighterIterator iterator = highlighter.createIterator(caret - 1); IElementType tokenType = iterator.getTokenType(); HighlighterIterator iterator = highlighter.createIterator(caret - 2); HighlighterIterator iterator = highlighter.createIterator(caret - 1); IElementType tokenType = iterator.getTokenType(); HighlighterIterator iterator = highlighter.createIterator(caret - 1); IElementType tokenType = iterator.getTokenType();
private boolean isLBraceTokenBrace() { int offset = myFixture.getCaretOffset(); Editor editor = myFixture.getEditor(); CharSequence text = editor.getDocument().getCharsSequence(); FileType fileType = ElixirFileType.INSTANCE; HighlighterIterator iterator = ((EditorEx) editor).getHighlighter().createIterator(offset); return BraceMatchingUtil.isLBraceToken(iterator, text, fileType); } }
@NotNull IElementType leftType, @NotNull IElementType rightType) { HighlighterIterator highlighterIterator = editor.getHighlighter().createIterator(0); int level = 0; while (!highlighterIterator.atEnd()) {
@Nullable @Contract("null -> null") public static IElementType getLastOpenMarker(@Nullable Editor editor) { if (editor == null) { return null; } int offset = editor.getCaretModel().getOffset(); HighlighterIterator iterator = ((EditorEx)editor).getHighlighter().createIterator(offset); while (!iterator.atEnd()) { IElementType tokenType = iterator.getTokenType(); if (TemplateToolkitSyntaxElements.OPEN_TAGS.contains(tokenType)) { return tokenType; } iterator.retreat(); } return null; } }
HighlighterIterator iterator = highlighter.createIterator(currentOffset); IElementType nextTokenType = iterator.atEnd() ? null : iterator.getTokenType(); char nextChar = currentOffset == documentSequence.length() ? 0 : documentSequence.charAt(currentOffset); if (c == '<' && nextTokenType == QUOTE_DOUBLE_CLOSE && nextChar == '>' && currentOffset > 0 && documentSequence.charAt(currentOffset - 1) == '<' && (currentOffset < 3 || PerlEditorUtil.getPreviousTokenType(highlighter.createIterator(currentOffset - 2)) != RESERVED_QQ)) { document.replaceString(currentOffset, currentOffset + 1, "<"); caretModel.moveToOffset(currentOffset + 1);
HighlighterIterator highlighterIterator = ((EditorEx)editor).getHighlighter().createIterator(currentOffset); if (highlighterIterator.atEnd()) { return Result.Continue;
CharSequence documentChars = document.getCharsSequence(); HighlighterIterator highlighterIterator = editorHighlighter.createIterator(currentOffset - 1); IElementType previousTokenType = PerlEditorUtil.getPreviousTokenType(highlighterIterator); if (highlighterIterator.atEnd() || IElementType qwTokenType = PerlEditorUtil.getPreviousTokenType(editorHighlighter.createIterator(openTokenStart - 1)); if (qwTokenType == RESERVED_QW) { doIndent(file, editor, dataContext, originalHandler, document);
HighlighterIterator iterator = highlighter.createIterator(offset); IElementType elementTokenType = iterator.getTokenType(); Document document = editor.getDocument(); if (QUOTE_OPEN_ANY.contains(elementTokenType) && CodeInsightSettings.getInstance().AUTOINSERT_PAIR_QUOTE) { IElementType quotePrefixType = offset > 0 ? PerlEditorUtil.getPreviousTokenType(highlighter.createIterator(offset - 1)) : null; CharSequence text = document.getCharsSequence(); if (offset > text.length() - 1 || text.charAt(offset) != typedChar) {
final HighlighterIterator iterator = highlighter.createIterator(caretOffset.get() - 1); final IElementType type = getNonWhitespaceElementType(iterator, lineStartOffset1, prevLineStartOffset);
public BracePair findClosetBracePairInBraceTokens(int offset) { EditorHighlighter editorHighlighter = ((EditorEx) editor).getHighlighter(); boolean isBlockCaret = this.isBlockCaret(); List<Pair<IElementType, IElementType>> braceTokens = this.getSupportedBraceToken(); for (Pair<IElementType, IElementType> braceTokenPair : braceTokens) { HighlighterIterator leftTraverseIterator = editorHighlighter.createIterator(offset); HighlighterIterator rightTraverseIterator = editorHighlighter.createIterator(offset); int leftBraceOffset = BraceMatchingUtilAdapter.findLeftLParen( leftTraverseIterator, braceTokenPair.getLeft(), this.fileText, this.fileType, isBlockCaret); int rightBraceOffset = BraceMatchingUtilAdapter.findRightRParen( rightTraverseIterator, braceTokenPair.getRight(), this.fileText, this.fileType, isBlockCaret); if (leftBraceOffset != NON_OFFSET && rightBraceOffset != NON_OFFSET) { return new BracePair.BracePairBuilder(). leftType(braceTokenPair.getLeft()). rightType(braceTokenPair.getRight()). leftIterator(leftTraverseIterator). rightIterator(rightTraverseIterator).build(); } } return EMPTY_BRACE_PAIR; }
public BracePair findClosetBracePairInStringSymbols(int offset) { if (offset < 0 || this.fileText == null || this.fileText.length() == 0) return EMPTY_BRACE_PAIR; EditorHighlighter editorHighlighter = ((EditorEx) editor).getHighlighter(); HighlighterIterator iterator = editorHighlighter.createIterator(offset); IElementType type = iterator.getTokenType(); boolean isBlockCaret = this.isBlockCaret(); if (!BraceMatchingUtilAdapter.isStringToken(type)) return EMPTY_BRACE_PAIR; int leftOffset = iterator.getStart(); int rightOffset = iterator.getEnd() - 1; if (!isBlockCaret && leftOffset == offset) return EMPTY_BRACE_PAIR; return new BracePair.BracePairBuilder(). leftType(DOUBLE_QUOTE). rightType(DOUBLE_QUOTE). leftOffset(leftOffset). rightOffset(rightOffset).build(); }
HighlighterIterator iterator = highlighter.createIterator(currentOffset); IElementType tokenToDelete = iterator.atEnd() ? null : iterator.getTokenType(); if (QUOTE_OPEN_ANY.contains(tokenToDelete)) { PerlEditorUtil.moveToPreviousMeaningfulToken(highlighter.createIterator(currentOffset - 1)); if (!preQuoteIterator.atEnd() && QUOTE_OPEN_ANY.contains(preQuoteIterator.getTokenType())) { startOffsetToDelete = preQuoteIterator.getEnd();
final HighlighterIterator iterator = highlighter.createIterator(caretOffset.get() - 1); final IElementType type = getNonWhitespaceElementType(iterator, lineStartOffset, prevLineStartOffset);
protected void doLexerHighlightingTest(String fileContent, IElementType targetElementType) { BashSyntaxHighlighter syntaxHighlighter = new BashSyntaxHighlighter(); TextAttributesKey[] keys = syntaxHighlighter.getTokenHighlights(targetElementType); Assert.assertEquals("Expected one key", 1, keys.length); TextAttributesKey attributesKey = keys[0]; Assert.assertNotNull(attributesKey); EditorColorsManager manager = EditorColorsManager.getInstance(); EditorColorsScheme scheme = (EditorColorsScheme) manager.getGlobalScheme().clone(); manager.addColorsScheme(scheme); EditorColorsManager.getInstance().setGlobalScheme(scheme); TextAttributes targetAttributes = new TextAttributes(JBColor.RED, JBColor.BLUE, JBColor.GRAY, EffectType.BOXED, Font.BOLD); scheme.setAttributes(attributesKey, targetAttributes); myFixture.configureByText(BashFileType.BASH_FILE_TYPE, fileContent); TextAttributes actualAttributes = null; HighlighterIterator iterator = ((EditorImpl) myFixture.getEditor()).getHighlighter().createIterator(0); while (!iterator.atEnd()) { if (iterator.getTokenType() == targetElementType) { actualAttributes = iterator.getTextAttributes(); break; } iterator.advance(); } Assert.assertEquals("Expected text attributes for " + attributesKey, targetAttributes, actualAttributes); }