我正在实现 Intellij IDEA 插件,该插件需要在执行操作之前保存文件。 Action是shell命令,它需要将文件名作为命令行参数传递。
AFAIK Idea 在框架停用时保存(同步)文件,因此如果我右键单击该文件,然后单击我的操作 - 将使用旧版本的文件。如果我转到其他窗口,返回到 Idea 并单击我的操作 - 将使用文件的当前版本。
我读了这篇关于虚拟文件系统的文档 http://confluence.jetbrains.com/display/IDEADEV/IntelliJ+IDEA+Virtual+File+System,并发现我可以触发从文件系统加载文件(例如VirtualFileManager.syncRefresh()
or VirtualFileManager.asyncRefresh()
)。我尝试过这个希望它能起作用,但它不起作用。
问题是:如何手动(以编程方式)保存文件?
在格式化我的问题时,我又检查了一次,这对我有用。
FileDocumentManager.getInstance().saveAllDocuments();
EDIT
终于想出了解决办法
FileDocumentManager fileDocumentManager = FileDocumentManager.getInstance();
Document document = fileDocumentManager.getDocument(file);
if (document != null) {
fileDocumentManager.saveDocument(document);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)