mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Application tools should save settings
This commit is contained in:
@@ -15,7 +15,9 @@
|
||||
*/
|
||||
package com.intellij.openapi.diff;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.ApplicationStarterEx;
|
||||
import com.intellij.openapi.fileEditor.FileDocumentManager;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.util.io.StreamUtil;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
@@ -62,6 +64,14 @@ public abstract class ApplicationStarterBase implements ApplicationStarterEx {
|
||||
StringUtil.toTitleCase(getCommandName()),
|
||||
Messages.getErrorIcon());
|
||||
}
|
||||
finally {
|
||||
saveAll();
|
||||
}
|
||||
}
|
||||
|
||||
private static void saveAll() {
|
||||
FileDocumentManager.getInstance().saveAllDocuments();
|
||||
ApplicationManager.getApplication().saveSettings();
|
||||
}
|
||||
|
||||
private boolean checkArguments(String[] args) {
|
||||
@@ -86,13 +96,16 @@ public abstract class ApplicationStarterBase implements ApplicationStarterEx {
|
||||
processCommand(args);
|
||||
}
|
||||
catch (Exception e) {
|
||||
System.err.println(e.getMessage());
|
||||
e.printStackTrace();
|
||||
System.exit(1);
|
||||
}
|
||||
catch (Throwable t) {
|
||||
t.printStackTrace();
|
||||
System.exit(2);
|
||||
}
|
||||
finally {
|
||||
saveAll();
|
||||
}
|
||||
|
||||
System.exit(0);
|
||||
}
|
||||
|
||||
@@ -18,7 +18,6 @@ package com.intellij.openapi.diff;
|
||||
import com.intellij.ide.diff.DiffElement;
|
||||
import com.intellij.ide.diff.DirDiffSettings;
|
||||
import com.intellij.openapi.application.ApplicationNamesInfo;
|
||||
import com.intellij.openapi.fileEditor.FileDocumentManager;
|
||||
import com.intellij.openapi.fileTypes.UnknownFileType;
|
||||
import com.intellij.openapi.project.ProjectManager;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
@@ -77,7 +76,6 @@ public class DiffApplication extends ApplicationStarterBase {
|
||||
SimpleDiffRequest request = SimpleDiffRequest.compareFiles(file1, file2, ProjectManager.getInstance().getDefaultProject());
|
||||
request.addHint(DiffTool.HINT_SHOW_MODAL_DIALOG);
|
||||
DiffManager.getInstance().getIdeaDiffTool().show(request);
|
||||
FileDocumentManager.getInstance().saveAllDocuments();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,8 +16,6 @@
|
||||
package com.intellij.openapi.diff;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationNamesInfo;
|
||||
import com.intellij.openapi.fileEditor.FileDocumentManager;
|
||||
import com.intellij.openapi.project.ProjectManager;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
|
||||
/**
|
||||
@@ -43,13 +41,12 @@ public class MergeApplication extends ApplicationStarterBase {
|
||||
|
||||
MergeRequest request = DiffRequestFactory.getInstance()
|
||||
.createMergeRequest(getText(left), getText(right), getText(middle), result,
|
||||
ProjectManager.getInstance().getDefaultProject(),
|
||||
null,
|
||||
ActionButtonPresentation.APPLY,
|
||||
ActionButtonPresentation.CANCEL_WITH_PROMPT);
|
||||
request.addHint(DiffTool.HINT_SHOW_MODAL_DIALOG);
|
||||
request.setWindowTitle("Merge");
|
||||
request.setVersionTitles(new String[]{left.getPresentableUrl(), result.getPresentableUrl(), middle.getPresentableUrl()});
|
||||
DiffManager.getInstance().getDiffTool().show(request);
|
||||
FileDocumentManager.getInstance().saveAllDocuments();
|
||||
}
|
||||
}
|
||||
|
||||
+5
-3
@@ -76,9 +76,11 @@ public interface MergeVersion {
|
||||
ApplicationManager.getApplication().runWriteAction(new Runnable() {
|
||||
public void run() {
|
||||
setDocumentText(workingDocument, myOriginalText, DiffBundle.message("merge.init.merge.content.command.name"), project);
|
||||
final UndoManager undoManager = UndoManager.getInstance(project);
|
||||
if (undoManager != null) { //idea.sh merge command
|
||||
undoManager.nonundoableActionPerformed(ref, false);
|
||||
if (project != null) {
|
||||
final UndoManager undoManager = UndoManager.getInstance(project);
|
||||
if (undoManager != null) { //idea.sh merge command
|
||||
undoManager.nonundoableActionPerformed(ref, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user