5. díl - Visual Studio - Navigace v souborech

C# .NET Visual Studio Visual Studio - Navigace v souborech

Vítám Vás u pokračování seriálu, kde si představujeme možnosti Visual Studia. V tomto díle se podíváme na vymoženosti vyhledávání v jeho funkcích a navigaci po zdrojovém kódu. Na úvod si stáhněte zdejší rozsáhlejší program Karel Robot, rozbalte jej a otevřete si řešení.

Otevírání cizího řešení

Při otevíraní projektů, které pochází z cizího zdroje, to Visual Stuio vycítí a upozorní nás na možné bezpečnostní riziko. Náš projekt Karel však žádné nebezpečí neskrývá a proto ho můžeme odkliknout OK.

V okně Solution Explorer si otevřete zdrojový kód Interpret.vb. Abychom se v editoru mohli lépe orientovat, necháme si zobrazit čísla řádek. Již víte, že to jde přes nabídku Tools > Options. Zkusme to jinak. Mnohdy je mnohem jednodušší nechat si na hledání v nastavení vyhledávací políčko.

Vyhledávací políčko

Visual Studio obsahuje vyhledávací políčko, které vyhledává v nabídkách a nastaveních. Nachází se vpravo nahoře vedle ikon pro minimalizace, maximalizaci a zavření Visual Studia.

Zadejme do něj "line number".

V seznamu se ihned objeví položka Options, která obsahuje položky nastavení, které hledaný výraz obsahují. Klikněme na ní.

Ihned se nám otevře nastavení, kde můžeme zatrhnout zobrazování čísel řádků a potvrdit dialog OK.

Navigace v otevřeném souboru

Po krátké odbočce k číslům řádků se vraťme k našemu editoru. Editor v záhlaví obsahuje dvě políčka pro navigaci v souboru.

První z nich je základem pro druhé. První obsahuje třídy v souboru a jejich části jako jsou události. Druhé z nich pak ukazuje samotné členy. Když nějaký vyberete, Visual Studio Vám automaticky umístí kurzor k deklaraci dané funkce/metody/u­dálosti/... Přejděme v třídě Interpret k metodě KROK.

Průchod k deklaraci

Na řádku 51 ukládáme do proměnné souradniceK hodnotu (pro neznalce Visual Basicu, do proměnné se přiřazuje operátorem =, ve stylu <proměnná> = <hodnota>). Kde se však proměnná souradniceK vzala, kde je deklarována? Visual Studio umí najít deklaraci vybrané proměnné.

K deklaraci proměnné se dostaneme, tak že na ni klikneme pravým > Go To Definition.

Označí se nám název proměnné na řádku, kde je deklarována (na řádku 42).

Úplně stejným způsobem můžeme přejít k deklaraci datového typu. Stačí kliknout na datový typ (zeleno-modře označená Souradnice) a zmáčknout F12 (výchozí kl. zkratka pro Go To Definition).

Druhá možnost jak se dostat k definic typu je kliknout pravým na proměnnou a zovlit Go to Type Definition.

Otevření definice v podokně

Definici můžeme otevřít ještě v podokně. Dělá se to tak, že pravým klikneme na to, k čemu chceme otevřít definici a zvolíme Peak Definition.

V tomto malém okýnku moc změn dělat nemůžeme, ani se na to díky své velikosti nehodí. Je však velmi výhodné si tak prohlížet definici. Pokud bychom chtěli, můžeme si ikonou záložky s hvězdičkou okno zvětšit do klasického okna.

Křížkem samozřejmě definici můžeme zavřít.

Jistojistě jste si všimli, že Visual Studio zvýrazňuje "stejné" věci v kódu, když kliknete na název proměnné okamžitě se zvýrazní výskyty stejné proměnné.

Přejděme k deklaraci struktury Souřadnice.

Seznam výskytů

Visual Studio umí vrámci řešení najít všechny výskyty vybrané proměnné/třídy/struk­tury/rozhraní/­.... Stačí na ni kliknout pravým tlačítkem a zvolit Find All References.

