Udostępnij za pośrednictwem


Projektowanie plików tabeli poleceń XML (vsct)

Plik tabeli poleceń XML (vsct) opisuje układ i wygląd elementów poleceń dla pakietu VSPackage. Elementy poleceń obejmują przyciski, pola kombi, menu, paski narzędzi i grupy elementów poleceń. W tym artykule opisano pliki tabeli poleceń XML, sposób ich wpływu na elementy poleceń i menu oraz sposób ich tworzenia.

Polecenia, menu, grupy i plik vsct

Pliki vsct są zorganizowane wokół poleceń, menu i grup poleceń. Tagi XML w pliku vsct reprezentują każdy z tych elementów wraz z innymi skojarzonymi elementami, takimi jak przyciski poleceń, umieszczanie poleceń i mapy bitowe.

Podczas tworzenia nowego pakietu VSPackage przez uruchomienie szablonu pakietu programu Visual Studio szablon generuje plik vsct z niezbędnymi elementami polecenia menu, okna narzędzi lub edytora niestandardowego w zależności od wybranych opcji. Ten plik vsct można następnie zmodyfikować, aby spełnić wymagania określonego pakietu VSPackage. Aby zapoznać się z przykładami modyfikowania pliku vsct , zobacz Rozszerzanie menu i poleceń.

Aby utworzyć nowy, pusty plik vsct, zobacz Instrukcje: tworzenie pliku vsct. Po utworzeniu dodajesz do pliku elementy XML, atrybuty i wartości, aby opisać układ elementu polecenia. Aby uzyskać szczegółowy schemat XML, zobacz dokumentację schematu XML programu VSCT.

Różnice między plikami ctc i vsct

Chociaż znaczenie tagów XML w pliku vsct jest takie samo jak te tagi w przestarzałym formacie pliku ctc , ich implementacja jest nieco inna:

  • Nowy <tag extern> to miejsce, w którym odwołujesz się do innych plików h do skompilowania, takich jak te pliki na pasku narzędzi programu Visual Studio.

  • Chociaż pliki vsct obsługują instrukcję /include , jak robią pliki ctc , zawiera również nowy <element importu> . Różnica polega na tym, że /include wprowadza wszystkie informacje, podczas gdy <import> powoduje tylko nazwy.

  • Chociaż pliki ctc wymagają pliku nagłówka, w którym definiuje się dyrektywy preprocesora, nie jest wymagane dla plików vsct . Zamiast tego umieść dyrektywy w tabeli symboli znajdującej się w elementach Symbol> znajdujących się w dolnej części pliku vsct.<

  • Pliki vsct zawierają <tag adnotacji> , który umożliwia osadzanie dowolnych informacji, takich jak notatki, a nawet obrazy.

  • Wartości są przechowywane jako atrybuty elementu.

  • Flagi poleceń można przechowywać pojedynczo lub skumulowanie. Funkcja IntelliSense nie działa jednak na flagach poleceń skumulowanych. Aby uzyskać więcej informacji na temat flag poleceń, zobacz element CommandFlag.

  • Można określić wiele typów, takich jak listy rozwijane podziału, kombi itp.

  • Identyfikatory GUID nie są weryfikowane.

  • Każdy element interfejsu użytkownika ma ciąg reprezentujący tekst, który jest z nim wyświetlany.

  • Element nadrzędny jest opcjonalny. Jeśli pominięto, zostanie użyta wartość Grupa nieznana .

  • Argument Ikona jest opcjonalny.

  • Sekcja mapy bitowej: ta sekcja jest taka sama jak w pliku ctc , z tą różnicą, że teraz można określić nazwę pliku za pośrednictwem Href, który zostanie ściągnięty przez kompilator vsct.exe w czasie kompilacji.

  • ResID: stary identyfikator zasobu mapy bitowej może być używany i nadal działa tak samo jak w plikach ctc .

  • HRef: nowa metoda, która umożliwia określenie nazwy pliku zasobu mapy bitowej. Przyjęto założenie, że wszystkie są używane, aby pominąć sekcję Używane. Kompilator najpierw wyszuka zasoby lokalne dla pliku, a następnie we wszystkich udziałach sieciowych i wszystkich zasobach zdefiniowanych przez przełącznik /I .

  • Powiązanie klawiszy: nie trzeba już określać emulatora. Jeśli go określisz, kompilator przyjmie, że edytor i emulator są takie same.

  • Klucz: Pęk klucz został porzucony. Nowy format to Key1,Mod1,Key2,Mod2. Można określić znak, szesnastkowy lub stałą VK.

Nowy kompilator vsct.exe kompiluje pliki ctc i vsct. Jednak stary kompilator ctc.exe nie rozpozna ani nie skompiluje plików vsct .

Możesz użyć kompilatora vsct.exe, aby przekonwertować istniejący plik cto na plik vsct. Aby uzyskać więcej informacji, zobacz How to: Create a .vsct file from an existing .cto file (Jak utworzyć plik vsct z istniejącego pliku cto).

Elementy pliku .vsct

