use of com.intellij.psi.tree.TokenSet in project intellij-community by JetBrains.
the class PyUnconditionalStatementPartFixer method doApply.
@Override
public void doApply(@NotNull Editor editor, @NotNull PySmartEnterProcessor processor, @NotNull PyElement psiElement) throws IncorrectOperationException {
if (PyUtil.instanceOf(psiElement, PyElsePart.class, PyTryPart.class, PyFinallyPart.class)) {
final PsiElement colon = PyPsiUtils.getFirstChildOfType(psiElement, PyTokenTypes.COLON);
if (colon == null) {
final TokenSet keywords = TokenSet.create(PyTokenTypes.ELSE_KEYWORD, PyTokenTypes.TRY_KEYWORD, PyTokenTypes.FINALLY_KEYWORD);
final PsiElement keywordToken = PyPsiUtils.getChildByFilter(psiElement, keywords, 0);
editor.getDocument().insertString(sure(keywordToken).getTextRange().getEndOffset(), ":");
}
}
}
use of com.intellij.psi.tree.TokenSet in project intellij-plugins by JetBrains.
the class CucumberStepReferenceProvider method getReferencesByElement.
@NotNull
@Override
public PsiReference[] getReferencesByElement(@NotNull PsiElement element, @NotNull ProcessingContext context) {
if (element instanceof GherkinStepImpl) {
TokenSet textAndParamSet = TokenSet.create(GherkinTokenTypes.TEXT, GherkinTokenTypes.STEP_PARAMETER_TEXT, GherkinTokenTypes.STEP_PARAMETER_BRACE, GherkinElementTypes.STEP_PARAMETER);
ASTNode textNode = element.getNode().findChildByType(textAndParamSet);
textAndParamSet = TokenSet.orSet(textAndParamSet, TokenSet.create(TokenType.WHITE_SPACE));
if (textNode != null) {
int start = textNode.getTextRange().getStartOffset();
int end = textNode.getTextRange().getEndOffset();
int endBeforeSpace = end;
textNode = textNode.getTreeNext();
while (textNode != null && textAndParamSet.contains(textNode.getElementType())) {
if (textNode.getElementType() == TokenType.WHITE_SPACE) {
endBeforeSpace = end;
} else {
endBeforeSpace = textNode.getTextRange().getEndOffset();
}
end = textNode.getTextRange().getEndOffset();
textNode = textNode.getTreeNext();
}
TextRange tr = new TextRange(start, endBeforeSpace);
CucumberStepReference reference = new CucumberStepReference(element, tr.shiftRight(-element.getTextOffset()));
return new PsiReference[] { reference };
}
}
return PsiReference.EMPTY_ARRAY;
}
Aggregations