Question

I'm implementing the plugin for Intellij IDEA that needs file to be saved before executing action. Action is shell command, it requires file name to be passed as the command-line parameter.

AFAIK Idea saves (synchronizes) files on frame deactivation, so if I right-click on the file, and click on my action - old version of file will be used. If I go to other window, return to Idea and click my action - current version of the file will be used.

I've read this doc about Virtual File System, and found that I can trigger file to be loaded from file system (e.g. VirtualFileManager.syncRefresh() or VirtualFileManager.asyncRefresh()). I tried this hoping it would work, but it doesn't.

Question is: how to manually (programmatically) save file?

Was it helpful?

Solution

While formatting my question I checked one more time, and this worked for me.

FileDocumentManager.getInstance().saveAllDocuments();

EDIT
Finally came up with the solution

FileDocumentManager fileDocumentManager = FileDocumentManager.getInstance();
Document document = fileDocumentManager.getDocument(file);
if (document != null) {
    fileDocumentManager.saveDocument(document);
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top