Tabela poleceń ma następującą hierarchię i elementy:

  • CommandTable, element: reprezentuje wszystkie polecenia, grupy menu i menu skojarzone z pakietem VSPackage.

  • Extern, element: odwołuje się do wszystkich zewnętrznych plików h, które chcesz scalić z plikiem vsct .

  • Include, element: odwołuje się do wszystkich dodatkowych plików nagłówka (h), które chcesz skompilować wraz z plikiem vsct . Plik vsct może zawierać pliki .h zawierające stałe definiujące polecenia, grupy menu i menu, które zapewnia środowisko IDE lub inny pakiet VSPackage.

  • Element Polecenia: reprezentuje wszystkie poszczególne polecenia, które można wykonać. Każde polecenie ma następujące cztery elementy podrzędne:

  • Element Menus: reprezentuje wszystkie menu i paski narzędzi w pakietach VSPackage. Menu to kontenery dla grup poleceń.

  • Element Groups: reprezentuje wszystkie grupy w programie VSPackage. Grupy to kolekcje poszczególnych poleceń.

  • Element Przyciski: reprezentuje wszystkie przyciski poleceń i elementy menu w programie VSPackage. Przyciski to kontrolki wizualne, które mogą być skojarzone z poleceniami.

  • Element Mapy bitowe: reprezentuje wszystkie mapy bitowe dla wszystkich przycisków w pakietach VSPackage. Mapy bitowe to obrazy, które są wyświetlane obok lub na przyciskach poleceń, w zależności od kontekstu.

  • CommandPlacements, element: wskazuje dodatkowe lokalizacje, w których poszczególne polecenia powinny być lokacje w menu pakietu VSPackage.

  • Element Ograniczenia widoczności: określa, czy polecenie jest wyświetlane przez cały czas, czy tylko w niektórych kontekstach, takich jak w przypadku wyświetlania określonego okna dialogowego lub okna. Menu i polecenia, które mają wartość dla tego elementu, będą wyświetlane tylko wtedy, gdy określony kontekst jest aktywny. Domyślne zachowanie polega na wyświetlaniu polecenia przez cały czas.

  • KeyBindings, element: określa wszelkie powiązania kluczy dla poleceń. Oznacza to, że co najmniej jedna kombinacja klawiszy, którą należy nacisnąć, aby wykonać polecenie, takie jak Ctrl+S.

  • UsedCommands, element: informuje środowisko programu Visual Studio, że chociaż określone polecenie jest implementowane przez inny kod, gdy bieżący pakiet VSPackage jest aktywny, zapewnia implementację polecenia.

  • Element Symbole: zawiera nazwy symboli i identyfikatory GUID dla wszystkich poleceń w pakiecie.

Wskazówki dotyczące projektowania plików vsct

Aby pomyślnie zaprojektować plik vsct , postępuj zgodnie z tymi wytycznymi.

  • Polecenia można umieszczać tylko w grupach, grupy można umieszczać tylko w menu, a menu można umieszczać tylko w grupach. W środowisku IDE nie są wyświetlane tylko menu, grupy i polecenia.

  • Podmenu nie można przypisać bezpośrednio do menu, ale musi być przypisany do grupy, która jest z kolei przypisana do menu.

  • Polecenia, podmenu i grupy można przypisać do jednej grupy nadrzędnej lub menu przy użyciu pola nadrzędnego swojej dyrektywy definiującej.

  • Organizowanie tabeli poleceń wyłącznie za pomocą pól nadrzędnych w dyrektywach ma znaczne ograniczenie. Dyrektywy definiujące obiekty mogą przyjmować tylko jeden argument nadrzędny.

  • Ponowne użycie poleceń, grup lub podmenu wymaga użycia nowej dyrektywy w celu utworzenia nowego wystąpienia obiektu z własną GUID:ID parą.

  • Każda GUID:ID para musi być unikatowa. Ponowne przy użyciu polecenia, które zostało na przykład umieszczone w menu, pasku narzędzi lub w menu kontekstowym, jest obsługiwane przez IOleCommandTarget interfejs.

  • Polecenia i podmenu można również przypisać do wielu grup, a grupy można przypisać do wielu menu przy użyciu elementu Polecenia.

Uwagi dotyczące pliku vsct

Jeśli wprowadzisz jakiekolwiek zmiany w pliku vsct po skompilowaniu go i umieścisz go w natywnej biblioteki DLL satelitarnej, należy uruchomić polecenie devenv.exe /setup /nosetupvstemplates. Spowoduje to wymuś ponowne odczytanie zasobów pakietu VSPackage określonych w rejestrze eksperymentalnym oraz wewnętrznej bazy danych opisujących ponowne skompilowanie programu Visual Studio.

Podczas opracowywania istnieje możliwość utworzenia i zarejestrowania wielu projektów VSPackage w eksperymentalnej gałęzi rejestru, co może prowadzić do mylącego bałaganu w środowisku IDE. Aby rozwiązać ten problem, możesz zresetować gałąź eksperymentalną do ustawień domyślnych, aby usunąć wszystkie zarejestrowane pakiety VSPackage i wszelkie zmiany, które mogły zostać wprowadzone w środowisku IDE. Aby zresetować eksperymentalną gałąź, użyj narzędzia CreateExpInstance.exe dołączonego do zestawu Visual Studio SDK. Możesz go znaleźć na stronie:

%PROGRAMFILES(x86)%\Visual Studio\<version> SDK\VisualStudioIntegration\Tools\Bin\CreateExpInstance.exe

Uruchom narzędzie za pomocą polecenia CreateExpInstance /Reset. Należy pamiętać, że to narzędzie usuwa z eksperymentalnego programu Hive wszystkie zarejestrowane pakiety VSPackage, które nie są zwykle instalowane w programie Visual Studio.