Otevře se okno Find Symbol Result ve kterém budou vypsána všechny umístění v kód, kde se daný objekt používá. Když budete na položky klikat, automaticky se zobrazí zdrojový kód, kde se vyhledávaná položka používá.

Než budeme pokračovat, vložme si do projektu soubor.

Vkládání souboru do projektu

Do projektu si samozřejmě můžete přidat sobory, dělá se to přes kontextovou nabídku v okně Solution Explorer > Add. V této nabídce se ve spodu nachází často používané položky, které většinou dostačují. Zde v projektu máme třeba formulář, vlastní ovládací prvek, komponentu, modul a třídu, což jsou ve Visual Basicu skutečně jedny z nejpoužívanějších věcí.

Ty méně často využívané nalezneme pod volbou New item, která otevře dialogové okno Add New Item. V tomto okně jsou do skupin (jako tradičně vlevo) spousty dalších komponent, které se občas hodí a budeme muset zajít do tohoto okna. Uprostřed opět vyberete typ toho, co chcete do projektu vložit, vpravo popis a dole název nově vloženého souboru/komponenty a potvrzovací tlačítka.

Dialog zavřete. V nabídce Add se nachází ještě Folder, což založí (velmi nečekaně) novou složku, do které pak můžeme přidávat další soubory. Velmi důležitá je ještě funkce Add > Existing Item, která otevře dialogové okno pro výběr souboru, který bude následně přidán do projektu (vybrané složky). Stáhněte si přiložený soubor pod článkem, rozbalte jej a do projektu si přidejte soubor regex.cs. Ve výchozím nastavení v rozbalené složce soubor neuvidíte, protože dialog filtruje soubory podle koncovek a protože projekt Karel je psaný ve Visual Basicu dialog nezobrazuje zdrojové kódy v C#. V roletce vedle názvu souboru si vyberte All Files.

Všiměte si, že potvrzovací tlačítko Add má vedle sebe šipečku, kterou když rozkliknete, tak se otevře kontextová nabídka, ve které je ještě, krom klasického potvrzovacího tlačítka Add, tlačítko Add As Link.

Rozdíl mezi Add a Add As Link je v tom, kdy Visual Studio soubor skutečně zkopíruje a kdy jenom vytvoří odkaz a to ještě ne odkaz ani zástupce ani symbolický link, ale kdy předává kompilátorům odkaz na soubor. Dalším rozdílem mezi kopií a odkazem, je že když v kopii změníte jeden soubor, druhého se změna nedotkne, zatímco u odkazu se vždy mění zdrojový soubor (a odkaz samozřejmě taky). Výhodné je to, když je jeden zdrojový kód v rámci více projektů a všude by měl být stejný. Nevýhoda je to třeba u vývoje webů, protože servery, které nevyvíjí Microsoft (Apache a podobné) tomuto systému nerozumí, neumí s nimi pracovat a ten soubor nevidí.

Vložme si soubor regex.cs normální cestou a následně jej otevřete. V příštím díle s ním budeme pracovat, zatím si můžete zkoušet procházet soubory řešení a navigovat se mezi nimi.


 

Stáhnout

Staženo 214x (652 B)

 

  Aktivity (1)

Článek pro vás napsal Michal Žůrek (misaz)
Avatar
Autor se věnuje tvorbě aplikací pro počítače, mobilní telefony, mikroprocesory a tvorbě webových stránek a webových aplikací. Nejraději programuje ve Visual Basicu a TypeScript. Ovládá HTML, CSS, JavaScript, TypeScript, C# a Visual Basic.

Jak se ti líbí článek?
Celkem (9 hlasů) :
4444 4


 


Miniatura
Všechny články v sekci
Visual Studio

 

 

Komentáře
Zobrazit starší komentáře (13)

Avatar
Jan Vargovský
Redaktor
Avatar
Jan Vargovský:

