package com.antfortune.freeline.idea.utils;
import com.intellij.codeInsight.actions.OptimizeImportsProcessor;
import com.intellij.codeInsight.actions.ReformatCodeAction;
import com.intellij.codeInsight.actions.ReformatCodeProcessor;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.fileEditor.FileDocumentManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiFile;
/**
* Created by pengwei on 2016/11/1.
*/
public class DocumentUtil {
/**
* 保存文档和设置
*/
public static void saveDocument() {
FileDocumentManager.getInstance().saveAllDocuments();
ApplicationManager.getApplication().saveSettings();
}
/**
* 格式化代码
*
* @param project
* @param virtualFiles
*/
public static void reformatCode(final Project project, final VirtualFile virtualFiles) {
ApplicationManager.getApplication().runWriteAction(new Runnable() {
@Override
public void run() {
PsiFile[] psiFiles = ReformatCodeAction.convertToPsiFiles(new VirtualFile[]{virtualFiles}, project);
if (psiFiles != null && psiFiles.length == 1 && psiFiles[0] != null) {
new ReformatCodeProcessor(project, psiFiles[0], null, false).run();
}
}
});
}
/**
* 优化导入
*
* @param project
* @param virtualFiles
*/
public static void optimizeImports(Project project, VirtualFile... virtualFiles) {
new OptimizeImportsProcessor(
project, ReformatCodeAction.convertToPsiFiles(virtualFiles, project), null).run();
}
}