diff --git a/platform/platform-impl/src/com/intellij/ide/actions/SaveDocumentAction.java b/platform/platform-impl/src/com/intellij/ide/actions/SaveDocumentAction.java new file mode 100644 index 000000000000..1ab3a7db9096 --- /dev/null +++ b/platform/platform-impl/src/com/intellij/ide/actions/SaveDocumentAction.java @@ -0,0 +1,31 @@ +package com.intellij.ide.actions; + +import com.intellij.openapi.actionSystem.AnAction; +import com.intellij.openapi.actionSystem.AnActionEvent; +import com.intellij.openapi.actionSystem.PlatformDataKeys; +import com.intellij.openapi.editor.Document; +import com.intellij.openapi.editor.Editor; +import com.intellij.openapi.fileEditor.FileDocumentManager; + +/** + * @author yole + */ +public class SaveDocumentAction extends AnAction { + @Override + public void actionPerformed(AnActionEvent e) { + Document doc = getDocument(e); + if (doc != null) { + FileDocumentManager.getInstance().saveDocument(doc); + } + } + + @Override + public void update(AnActionEvent e) { + e.getPresentation().setEnabled(getDocument(e) != null); + } + + private static Document getDocument(AnActionEvent e) { + Editor editor = e.getData(PlatformDataKeys.EDITOR); + return editor != null ? editor.getDocument() : null; + } +} diff --git a/platform/platform-resources-en/src/messages/ActionsBundle.properties b/platform/platform-resources-en/src/messages/ActionsBundle.properties index fe3c4fcab37c..5b46bd9ed366 100644 --- a/platform/platform-resources-en/src/messages/ActionsBundle.properties +++ b/platform/platform-resources-en/src/messages/ActionsBundle.properties @@ -1367,3 +1367,6 @@ action.TabList.description=Show dropdown with the list of all tabs in single-row action.FillParagraph.text=Fill Paragraph action.FillParagraph.description=Reformat string literal or comment to fit maximum width (usually 80) + +action.SaveDocument.text=Save Document +action.SaveDocument.description=Saves only the file opened in the current editor diff --git a/platform/platform-resources/src/idea/PlatformActions.xml b/platform/platform-resources/src/idea/PlatformActions.xml index 6dcd2bfda068..da42cb58b316 100644 --- a/platform/platform-resources/src/idea/PlatformActions.xml +++ b/platform/platform-resources/src/idea/PlatformActions.xml @@ -616,5 +616,7 @@ + +