下面列出了怎么用com.intellij.psi.codeStyle.arrangement.Rearranger的API类实例代码及写法,或者点击链接到github查看源代码。
protected boolean arrangementSettingsEqual(CommonCodeStyleSettings obj) {
ArrangementSettings theseSettings = myArrangementSettings;
ArrangementSettings otherSettings = obj.getArrangementSettings();
if (theseSettings == null && otherSettings != null) {
Rearranger<?> rearranger = Rearranger.EXTENSION.forLanguage(myLanguage);
if (rearranger instanceof ArrangementStandardSettingsAware) {
theseSettings = ((ArrangementStandardSettingsAware)rearranger).getDefaultSettings();
}
}
return Comparing.equal(theseSettings, obj.getArrangementSettings());
}
private void setUpActions() {
boolean canOptimizeImports = !LanguageImportStatements.INSTANCE.forFile(myFile).isEmpty();
myOptimizeImportsCb.setVisible(canOptimizeImports);
if (canOptimizeImports) {
myOptimizeImportsCb.setSelected(myLastRunOptions.getLastOptimizeImports());
}
boolean canRearrangeCode = Rearranger.EXTENSION.forLanguage(myFile.getLanguage()) != null;
myRearrangeCodeCb.setVisible(canRearrangeCode);
if (canRearrangeCode) {
myRearrangeCodeCb.setSelected(myLastRunOptions.isRearrangeCode(myFile.getLanguage()));
}
myOptionalLabel.setVisible(canOptimizeImports || canRearrangeCode);
}
@Nonnull
@Override
protected FutureTask<Boolean> prepareTask(@Nonnull final PsiFile file, final boolean processChangedTextOnly) {
return new FutureTask<Boolean>(new Callable<Boolean>() {
@Override
public Boolean call() throws Exception {
try {
Collection<TextRange> ranges = getRangesToFormat(file, processChangedTextOnly);
Document document = PsiDocumentManager.getInstance(myProject).getDocument(file);
if (document != null && Rearranger.EXTENSION.forLanguage(file.getLanguage()) != null) {
PsiDocumentManager.getInstance(myProject).doPostponedOperationsAndUnblockDocument(document);
PsiDocumentManager.getInstance(myProject).commitDocument(document);
Runnable command = prepareRearrangeCommand(file, ranges);
try {
CommandProcessor.getInstance().executeCommand(myProject, command, COMMAND_NAME, null);
}
finally {
PsiDocumentManager.getInstance(myProject).commitDocument(document);
}
}
return true;
}
catch (FilesTooBigForDiffException e) {
handleFileTooBigException(LOG, e, file);
return false;
}
}
});
}
@RequiredUIAccess
@Override
public void update(@Nonnull AnActionEvent e) {
PsiFile file = e.getDataContext().getData(CommonDataKeys.PSI_FILE);
boolean enabled = file != null && Rearranger.EXTENSION.forLanguage(file.getLanguage()) != null;
e.getPresentation().setEnabled(enabled);
}