Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk áttekintést nyújt a szintaxisábrázoló eszközről, amely a .NET Fordítóplatform ("Roslyn") SDK részeként jelenik meg. A Szintaxisábrázoló egy eszközablak, amely segít a szintaxisfák vizsgálatában és feltárásában. Ez egy alapvető eszköz az elemezni kívánt kódmodellek megértéséhez. Hibakeresési segéd is, ha saját alkalmazásokat fejleszt a .NET Fordítóplatform ("Roslyn") SDK használatával. Nyissa meg ezt az eszközt az első elemzők létrehozásakor. A vizualizáció segít megérteni az API-k által használt modelleket. Olyan eszközöket is használhat, mint a SharpLab vagy a LINQPad a kód vizsgálatához és a szintaxisfák megértéséhez.
Telepítési utasítások – Visual Studio Installer
A .NET Fordítóplatform SDK-t kétféleképpen keresheti meg a Visual Studio Installerben:
Telepítés a Visual Studio Installer – Munkaterhelések nézet használatával
A .NET Fordítóplatform SDK nincs automatikusan kiválasztva a Visual Studio bővítményfejlesztési számítási feladatainak részeként. Választható összetevőként kell kiválasztania.
- Visual Studio Installer futtatása
- Válassza a Módosítás lehetőséget
- Ellenőrizze a Visual Studio bővítményfejlesztési számítási feladatát.
- Nyissa meg a Visual Studio bővítményfejlesztési csomópontot az összefoglaló fán.
- Jelölje be a .NET Fordítóplatform SDK jelölőnégyzetét. Az opcionális összetevők alatt fogja utoljára megtalálni.
Szükség esetén azt is szeretné, hogy a DGML-szerkesztő diagramokat jelenítsen meg a vizualizációban:
- Nyissa meg az Egyes összetevők csomópontot az összefoglaló fán.
- A DGML-szerkesztő jelölőnégyzetének bejelölése
Telepítés a Visual Studio Installer – Egyéni összetevők lap használatával
- Visual Studio Installer futtatása
- Válassza a Módosítás lehetőséget
- Az Egyes összetevők lap kiválasztása
- Jelölje be a .NET Fordítóplatform SDK jelölőnégyzetét. A fordítók, a buildelési eszközök és a futtatókörnyezetek szakasz tetején találja meg.
Szükség esetén azt is szeretné, hogy a DGML-szerkesztő diagramokat jelenítsen meg a vizualizációban:
- Jelölje be a DGML szerkesztő jelölőnégyzetet. Ezt a Kódeszközök szakaszban találja.
Az áttekintési cikkből megismerheti a .NET Fordítóplatform SDK-ban használt fogalmakat. Bemutatja a szintaxisfákat, csomópontokat, jogkivonatokat és triviákat.
Szintaxisábrázoló
A Szintaxisvizualizáció lehetővé teszi a C# vagy Visual Basic kódfájl szintaxisfáját a Visual Studio IDE aktuális aktív szerkesztőablakában. A vizualizáló a Megtekintés>Egyéb Windows>Szintaxisábrázoló menüpontok megnyitásával indítható el. Az Gyorsindítás eszköztárat is használhatja a jobb felső sarokban. Írja be a "szintaxis" szót, és meg kell jelennie a Szintaxisábrázoló megnyitására vonatkozó parancsnak.
Ez a parancs lebegő eszközablakként nyitja meg a Szintaxisábrázolót. Ha nincs megnyitva a kódszerkesztő ablaka, a megjelenítés üres, ahogy az alábbi ábrán is látható.
Rögzítse ezt az eszközablakot egy kényelmes helyen a Visual Studióban, például a bal oldalon. A Vizualizáció az aktuális kódfájl adatait jeleníti meg.
Hozzon létre egy új projektet a Fájl>új projekt parancsával. Visual Basic- vagy C#-projektet is létrehozhat. Amikor a Visual Studio megnyitja a projekt fő kódfájlját, a vizualizáció megjeleníti annak szintaxisfáját. Ebben a Visual Studio-példányban bármely meglévő C# / Visual Basic fájlt megnyithat, és a vizualizáció megjeleníti a fájl szintaxisfáját. Ha több kódfájl is meg van nyitva a Visual Studióban, a vizualizáció megjeleníti az aktuálisan aktív kódfájl szintaxisfáját (a billentyűzetfókuszú kódfájlt).)
Ahogy az előző képeken is látható, a vizualizációs eszköz ablaka a szintaxisfát jeleníti meg a tetején, alul pedig egy tulajdonságrácsot. A tulajdonságrács megjeleníti a fában jelenleg kijelölt elem tulajdonságait, beleértve az elem . NET-típusát és Kind (SyntaxKind) tulajdonságát.
A szintaxisfák háromféle elemet tartalmaznak: csomópontokat, jogkivonatokat és triviákat. Ezekről a típusokról a Szintaxis használata cikkben olvashat bővebben. Az egyes típusú elemek más színnel jelennek meg. Kattintson a Jelmagyarázat gombra a használt színek áttekintéséhez.
A fa minden egyes eleme saját pántot is megjelenít. A span a csomópont indexei (kezdő és záró pozíciója) a szövegfájlban. Az előző C# példában a kiválasztott "UsingKeyword [0..5)" tokennek öt karakter széles spannja van ([0..5).). A "[...)" jelölés azt jelenti, hogy a kezdő index a span része, de a záró index nem.
Kétféleképpen navigálhat a fán:
- Kibontsa vagy kattintson a fa elemeire. A vizualizáció automatikusan kijelöli az elemnek megfelelő szöveget a kódszerkesztőben.
- Kattintson vagy jelöljön ki szöveget a kódszerkesztőben. Az előző Visual Basic-példában, ha a kódszerkesztőben a "Modul1" szöveget tartalmazó sort választja, a vizualizáció automatikusan a fa megfelelő ModuleStatement csomópontjához navigál.
A vizualizáció kiemeli a fa azon elemét, amelynek a szélessége a legjobban megfelel a szerkesztőben kijelölt szövegnek.
A vizualizáció frissíti a fát, hogy megfeleljen az aktív kódfájl módosításainak. Helyezzen el egy hívást a Main() belsejébe, ahol Console.WriteLine(). Gépelés közben a vizualizáló frissíti a fát.
A gépelés szüneteltetése a gépelés után Console.. A fa néhány eleme rózsaszín. Ezen a ponton a gépelt kódban hibák (más néven "diagnosztika") vannak. Ezek a hibák a szintaxisfa csomópontjaihoz, tokenekhez és egyéb megjegyzésekhez vannak csatolva. A vizualizáció megjeleníti, hogy mely elemekhez vannak hibák csatolva, és rózsaszínrel emeli ki a hátteret. Az elem fölé rámutatva megvizsgálhatja a rózsaszín színű elemek hibáit. A vizualizáció csak szintaktikai hibákat jelenít meg (a gépelt kód szintaxisával kapcsolatos hibákat); nem jelenít meg szemantikai hibákat.
Szintaxisdiagramok
Kattintson a jobb gombbal a fa bármely elemére, és kattintson az Irányított szintaxisdiagram megtekintése parancsra.
A megjelenítő grafikus ábrázolását mutatja annak a részfának, amely a kijelölt elemen gyökerezik. A C#-példában szereplő metódusnak Main() megfelelő MethodDeclaration csomópont esetében próbálkozzon ezekkel a lépésekkel. A vizualizáció egy szintaxisdiagramot jelenít meg, amely a következőképpen néz ki:
A szintaxisdiagram-megjelenítőben megjelenítheti a színsémához tartozó jelmagyarázatot. A szintaxisdiagram egyes elemeire is rámutathat az egérrel az adott elemnek megfelelő tulajdonságok megtekintéséhez.
A fa különböző elemeinek szintaktikai gráfjait többször is megtekintheti, és a gráfok mindig ugyanabban az ablakban jelennek meg a Visual Studióban. Ezt az ablakot a Visual Studióban egy kényelmes helyen rögzítheti, így nem kell váltania a lapok között az új szintaxisdiagram megtekintéséhez. Az alsó, a kódszerkesztő ablakai alatt található ablakok gyakran kényelmesek.
A vizualizációs eszköz ablakával és a szintaxis gráfablakával használható dokkolás elrendezése:
Egy másik lehetőség, ha a szintaxis gráfablakát egy második monitorra helyezi egy kettős monitorbeállításban.
Szemantikák vizsgálata
A Szintaxisábrázoló lehetővé teszi a szimbólumok és szemantikai információk alapvizsgálatát. Írja be double x = 1 + 1; a Main() fájlba a C#-példában. Ezután válassza ki a kifejezést 1 + 1 a kódszerkesztő ablakban. A vizualizáció kiemeli az AddExpression csomópontot a vizualizációban. Kattintson a jobb gombbal erre az AddExpression parancsra , és válassza a Szimbólum megtekintése (ha van) parancsot. Vegye észre, hogy a legtöbb menüelem rendelkezik a "ha van" megjelöléssel. A Szintaxisábrázoló a csomópontok tulajdonságait vizsgálja, beleértve azokat a tulajdonságokat is, amelyek nem feltétlenül minden csomóponton vannak jelen.
A vizualizáció tulajdonságrácsa a következő ábrán látható módon frissül: A kifejezés szimbóluma egy SynthesizedIntrinsicOperatorSymbol, amelynek Kind = Method.
Kattintson a jobb gombbal ugyanarra az AddExpression csomópontra, és válassza a View TypeSymbol (ha van ilyen) lehetőséget. A vizualizáció tulajdonságrácsa az alábbi ábrán látható módon frissül, ami azt jelzi, hogy a kijelölt kifejezés típusa .Int32
Kattintson a jobb gombbal ugyanarra az AddExpression csomópontra, és válassza a Konvertált típus megtekintése (ha van) lehetőséget. A tulajdonságrács frissül, jelezve, hogy bár a kifejezés típusa Int32, a kifejezés konvertált típusa a következő ábrán látható módon Double jelenik meg. Ez a csomópont konvertált típusszimbólum információt tartalmaz, mert a Int32 kifejezés olyan környezetben fordul elő, ahol át kell alakítani Double típusra. Ez az átalakítás megfelel a x típusnak, amely a hozzárendelési operátor bal oldalán lévő Double változóhoz van megadva.
Végül kattintson a jobb gombbal ugyanarra az AddExpression csomópontra, és válassza az Állandó érték megtekintése (ha van) lehetőséget. A tulajdonságrács azt mutatja, hogy a kifejezés értéke egy fordítási időállandó értékekkel 2.
Az előző példa a Visual Basicben is replikálható. Írja be a Dim x As Double = 1 + 1 egy Visual Basic-fájlban. Válassza ki a kifejezést 1 + 1 a kódszerkesztő ablakban. A vizualizáló kiemeli a vizualizáló megfelelő AddExpression csomópontot. Ismételje meg az AddExpression előző lépéseit, és azonos eredményeket kell látnia.
További kód vizsgálata a Visual Basicben. Frissítse a fő Visual Basic-fájlt a következő kóddal:
Imports C = System.Console
Module Program
Sub Main(args As String())
C.WriteLine()
End Sub
End Module
Ez a kód bevezet egy C nevű aliast, amely a fájl tetején található System.Console típushoz van társítva, és ezt az aliast használja a Main() belsejében. Válassza ki ennek az aliasnak a használatát a C metóduson C.WriteLine()belül Main() . A vizualizáció kiválasztja a megfelelő IdentifierName csomópontot a vizualizációban. Kattintson a jobb gombbal erre a csomópontra, és válassza a Szimbólum megtekintése (ha van) parancsot. A tulajdonságrács azt jelzi, hogy ez az azonosító a típushoz System.Console van kötve az alábbi ábrán látható módon:
Kattintson a jobb gombbal ugyanarra az IdentifierName csomópontra, és válassza az AliasSymbol megtekintése (ha van ilyen) lehetőséget. A tulajdonságrács azt jelzi, hogy az azonosító egy alias, amelynek neve C a System.Console célhoz van kötve. Más szóval a tulajdonságrács az azonosítónak Cmegfelelő AliasSymbolról nyújt információt.
Vizsgálja meg a deklarált típusnak, metódusnak és tulajdonságnak megfelelő szimbólumot. Válassza ki a megfelelő csomópontot a vizualizációban, és kattintson a jobb gombbal a Nézetszimbólum eléréséhez (ha van ilyen). Válassza ki a metódust Sub Main(), beleértve a metódus törzsét is. Kattintson a jobb gombbal a megfelelő SubBlock csomópontra a vizualizációban, és válassza a Szimbólum megtekintése (ha van) lehetőséget. A tulajdonságrács azt mutatja, hogy az alblokkMetódusszymboljának neve Main visszatérési típussal rendelkezikVoid.
A fenti Visual Basic-példák egyszerűen replikálhatók C#-ban. Írja be using C = System.Console; az alias helyett Imports C = System.Console . A C# előző lépései azonos eredményt adnak a vizualizáció ablakában.
A szemantikai ellenőrzési műveletek csak csomópontokon érhetők el. Nem érhetők el tokeneken vagy trivia-n. Nem minden csomópont rendelkezik érdekes szemantikai információkkal. Ha egy csomópont nem rendelkezik érdekes szemantikai információkkal, a jobb gombbal kattintva és a Nézet * szimbólum (ha van ilyen) lehetőség választásával üres tulajdonságrács jelenik meg.
A szemantikai elemzést végző API-król a Szemantika használata áttekintő dokumentumban olvashat bővebben.
A szintaxisábrázoló bezárása
Bezárhatja a vizualizáció ablakát, ha nem használja a forráskód vizsgálatához. A szintaxisvizualizáció a kódban való navigálás, a forrás szerkesztése és módosítása során frissíti annak megjelenítését. Zavaró lehet, amikor nem használod.