protected void performOnElement(@NotNull final PsiElement element, @NotNull final Editor editor) { final Document document = editor.getDocument(); final TextRange textRange = getTextRange(element, editor); if (textRange.isEmpty()) return; final String text = textRange.substring(element.getContainingFile().getText()); final List<String> subStrings = StringUtil.split(text, "\n", true); final String prefix = getPrefix(element); final String postfix = getPostfix(element); final StringBuilder stringBuilder = new StringBuilder(); appendPrefix(element, text, stringBuilder); for (String string : subStrings) { final String startTrimmed = StringUtil.trimStart(string.trim(), prefix.trim()); final String str = StringUtil.trimEnd(startTrimmed, postfix.trim()); final String finalString = str.trim(); if (!StringUtil.isEmptyOrSpaces(finalString)) stringBuilder.append(finalString).append(" "); } appendPostfix(element, text, stringBuilder); final String replacementText = stringBuilder.toString(); CommandProcessor.getInstance().executeCommand(element.getProject(), new Runnable() { @Override public void run() { document.replaceString(textRange.getStartOffset(), textRange.getEndOffset(), replacementText); final CodeFormatterFacade codeFormatter = new CodeFormatterFacade( CodeStyleSettingsManager.getSettings(element.getProject()), element.getLanguage()); codeFormatter.doWrapLongLinesIfNecessary(editor, element.getProject(), document, textRange.getStartOffset(), textRange.getStartOffset() + replacementText.length() + 1); } }, null, document); }
@NotNull private CodeFormatterFacade getFormatterFacade(@NotNull FileViewProvider viewProvider) { final CodeStyleSettings styleSettings = CodeStyleSettingsManager.getSettings(myPsiManager.getProject()); final PsiDocumentManager documentManager = PsiDocumentManager.getInstance(myPsiManager.getProject()); final Document document = viewProvider.getDocument(); assert document != null; final CodeFormatterFacade codeFormatter = new CodeFormatterFacade(styleSettings, viewProvider.getBaseLanguage()); documentManager.commitDocument(document); return codeFormatter; }
protected void performOnElement(@NotNull final PsiElement element, @NotNull final Editor editor) { final Document document = editor.getDocument(); final TextRange textRange = getTextRange(element, editor); if (textRange.isEmpty()) return; final String text = textRange.substring(element.getContainingFile().getText()); final List<String> subStrings = StringUtil.split(text, "\n", true); final String prefix = getPrefix(element); final String postfix = getPostfix(element); final StringBuilder stringBuilder = new StringBuilder(); appendPrefix(element, text, stringBuilder); for (String string : subStrings) { final String startTrimmed = StringUtil.trimStart(string.trim(), prefix.trim()); final String str = StringUtil.trimEnd(startTrimmed, postfix.trim()); final String finalString = str.trim(); if (!StringUtil.isEmptyOrSpaces(finalString)) stringBuilder.append(finalString).append(" "); } appendPostfix(element, text, stringBuilder); final String replacementText = stringBuilder.toString(); CommandProcessor.getInstance().executeCommand(element.getProject(), new Runnable() { @Override public void run() { document.replaceString(textRange.getStartOffset(), textRange.getEndOffset(), replacementText); final CodeFormatterFacade codeFormatter = new CodeFormatterFacade( CodeStyleSettingsManager.getSettings(element.getProject())); codeFormatter.doWrapLongLinesIfNecessary(editor, element.getProject(), document, textRange.getStartOffset(), textRange.getStartOffset() + replacementText.length() + 1); } }, null, document); }
private CodeFormatterFacade getFormatterFacade(final FileViewProvider viewProvider) { final CodeStyleSettings styleSettings = CodeStyleSettingsManager.getSettings(myPsiManager.getProject()); final PsiDocumentManager documentManager = PsiDocumentManager.getInstance(myPsiManager.getProject()); final Document document = viewProvider.getDocument(); assert document != null; final CodeFormatterFacade codeFormatter = new CodeFormatterFacade(styleSettings); documentManager.commitDocument(document); return codeFormatter; }
@Nonnull private CodeFormatterFacade getFormatterFacade(@Nonnull FileViewProvider viewProvider) { final CodeStyleSettings styleSettings = CodeStyle.getSettings(viewProvider.getPsi(viewProvider.getBaseLanguage())); final PsiDocumentManager documentManager = PsiDocumentManager.getInstance(myPsiManager.getProject()); final Document document = viewProvider.getDocument(); assert document != null; final CodeFormatterFacade codeFormatter = new CodeFormatterFacade(styleSettings, viewProvider.getBaseLanguage()); documentManager.commitDocument(document); return codeFormatter; }
@Override public void execute(@NotNull FileViewProvider viewProvider) { final CodeFormatterFacade codeFormatter = getFormatterFacade(viewProvider); codeFormatter.setReformatContext(true); codeFormatter.processText(viewProvider.getPsi(viewProvider.getBaseLanguage()), myRanges.ensureNonEmpty(), false); }
@Override public void execute(FileViewProvider viewProvider) { final CodeFormatterFacade codeFormatter = getFormatterFacade(viewProvider); codeFormatter.processText(viewProvider.getPsi(viewProvider.getBaseLanguage()), myRanges.ensureNonEmpty(), false); }
protected void performOnElement(@Nonnull final PsiElement element, @Nonnull final Editor editor) { final Document document = editor.getDocument(); final TextRange textRange = getTextRange(element, editor); if (textRange.isEmpty()) return; final String text = textRange.substring(element.getContainingFile().getText()); final List<String> subStrings = StringUtil.split(text, "\n", true); final String prefix = getPrefix(element); final String postfix = getPostfix(element); final StringBuilder stringBuilder = new StringBuilder(); appendPrefix(element, text, stringBuilder); for (String string : subStrings) { final String startTrimmed = StringUtil.trimStart(string.trim(), prefix.trim()); final String str = StringUtil.trimEnd(startTrimmed, postfix.trim()); final String finalString = str.trim(); if (!StringUtil.isEmptyOrSpaces(finalString)) stringBuilder.append(finalString).append(" "); } appendPostfix(element, text, stringBuilder); final String replacementText = stringBuilder.toString(); CommandProcessor.getInstance().executeCommand(element.getProject(), () -> { document.replaceString(textRange.getStartOffset(), textRange.getEndOffset(), replacementText); final CodeFormatterFacade codeFormatter = new CodeFormatterFacade( CodeStyleSettingsManager.getSettings(element.getProject()), element.getLanguage()); final PsiFile file = element.getContainingFile(); FormatterTagHandler formatterTagHandler = new FormatterTagHandler(CodeStyleSettingsManager.getSettings(file.getProject())); List<TextRange> enabledRanges = formatterTagHandler.getEnabledRanges(file.getNode(), TextRange.create(0, document.getTextLength())); codeFormatter.doWrapLongLinesIfNecessary(editor, element.getProject(), document, textRange.getStartOffset(), textRange.getStartOffset() + replacementText.length() + 1, enabledRanges); }, null, document); }
@Override public void execute(@Nonnull FileViewProvider viewProvider) { final CodeFormatterFacade codeFormatter = getFormatterFacade(viewProvider); codeFormatter.setReformatContext(true); codeFormatter.processText(viewProvider.getPsi(viewProvider.getBaseLanguage()), myRanges.ensureNonEmpty(), false); }