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.