Postupy: Manipulace s kódem pomocí modelu kódu Visual C++ (Visual C#)
Ve verzi Visual Studio 2013 jsou zastaralé doplňky.Doporučujeme upgradovat doplňky na rozšíření VSPackage.Další informace o upgradu najdete v tématu Nejčastější dotazy: Převádění doplňků na rozšíření VSPackage.
Model kódu Visual Studio nabízí klientům automatizace možnost najít definice kódu v projektu a změnit tyto elementy kódu.Visual C++ poskytuje rozšíření základního kódového modelu na cílový kód, který je specifický pro Visual C++.
Například pokud vlastnost Language označuje, že daný kód elementu je kód objektu modelu Visual C++ a Kind = vsCMElementClass, pak můžete použít buď CodeClass2 z modelu kódu Visual Studio nebo VCCodeClass z modelu kódu Visual C++.
Následující postupy ukazují, jak zkoumat a generovat kód pomocí modelu kódu, který je specifický pro Visual C++.
Přidání komentáře k prvnímu souboru v projektu
Vytvořte projekt doplňku Visual Studio v Visual C#.
V nabídce Projekt klepněte na tlačítko Přidat odkaz, klepněte na kartu .NET, vyberte Microsoft.VisualStudio.VCCodeModel a potom klepněte na tlačítko OK.
Přidejte using Microsoft.VisualStudio.VCCodeModel; na začátek souboru Connect.cs.
Nahraďte kód v metodě OnConnection následujícím kódem:
// Add-in code. using Microsoft.VisualStudio.VCCodeModel; public void OnConnection(object application, Extensibility.ext_ConnectMode connectMode, object addInInst, ref System.Array custom) { _applicationObject = (DTE2)application; )addInInstance = (AddIn)addInInst; // Pass the applicationObject member variable to the code example. test((DTE2)_applicationObject); } public void test( DTE2 dte ) { VCCodeModel vcCM = null; VCCodeElement vcCodeElement = null; vcCM = ( ( VCCodeModel )( dte.Solution.Item( 1 ).CodeModel ) ); vcCodeElement = ( ( VCCodeElement ) ( vcCM.CodeElements.Item(1))); AddCommentAtStart( vcCodeElement ); AddCommentAtEnd( vcCodeElement ); } public void AddCommentAtStart( Microsoft.VisualStudio.VCCodeModel.VCCodeElement vcCodeElement ) { TextPoint textPoint = null; textPoint = vcCodeElement.get_StartPointOf( vsCMPart.vsCMPartWhole, 0 ); textPoint.CreateEditPoint().Insert("/*This is a Start Comment*/"); } public void AddCommentAtEnd( Microsoft.VisualStudio.VCCodeModel.VCCodeElement vcCodeElement ) { TextPoint textPoint = null; textPoint = vcCodeElement.get_EndPointOf( vsCMPart.vsCMPartWhole, 0 ); textPoint.CreateEditPoint().Insert( "/*End Comment*/" ); }
Pokud chcete sestavit doplněk, klikněte na Sestavit řešení v nabídce Sestavení.
Otevřete projekt Visual C++ nebo Visual Studio v integrovaném vývojovém prostředí (IDE).
V nabídce Nástroje klepněte na tlačítko Správce doplňků a vyberte doplněk z dialogového okna Správce doplňků.Klepněte na tlačítko OK a spusťte tak doplněk.
Prozkoumejte programově přidané komentáře v prvním souboru v projektu.
Přidání nového souboru do projektu Visual C++
Vytvořte projekt doplňku Visual Studio v Visual C#.
V nabídce Projekt klepněte na tlačítko Přidat odkaz, klepněte na kartu .NET, vyberte Microsoft.VisualStudio.VCCodeModel a potom klepněte na tlačítko OK.
Přidejte using Microsoft.VisualStudio.VCCodeModel; na začátek souboru Connect.cs.
Nahraďte kód v metodě OnConnection následujícím kódem:
//Add-in code. using Microsoft.VisualStudio.VCCodeModel; public void OnConnection(object application, Extensibility.ext_ConnectMode connectMode, object addInInst, ref System.Array custom) { _applicationObject = (DTE2)application; _addInInstance = (AddIn)addInInst; // Pass the applicationObject member variable to the code example. GetVCCodeElement((DTE2)_applicationObject); } // Shows how to get a VCCodeElement. public void GetVCCodeElement( DTE2 dte ) { VCCodeModel vcCM = null; VCCodeElement vcCodeElement = null; vcCM = ( ( Microsoft.VisualStudio.VCCodeModel.VCCodeModel )( dte.Solution.Item( 1 ).CodeModel ) ); vcCodeElement = ( ( Microsoft.VisualStudio.VCCodeModel.VCCodeElement )( vcCM.AddClass( "MyClass2", "MyClass2.h",0,null, null, EnvDTE.vsCMAccess.vsCMAccessDefault ) ) ); }
Pokud chcete sestavit doplněk, klikněte na Sestavit řešení v nabídce Sestavení.
Otevřete projekt Visual C++ nebo v IDE Visual Studio.
V nabídce Nástroje klepněte na tlačítko Správce doplňků a vyberte doplněk z dialogového okna Správce doplňků.Klepněte na tlačítko OK a spusťte tak doplněk.
[!POZNÁMKA]
Pokud MyClass2.h již existuje, dojde k chybě kódu.
Přidání funkce do file.h
Vytvořte projekt doplňku Visual Studio v Visual C#.
V nabídce Projekt klepněte na tlačítko Přidat odkaz, klepněte na kartu .NET, vyberte Microsoft.VisualStudio.VCCodeModel a System.Windows.Forms a potom klepněte na tlačítko OK.
Na začátek souboru Connect.cs přidejte následující příkazy using:
using System.Windows.Forms; using Microsoft.VisualStudio.VCCodeModel;
Nahraďte kód v metodě OnConnection následujícím kódem:
// Add-in code. using Microsoft.VisualStudio.VCCodeModel; using System.Windows.Forms; public void OnConnection(object application, Extensibility.ext_ConnectMode connectMode, object addInInst, ref System.Array custom) { _applicationObject = (DTE2)application; _addInInstance = (AddIn)addInInst; // Pass the applicationObject member variable to the code example. DisplayName((DTE2)_applicationObject); } // DisplayName // Shows the DisplayName of a function which includes the parameter // names. public void DisplayName( DTE2 dte ) { VCCodeModel vcCM = null; VCCodeElement vcCodeElement = null; vcCM = ( ( Microsoft.VisualStudio.VCCodeModel.VCCodeModel )( dte.Solution.Item( 1 ).CodeModel ) ); vcCodeElement = ( ( Microsoft.VisualStudio.VCCodeModel.VCCodeElement ) ( vcCM.AddFunction( "MyFunction", "File.h", vsCMFunction.vsCMFunctionFunction, "void", null, EnvDTE.vsCMAccess.vsCMAccessDefault ) ) ); MessageBox.Show( vcCodeElement.DisplayName); }
Pokud chcete sestavit doplněk, klikněte na Sestavit řešení v nabídce Sestavení.
Otevřete projekt Visual C++ v rámci Visual Studio IDE a přidejte do něj file.h.
V nabídce Nástroje klepněte na tlačítko Správce doplňků a vyberte doplněk z dialogového okna Správce doplňků.Klepněte na tlačítko OK a spusťte tak doplněk.
Zkontrolujte kód vložený v souboru file.h.
Chcete-li zobrazit soubory, které obsahují elementy kódu nejvyšší úrovně
Vytvořte projekt doplňku Visual Studio v Visual C#.
V nabídce Projekt klepněte na tlačítko Přidat odkaz, klepněte na kartu .NET, vyberte Microsoft.VisualStudio.VCCodeModel a System.Windows.Forms a potom klepněte na tlačítko OK.
Na začátek souboru Connect.cs přidejte následující příkazy using:
using System.Windows.Forms; using Microsoft.VisualStudio.VCCodeModel;
Nahraďte kód ve metodě OnConnection následujícím kódem:
// Add-in code. using Microsoft.VisualStudio.VCCodeModel; using System.Windows.Forms; public void OnConnection(object application, Extensibility.ext_ConnectMode connectMode, object addInInst, ref System.Array custom) { _applicationObject = (DTE2)application; _addInInstance = (AddIn)addInInst; // Pass the applicationObject member variable to the code example. DisplayLocation((DTE2)_applicationObject); } public void DisplayLocation( DTE2 dte ) { VCCodeModel vcCM = null; VCCodeElement vcCodeElement = null; vcCM = ( ( Microsoft.VisualStudio.VCCodeModel.VCCodeModel )( dte.Solution.Item( 1 ).CodeModel ) ); foreach ( Microsoft.VisualStudio.VCCodeModel.VCCodeElement temp in vcCM.CodeElements ) { vcCodeElement = temp; MessageBox.Show( vcCodeElement.Name + " is declared in " + vcCodeElement.get_Location(vsCMWhere.vsCMWhereDefault)); } }
Pokud chcete sestavit doplněk, klikněte na Sestavit řešení v nabídce Sestavení.
Otevřete projekt Visual C++ nebo v IDE Visual Studio.
V nabídce Nástroje klepněte na tlačítko Správce doplňků a vyberte doplněk z dialogového okna Správce doplňků.Klepněte na tlačítko OK a spusťte tak doplněk.
Okna se zprávou obsahují názvy souborů, které obsahují prvky nejvyšší úrovně kódu.
K zobrazení všech položek elementu kódu nejvyšší úrovně
Vytvořte projekt doplňku Visual Studio v Visual C#.
V nabídce Projekt klepněte na tlačítko Přidat odkaz, klepněte na kartu .NET, vyberte Microsoft.VisualStudio.VCCodeModel a System.Windows.Forms a potom klepněte na tlačítko OK.
Na začátek souboru Connect.cs přidejte následující příkazy using:
using System.Windows.Forms; using Microsoft.VisualStudio.VCCodeModel;
Nahraďte kód ve metodě OnConnection následujícím kódem:
// Add-in code. using Microsoft.VisualStudio.VCCodeModel; using System.Windows.Forms; public void OnConnection(object application, Extensibility.ext_ConnectMode connectMode, object addInInst, ref System.Array custom) { _applicationObject = (DTE2)application; _addInInstance = (AddIn)addInInst; // Pass the applicationObject member variable to the code example. FindItem((DTE2)_applicationObject); } public void FindItem( DTE2 dte ) { VCCodeModel vcCM = null; VCCodeElements vcCodeElements = null; vcCM = ( ( Microsoft.VisualStudio.VCCodeModel.VCCodeModel )( dte.Solution.Item( 1 ).CodeModel ) ); vcCodeElements = ( ( Microsoft.VisualStudio.VCCodeModel.VCCodeElements ) ( vcCM.CodeElements ) ); int i = 0; for ( i=1; i<=vcCodeElements.Count; i++ ) { MessageBox.Show( vcCodeElements.Item( i ).Name); } }
Pokud chcete sestavit doplněk, klikněte na Sestavit řešení v nabídce Sestavení.
Otevřete projekt Visual C++ nebo v IDE Visual Studio.
V nabídce Nástroje klepněte na tlačítko Správce doplňků a vyberte doplněk z dialogového okna Správce doplňků.Klepněte na tlačítko OK a spusťte tak doplněk.
Okna se zprávou obsahují názvy prvků nejvyšší úrovně kódu.
Viz také
Úkoly
Postupy: Manipulace s kódem pomocí modelu kódu Visual C++ (Visual Basic)