Синхронизировать виртуальный файл с физическим файлом в плагине Intellij IDEA

Я реализую плагин для Intellij IDEA, который требует сохранения файла перед выполнением действия. Действие - это команда оболочки, она требует, чтобы имя файла передавалось как параметр командной строки.

AFAIK Idea сохраняет (синхронизирует) файлы при деактивации фрейма, поэтому, если я щелкну правой кнопкой мыши по файлу и нажму на свое действие - будет использоваться старая версия файла. Если я перейду в другое окно, вернитесь в Idea и щелкните по моему действию - будет использоваться текущая версия файла.

Я прочитал этот документ о виртуальной файловой системе и обнаружил, что могу инициировать загрузку файла из файловой системы (например, VirtualFileManager.syncRefresh() или же VirtualFileManager.asyncRefresh()). Я попробовал это, надеясь, что это сработает, но это не так.

Вопрос: как вручную (программно) сохранить файл?

1 ответ

Решение

При форматировании моего вопроса я проверил еще раз, и это сработало для меня.

FileDocumentManager.getInstance().saveAllDocuments();

РЕДАКТИРОВАТЬ
Наконец придумали решение

FileDocumentManager fileDocumentManager = FileDocumentManager.getInstance();
Document document = fileDocumentManager.getDocument(file);
if (document != null) {
    fileDocumentManager.saveDocument(document);
}
Другие вопросы по тегам