Это может быть старая ошибка; Я нашел этот отчет. Я использую Sublime 3, но я думаю, что этот код также работает на 2.
Когда я вызываю self.view.run_command('save')
в плагине, сохранение происходит — я могу набрать файл в окне консоли и посмотреть результаты. Грязный флаг, кажется, очищается. Но вкладка для файла содержит точку, а не x, что указывает на то, что файл не был сохранен. И, конечно же, если вы попытаетесь закрыть его, он спросит, хотите ли вы сохранить файл.
Есть ли способ обновить окно файла, чтобы оно распознало, что файл был сохранен?
Вот код моего плагина: (Это мой первый плагин, поэтому извините за очевидные проблемы со стилем)
# Sublime Text plugin to insert output in the OUTPUT_SHOULD_BE comment
# Bind to key with:
# { "keys": ["f12"], "command": "insert_output" },
import sublime, sublime_plugin, pprint, os, re
class InsertOutputCommand(sublime_plugin.TextCommand):
def run(self, edit):
outfile = self.view.file_name().rsplit('.')[0] + ".out"
if not os.path.exists(outfile):
sublime.error_message("Not Found: " + outfile)
return
out_data = open(outfile).read().strip()
region = self.view.find(r"/\* OUTPUT_SHOULD_BE\n", 0)
if region:
self.view.insert(edit, region.end(), out_data)
self.view.run_command('save')
self.view.window().focus_view(self.view)
else:
sublime.error_message("Not Found: OUTPUT_SHOULD_BE")