Sdílet prostřednictvím


Úprava dotazu Uložení dotazu (VSPackage správy zdrojů)

Editory sady Visual Studio mohou vysílat události QEQS (Query Edit Query Save). Stub pro správu zdrojového kódu ve Visual Studio implementuje službu QEQS, aby byla příjemcem událostí QEQS. Tyto události se pak delegují do aktuálně aktivního balíčku VSPackage správy zdrojového kódu. Balíček VSPackage pro aktivní správu verzí implementuje IVsQueryEditQuerySave2 a jeho metody. Metody IVsQueryEditQuerySave2 rozhraní se obvykle volají bezprostředně před první úpravou dokumentu a bezprostředně před uložením dokumentu.

QueryEditQuerySave – události

Balíček VSPackage správy zdrojového kódu musí zpracovávat události QEQS implementací IVsQueryEditQuerySave2 rozhraní a potřebných metod. Níže je stručný popis dvou metod, které musí balíček VSPackage implementovat minimálně. Skutečná implementace musí být v souladu s logikou modelu správy zdrojového kódu.

QueryEditFiles – metoda

Volá se QueryEditFiles , když některý projekt nebo editor chce upravit soubor. V ideálním případě se tato metoda volá před úpravou souboru a při uložení souboru. Při vyvolání IVsQueryEditQuerySave2::QueryEditFiles metoda zkontroluje, zda jsou dané soubory ve správě verzí, zda je třeba je vypůjčit a zda je možné je znovu načíst. Pokud okolnosti brání v úpravách souborů, IVsQueryEditQuerySave2::QueryEditFiles metoda říká volajícímu programu, aby úpravu zrušil. Volající může také zadat režim volání. V tichém režimu tato metoda provede akci pouze v případě, že nezpůsobí zobrazení uživatelského rozhraní. Pokud je uživatelské rozhraní nevyhnutelné, musí se vrátit příznak, který značí problém.

Metoda se chová transakčním způsobem; to znamená, že pokud je úprava zrušena u jednoho souboru, zruší se úpravy pro všechny soubory. Pokud je naopak povolená úprava, je povolená pro všechny soubory. Pokud tato metoda umožňuje úpravy jednou pro danou sadu souborů, musí vždy povolit úpravy při následných voláních pro stejnou sadu souborů. Smyčka allow-edit pokračuje, dokud se soubory neuzavřou, uloží a znovu načtou; dokud se jejich atributy (vlastnosti) nezmění; nebo dokud se balíček správy zdrojového kódu nezmění. Případy, které je potřeba zvážit při implementaci IVsQueryEditQuerySave2::QueryEditFiles metody, zahrnují více souborů, speciální soubory, zrušení uživatelem a úpravy v paměti.

Metoda QuerySaveFiles

Volá se QuerySaveFiles , když některý projekt nebo editor potřebuje uložit sadu souborů. Při vyvolání metoda zkontroluje IVsQueryEditQuerySave2::QuerySaveFiles , zda jsou dané soubory jen pro čtení a zda jsou pod správou zdrojového kódu. Pokud je potřeba soubory odemknout, volání se deleguje do balíku systému správy verzí. Pokud okolnosti brání uložení souborů, IVsQueryEditQuerySave2::QuerySaveFiles metoda musí editoru oznámit, aby ukládání zrušil. Stejně jako u IVsQueryEditQuerySave2::QueryEditFiles metody je možné volajícímu zadat režim volání. V tichém režimu tato metoda provede akci pouze v případě, že nezpůsobí zobrazení uživatelského rozhraní. Pokud je uživatelské rozhraní nevyhnutelné, musí se vrátit příznak, který značí problém.

Tato metoda se musí chovat transakčním způsobem; to znamená, že pokud je uložení zrušeno v jednom souboru, ukládání se zruší pro všechny soubory. Naopak pokud je ukládání povolené, musí být povolené pro všechny soubory. Stejně jako u metody IVsQueryEditQuerySave2::QueryEditFiles, případy, které je třeba zvážit při implementaci metody IVsQueryEditQuerySave2::QuerySaveFiles, zahrnují více souborů, speciální soubory, zrušení od uživatele a úpravy v paměti.