@NotNull private List<com.intellij.formatting.Block> buildHeredocLineChildren(ASTNode heredocLine, int heredocPrefixLength) { List<com.intellij.formatting.Block> blockList; if (heredocLine.getTextLength() == 1 && heredocLine.getText().equals("\n")) { // prevent insertion of prefix length spaces on blank lines blockList = Collections.emptyList(); } else { blockList = Collections.singletonList( new HeredocLineBlock(heredocLine, heredocPrefixLength, spacingBuilder) ); } return blockList; }
@Override public boolean process(@NotNull PsiElement element) { IElementType type = element.getNode().getElementType(); myIsLineBreakpointAvailable = !(type instanceof PsiWhiteSpace) && !element.getNode().getText().isEmpty(); return true; }
public static int codePoint(@NotNull EscapedHexadecimalDigits hexadecimalEscapeSequence) { ASTNode[] validHexadecimalDigitsArray = hexadecimalEscapeSequence .getNode() .getChildren( TokenSet.create(ElixirTypes.VALID_HEXADECIMAL_DIGITS) ); int parsedCodePoint = -1; if (validHexadecimalDigitsArray.length == 1) { ASTNode validHexadecimalDigits = validHexadecimalDigitsArray[0]; String formattedHexadecimalDigits = validHexadecimalDigits.getText(); parsedCodePoint = Integer.parseInt(formattedHexadecimalDigits, 16); } return parsedCodePoint; }
@Override public String createEquallyWrappedString(String newContent) { ASTNode node = getNode(); ASTNode firstChild = node.getFirstChildNode(); ASTNode lastChild = node.getLastChildNode(); StringBuilder result = new StringBuilder(firstChild.getTextLength() + newContent.length() + lastChild.getTextLength()); return result.append(firstChild.getText()).append(newContent).append(lastChild.getText()).toString(); }
String formattedEscapedCharacter = escapedCharacterToken.getText(); int formattedCodePoint = formattedEscapedCharacter.codePointAt(0);
protected static boolean shouldCreateBlockFor(ASTNode node) { IElementType elementType = PsiUtilCore.getElementType(node); return elementType != TokenType.WHITE_SPACE && !node.getText().isEmpty() && !(HEREDOC_BODIES_TOKENSET.contains(elementType) && node.getTextLength() == 1); } }
@NotNull public static Resolvable resolvable(@NotNull ElixirAtom atom) { ElixirCharListLine charListLine = atom.getCharListLine(); Resolvable resolvable; if (charListLine != null) { resolvable = resolvable(charListLine); } else { ElixirStringLine stringLine = atom.getStringLine(); if (stringLine != null) { resolvable = resolvable(stringLine); } else { ASTNode atomNode = atom.getNode(); ASTNode atomFragmentNode = atomNode.getLastChildNode(); assert atomFragmentNode.getElementType() == ElixirTypes.ATOM_FRAGMENT; resolvable = new Exact(":" + atomFragmentNode.getText()); } } return resolvable; }
private boolean oneLinerKeywordPair(ASTNode keywordPair) { ASTNode keywordKey = keywordPair.findChildByType(KEYWORD_KEY); boolean oneLiner = false; if (keywordKey != null && keywordKey.getText().equals("do")) { ASTNode keywords = keywordPair.getTreeParent(); ASTNode keywordsParent = keywords.getTreeParent(); if (keywordsParent.getElementType() == NO_PARENTHESES_ONE_ARGUMENT) { ASTNode argumentsParent = keywordsParent.getTreeParent(); if (UNMATCHED_CALL_TOKEN_SET.contains(argumentsParent.getElementType())) { oneLiner = true; } } } return oneLiner; }
result.append(XmlStringUtil.escapeString(node.getText()));
/** * @param node Tree node * @return true, if the current node can be myBlock node, else otherwise */ private static boolean canBeCorrectBlock(final ASTNode node) { return (node.getText().trim().length() > 0); }
/** * @return The value of this attribute */ public String getValue() { return getNode().getText(); } }
/** * Returns method name. */ @NotNull public String getMethodName() { ASTNode nameNode = getMethodNameNode(); if (nameNode != null) { return nameNode.getText(); } return ""; }
@Override public String getFieldName() { ASTNode nameNode = getFieldNameNode(); if (nameNode != null) { return nameNode.getText(); } return ""; }
@Override public String getFieldName() { ASTNode nameNode = getFieldNameNode(); if (nameNode != null) { String text = nameNode.getText(); return text.toLowerCase(); } return ""; }
public static int getTextLength(ASTNode node, CodeStyleSettings codeStyleSettings) { CsvCodeStyleSettings csvCodeStyleSettings = codeStyleSettings.getCustomSettings(CsvCodeStyleSettings.class); String text = node.getText(); int length = 0; if (csvCodeStyleSettings.TABULARIZE && !csvCodeStyleSettings.WHITE_SPACES_OUTSIDE_QUOTES && text.startsWith("\"")) { text = text.substring(1, text.length() - 1); text = BEGIN_WHITE_SPACE_PATTERN.matcher(text).replaceFirst(""); text = END_WHITE_SPACE_PATTERN.matcher(text).replaceFirst(""); length += 2; } length += csvCodeStyleSettings.ENABLE_WIDE_CHARACTER_DETECTION ? charWidth(text, csvCodeStyleSettings.TREAT_AMBIGUOUS_CHARACTERS_AS_WIDE) : text.length(); return length; }
@Override public Optional<FieldLabel> getFieldLabel() { ASTNode label = getFieldLabelNode(); if (label == null) { return Optional.empty(); } return FieldLabel.forString(label.getText()); }
@Override protected String getSubNameHeavy() { PsiElement subNameElement = getNameIdentifier(); // fixme manipulator? return subNameElement == null ? null : subNameElement.getNode().getText(); }
@Override public String createEquallyWrappedString(String newContent) { if (!isWrapped()) { return newContent; } String firstText = getNode().getFirstChildNode().getText(); if (firstText.startsWith("$'")) { return "$'" + newContent + "'"; } else { return "'" + newContent + "'"; } }
@Override public ASTNode parseContents(@NotNull ASTNode chameleon) { PsiElement parentElement = chameleon.getTreeParent().getPsi(); Project project = parentElement.getProject(); PsiBuilder builder = PsiBuilderFactory.getInstance().createBuilder( project, chameleon, getLexer(parentElement.getProject()), getLanguage(), chameleon.getText()); return getParser().parse(this, builder).getFirstChildNode(); }