Java 类com.intellij.psi.impl.source.codeStyle.CodeFormatterFacade 实例源码

项目:intellij-ce-playground    文件:ParagraphFillHandler.java   
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);

}
项目:intellij-ce-playground    文件:PostprocessReformattingAspect.java   
@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;
}
项目:tools-idea    文件:ParagraphFillHandler.java   
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);

}
项目:tools-idea    文件:PostprocessReformattingAspect.java   
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;
}
项目:consulo    文件:PostprocessReformattingAspect.java   
@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;
}
项目:intellij-ce-playground    文件:PostprocessReformattingAspect.java   
@Override
public void execute(@NotNull FileViewProvider viewProvider) {
  final CodeFormatterFacade codeFormatter = getFormatterFacade(viewProvider);
  codeFormatter.setReformatContext(true);
  codeFormatter.processText(viewProvider.getPsi(viewProvider.getBaseLanguage()), myRanges.ensureNonEmpty(), false);
}
项目:tools-idea    文件:PostprocessReformattingAspect.java   
@Override
public void execute(FileViewProvider viewProvider) {
  final CodeFormatterFacade codeFormatter = getFormatterFacade(viewProvider);
  codeFormatter.processText(viewProvider.getPsi(viewProvider.getBaseLanguage()), myRanges.ensureNonEmpty(), false);
}
项目:consulo    文件:ParagraphFillHandler.java   
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);

}
项目:consulo    文件:PostprocessReformattingAspect.java   
@Override
public void execute(@Nonnull FileViewProvider viewProvider) {
  final CodeFormatterFacade codeFormatter = getFormatterFacade(viewProvider);
  codeFormatter.setReformatContext(true);
  codeFormatter.processText(viewProvider.getPsi(viewProvider.getBaseLanguage()), myRanges.ensureNonEmpty(), false);
}