将虚拟文件同步到Intellij IDEA插件中的物理文件

时间:2013-12-08 23:22:47

标签: intellij-idea intellij-plugin

我正在为Intellij IDEA实现插件,需要在执行操作之前保存文件。 Action是shell命令,它要求将文件名作为命令行参数传递。

AFAIK Idea在帧停用时保存(同步)文件,因此如果我右键单击该文件,然后单击我的操作 - 将使用旧版本的文件。如果我转到其他窗口,返回到Idea并单击我的操作 - 将使用该文件的当前版本。

我已阅读this doc about Virtual File System,发现我可以触发从文件系统加载的文件(例如VirtualFileManager.syncRefresh()VirtualFileManager.asyncRefresh())。我试过这个希望它会起作用,但事实并非如此。

问题是:如何手动(以编程方式)保存文件?

1 个答案:

答案 0 :(得分:9)

在格式化我的问题时,我再次检查了一次,这对我有用。

FileDocumentManager.getInstance().saveAllDocuments();

修改
最后想出了解决方案

FileDocumentManager fileDocumentManager = FileDocumentManager.getInstance();
Document document = fileDocumentManager.getDocument(file);
if (document != null) {
    fileDocumentManager.saveDocument(document);
}