Медленное сохранение запроса изменения запроса (система управления версиями) VSPackage
Visual Studio редакторы могут вещать события сохранения запроса правки запроса (QEQS). Visual Studio Заглушка системы управления версиями, реализующий службу QEQS, что это будет получателем событий QEQS. Эти события затем делегированы для текущего активного системе управления версиями VSPackage. Активная в системе управления версиями VSPackage реализует IVsQueryEditQuerySave2 и его методы. Методы IVsQueryEditQuerySave2 интерфейс обычно вызывается непосредственно перед тем, документ отредактирован впервые и непосредственно перед сохранении документа.
События QueryEditQuerySave
Система управления версиями VSPackage должна обрабатывать события QEQS путем реализации IVsQueryEditQuerySave2 интерфейс и необходимые методы. Ниже кратко описание 2 методов, VSPackage как минимум должно реализовать. Фактическая реализация должна быть в соответствии с логикой модели системы управления версиями.
Метод QueryEditFiles
QueryEditFiles вызывается при любой проект или редактор хотят внести изменения в файл. В идеальном случае этот метод вызывается before файл изменяется и после сохранения файла. При вызове IVsQueryEditQuerySave2::QueryEditFiles метод проверяет, находится ли заданный файлов в системе управления версиями, следует ли им можно извлечь и ли они могут быть перезапущен. Если условия могут мешать файлы от редактируемой; IVsQueryEditQuerySave2::QueryEditFiles метод сообщает, что вызывающая программа отменяет правка. Также можно указать режим вызова для вызывающего объекта. В режиме "автоматически", этот метод принимает только если его действие не приводит ни пользовательский интерфейс. Если пользовательский интерфейс неизбежн, то пометить необходимо возвращать для указания на проблему.
Метод ведет себя происходить в транзакционном режиме; то есть, если правка отменяется в одном файле, правка отменяется для всех файлов. И наоборот, если правка разрешена, то она разрешена для всех файлов. Если этот метод позволяет редактировать раз для заданного набора файлов, он всегда должен разрешить редактирование при последующих вызовах для одного набора файлов. Цикл разрешить-правки продолжается до тех пор, пока не сохраняются и закрыть, перезапускаются файлы; до их изменения атрибутов (свойств); либо до системы управления версиями пакета не изменяется. Case, которые следует учитывать при реализации IVsQueryEditQuerySave2::QueryEditFiles метод включает несколько файлов, специальные файлы отменяет у пользователя и правок в памяти.
Метод QuerySaveFiles
QuerySaveFiles вызывается при любой проект или редактор необходимо сохранить набор файлов. При вызове IVsQueryEditQuerySave2::QuerySaveFiles метод проверяет, является ли данный файл только для чтения и находится ли они в системе управления версиями. Если файлы нужно извлечь, то вызов делегирован к пакету системы управления версиями. Если условия могут мешать файлы из должны быть сохранены, IVsQueryEditQuerySave2::QuerySaveFiles метод должен указать, что редактор отменил сохранить. Как и IVsQueryEditQuerySave2::QueryEditFiles метод, вызывающий объект может указать режим вызова. В режиме "автоматически", этот метод принимает только если его действие не приводит ни пользовательский интерфейс. Если пользовательский интерфейс неизбежн, то пометить необходимо возвращать для указания на проблему.
Этот метод должен действовать происходить в транзакционном режиме; то есть, если сохранить отменено на одном файле, сохранить отменено для всех файлов. И наоборот, если сохранить разрешено, то он должен разрешить для всех файлов. Как и IVsQueryEditQuerySave2::QueryEditFiles метод варианты, которые следует учитывать при реализации IVsQueryEditQuerySave2::QuerySaveFiles метод включает несколько файлов, специальные файлы отменяет у пользователя и правок в памяти.