@NotNull @Override public CharSequence adjustWhiteSpaceIfNecessary( @NotNull CharSequence whiteSpaceText, int startOffset, int endOffset, ASTNode nodeAfter, boolean changedViaPsi) { if (!changedViaPsi) { return myWhiteSpaceStrategy.adjustWhiteSpaceIfNecessary( whiteSpaceText, myDocument.getCharsSequence(), startOffset, endOffset, mySettings, nodeAfter); } final PsiElement element = myFile.findElementAt(startOffset); if (element == null) { return whiteSpaceText; } else { return myWhiteSpaceStrategy.adjustWhiteSpaceIfNecessary( whiteSpaceText, element, startOffset, endOffset, mySettings); } }
private static void addWhiteSpace(final ASTNode treePrev, final LeafElement whiteSpaceElement) { for (WhiteSpaceFormattingStrategy strategy : WhiteSpaceFormattingStrategyFactory.getAllStrategies()) { if (strategy.addWhitespace(treePrev, whiteSpaceElement)) { return; } } final ASTNode treeParent = treePrev.getTreeParent(); treeParent.addChild(whiteSpaceElement, treePrev); }
@Override public boolean containsWhiteSpaceSymbolsOnly(int startOffset, int endOffset) { WhiteSpaceFormattingStrategy strategy = myWhiteSpaceStrategy; if (strategy.check(myDocument.getCharsSequence(), startOffset, endOffset) >= endOffset) { return true; } PsiElement injectedElement = myFile != null ? InjectedLanguageUtil.findElementAtNoCommit(myFile, startOffset) : null; if (injectedElement != null) { Language injectedLanguage = injectedElement.getLanguage(); if (!injectedLanguage.equals(myFile.getLanguage())) { WhiteSpaceFormattingStrategy localStrategy = WhiteSpaceFormattingStrategyFactory.getStrategy(injectedLanguage); if (localStrategy != null) { return localStrategy.check(myDocument.getCharsSequence(), startOffset, endOffset) >= endOffset; } } } return false; }