Šlo o implementaci INPC ve WPF a lambda výrazů. Ani nevím jestli to resharper umí nebo né. Každopádně se na něj vymlouval, že to za něj generuje [asi].

 
Odpovědět  +1 28.4.2015 20:48
Avatar
Petr Čech (czubehead):

Promiň, trochu mi ujely nervy, a tys to schytal místo jednoho jedince... :[

Odpovědět 28.4.2015 21:21
Why so serious? -Joker
Avatar
Odpovídá na Petr Čech (czubehead)
Michal Žůrek (misaz):

Já však věřím, že článek zlepšit lze a hvězdičkové hodnocení to i dokazuje. Mě tedy zajímá, jak?

Když mi neřeknete jak ho zlepšit, nemůžu to prostě udělat.

Odpovědět 28.4.2015 21:24
Nesnáším {}, proto se jim vyhýbám.
Avatar
MrPabloz
Člen
Avatar
Odpovídá na Michal Žůrek (misaz)
MrPabloz:

Nechci říkat abys kopíroval, ale skus se inspirovat např. zde http://www.wug.cz/…tipy-a-triky. Myslím že z toho to člověk pochopí lépe a každý kdo programuje se ve visual studiu zorientuje, tak je blbost vysvětlovat mu každou záložku, button atd... lepší je vyzdvihnout to, co ne každý může znát a co není na první pohled zřejmé, což v tvém seriálu min 90% je

Odpovědět  +1 28.4.2015 21:35
Harmonie těla a duše, to je to, oč se snažím! :)
Avatar
Odpovídá na MrPabloz
Michal Žůrek (misaz):

ten začátek je pro úplnost, ne každého totiž napadne, že si okno může rozdělit s kódem může rozdělí třeba na pět částí. V dalších dílech až se vyhrabme z takových srandiček jako je InteliSense se vrhneme na další (zajímavější) nástroje. Seriál chci vést do podrobnosti, čili i detaily, které každý zná nebo každého napadnou.

V každém případě díky za feedback.

Editováno 28.4.2015 21:38
Odpovědět  +1 28.4.2015 21:38
Nesnáším {}, proto se jim vyhýbám.
Avatar
Odpovídá na Michal Žůrek (misaz)
Neaktivní uživatel:

Bolo by fajn ak by si spomenul také vychytávky, napríklad multiline editing, box selection atd, proste také čo nepozná úplne každý a je to veľmi šikovné. Potom napríklad vytváranie unit testov a samotné testovacie nástroje, ktoré má VS zabudované (ktoré sú pomerne fajn spravené), debuggovanie a iné :) ale to má byť asi v ďalších dieloch

Odpovědět 28.4.2015 22:03
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Michal Žůrek (misaz):

všechno cos vyjmenoval je v plánu. :) Krom toho ještě ladění webu, statická analýza kódu, databázové nástroje, atd...

Odpovědět  +2 28.4.2015 22:13
Nesnáším {}, proto se jim vyhýbám.
Avatar
Mikuláš Staněk:

Hele bude zde také tutoriál jak v visual studiu nastvit výstup 32 bitové aplikace ? protože já když vždy něco udělám , je to jen pro 64 bitové počítače.

 
Odpovědět 6.5.2015 14:19
Avatar
patrik.valkovic
Šéfredaktor
Avatar
Odpovídá na Mikuláš Staněk
patrik.valkovic:

Nastavuješ u projektu

Properties -> Build -> Platform Target

Pro C# a VB

Properties -> Debugging -> Configuration Manager (v pravo nahoře) -> Jak je Win32 dáš New a můžeš si nastavit New platform (ARM,x64)

Pro C++, ale v Configuration Managerovi můžeš nastavovat i C#a VB projekty.

Odpovědět 6.5.2015 14:27
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Odpovídá na Mikuláš Staněk
Michal Štěpánek:

Nahoře u tlačítka spustit máš na výběr konfiguraci. Když si tam zadáš "x86" bude ten program kompilován tak, aby fungoval i na 32bit i na 64bit...

Odpovědět  +1 6.5.2015 14:29
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 23. Zobrazit vše