Sdílet prostřednictvím


Podpůrné nástroje procházení symbolů

Nástroje Object Browser, Class View, Call Browser a Find Symbol Results poskytují možnosti procházení symbolů v sadě Visual Studio. Tyto nástroje zobrazují hierarchické stromové zobrazení symbolů a zobrazují vztahy mezi symboly ve stromu. Symboly mohou představovat obory názvů, objekty, třídy, členy třídy a další prvky jazyka obsažené v různých komponentách. Součástí součástí jsou projekty sady Visual Studio, externí komponenty rozhraní .NET Framework a knihovny typů (.tlb). Další informace naleznete v tématu Zobrazení struktury kódu.

Knihovny procházení symbolů

Jako implementátor jazyka můžete rozšířit možnosti procházení symbolů sady Visual Studio vytvořením knihoven, které sledují symboly v komponentách, a poskytnout seznam symbolů správci objektů sady Visual Studio prostřednictvím sady rozhraní. Rozhraní popisuje knihovnu IVsSimpleLibrary2 . Správce objektů sady Visual Studio reaguje na žádosti o nová data z nástrojů pro procházení symbolů získáním dat z knihoven a jejich uspořádáním. Následně naplní nebo aktualizuje nástroje požadovanými daty. Chcete-li získat odkaz na správce objektů sady Visual Studio, IVsObjectManager2předejte SVsObjectManager ID služby metodě GetService .

Každá knihovna se musí zaregistrovat ve Správci objektů sady Visual Studio, která shromažďuje informace o všech knihovnách. Pokud chcete zaregistrovat knihovnu, zavolejte metodu RegisterSimpleLibrary . V závislosti na tom, který nástroj inicializuje požadavek, najde správce objektů sady Visual Studio příslušnou knihovnu a požádá o data. Data putují mezi knihovnami a správcem objektů sady Visual Studio v seznamech symbolů popsaných rozhraním IVsSimpleObjectList2 .

Správce objektů sady Visual Studio zodpovídá za pravidelné aktualizace nástrojů pro procházení symbolů tak, aby odrážely nejaktuálnější data obsažená v knihovnách.

Následující diagram obsahuje vzorek klíčových prvků procesu výměny dat mezi knihovnou a správcem objektů sady Visual Studio. Rozhraní v diagramu jsou součástí aplikace spravovaného kódu.

Data flow between a library and the object manager

Chcete-li poskytnout seznamy symbolů správci objektů sady Visual Studio, musíte nejprve zaregistrovat knihovnu pomocí správce objektů sady Visual Studio voláním RegisterSimpleLibrary metody. Po registraci knihovny správce objektů sady Visual Studio požádá o určité informace o možnostech knihovny. Například požádá o příznaky knihovny a podporované kategorie voláním GetLibFlags2 metod a GetSupportedCategoryFields2 metod. V určitém okamžiku, když jeden z nástrojů požaduje data z této knihovny, správce objektů požádá o seznam symbolů nejvyšší úrovně voláním GetList2 metody. Knihovna v reakci na to vyrábí seznam symbolů a zveřejňuje ho správci objektů sady Visual Studio prostřednictvím IVsSimpleObjectList2 rozhraní. Správce objektů sady Visual Studio určuje, kolik položek je v seznamu voláním GetItemCount metody. Všechny následující požadavky se vztahují k dané položce v seznamu a v každém požadavku zadejte číslo indexu položky. Správce objektů sady Visual Studio pokračuje ve shromažďování informací o typu, přístupnosti a dalších vlastnostech položky voláním GetCategoryField2 metody.

Určuje název položky voláním GetTextWithOwnership metody a požádá o informace o ikoně voláním GetDisplayData metody. Ikona se zobrazí vlevo od názvu položky a zobrazuje typ položky, přístupnost a další vlastnosti.

Správce objektů sady Visual Studio volá metodu GetExpandable3 , která určuje, jestli je daná položka seznamu rozbalitelná a obsahuje podřízené položky. Pokud uživatelské rozhraní odešle požadavek na rozšíření elementu, správce objektů požádá o podřízený seznam symbolů voláním GetList2 metody. Proces pokračuje v různých částech stromu, které se vytvářejí na vyžádání.

Poznámka:

K implementaci zprostředkovatele symbolů nativního kódu použijte rozhraní IVsLibrary2 a IVsObjectList2 rozhraní.