IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Lekce 6 - Visual Studio - Pomocníci při psaní kódu

V minulé lekci, Visual Studio - Navigace v souborech, jsme se věnovali navigaci v souborech.

Visual Studio obsahuje spoustu nástrojů, které usnadňují psaní zdrojového kódu. Dnes se na některé z nich podíváme. Začneme se známým IntelliSense.

IntelliSense

IntelliSense je našeptávač, který umí procházet přímo knihovny .NET Frameworku či jiných Frameworků a výchozí knihovny. Umí ale našeptávat i ze všech zdrojových kódů v projektu. Pojďme si to zkusit. Budeme pokračovat s projektem Karel z minula. Na řádek 24 začněte psát cons... Visual studio zatím neudělá nic, aby nás od psaní nerušilo. Zmáčkněme Ctrl + Mezerník, čímž si vynutíme zapnutí IntelliSense:

Visual Studio - Pokročilá práce

Rozbalí se seznam možností automatického doplnění kódu. Jako první se nachází const, ale to ještě není to co hledáme, proto dopište písmeno o. Další shoda je Console, což je to, to co hledáme, potvrďte Enter nebo Tab:

Visual Studio - Pokročilá práce

Visual studio slovo dokončí. Když zadáme tečku, Visual Studio již začne zkoumat, co vše se v konzoli nachází a co můžeme využít:

Visual Studio - Pokročilá práce

Začněte psát w. Již teď vám Visual Studio nabízí shodu s W a zároveň pouze to, co můžeme použít v objektu Console:

Visual Studio - Pokročilá práce

Všimněte si, že IntelliSense ukazuje i popisek, co daná metoda/funkce/třída dělá a jaké jsou její parametry. Šipkami se v IntelliSense můžete v nabídce orientovat. Posuňte se dolů o jednu na WriteLine a potvrďte.

Udělejte kulatou závorku, editor ji dokončí, ale to nás nyní nezajímá. IntelliSense zjistil, že chceme psát parametry této funkci a tak nám "našeptá", co se do parametrů této funkce hodí. Šipka vlevo a počet signalizuje počet možností, jak můžeme parametry zapsat. Proklikejte se na 11. možnost zápisu, můžete použít šipky na klávesnici:

Visual Studio - Pokročilá práce

Popisek říká, že v tomto parametru se bude zadávat textový řetězec, který metoda doplní zakončením řádku a odešle na standardní výstup. Parametr se jmenuje value a jeho popisek říká, že to je právě ta hodnota, která se vypíše.

Napišme uvozovku. Editor okamžitě doplní koncovou. A do uvozovek napište nějaký text, třeba "Visual Studio je super". Dostaňte se na konec řádku (jako klasicky ve Windows, klávesa End) a doplňte středník ;.

Pokud seznam parametrů znáte, nemusíte nic proklikávat, IntelliSense to pozná a sám vybere nejvhodnější seznam parametrů, který vašemu zápisu odpovídá.

Kde se berou popisky?

Texty nápověd v IntelliSense se berou z dokumentačních komentářů přímo ve zdrojovém kódu a budou se zobrazovat i u našich metod z projektu, pokud nad ně napíšeme správný dokumentační komentář. Ten si lze nechat vygenerovat pomocí napsání trojlomítka /// a ve výsledku vypadá např. takto:

///
/// <summary>Třída <c>Uzivatel</c> je předek pro všechny uživatele systému.</summary>
///
public class Uzivatel
{
    /// <summary>Přihlásí uživatele</summary>
    void Prihlas() {...}
}

Visual Studio případně vygeneruje i parametry pro metodu, pokud nějaké má. Dokumentace se zapisuje v XML syntaxi a můžeme v ní používat různé značky. Např. v ukázce výše se používá <c> pro označení části textu, která bude zvýrazněna jako inline kód, jako třeba zde v článcích. Dokumentace se poté lépe čte.

Ikony v IntelliSense

IntelliSense obsahuje spoustu ikon, které ukazují o jaký typ položky se jedná. U každého jazyka, platformy a technologie se ikony liší, některé technologie různé ikony nepoužívají. Celý seznam ikon a jejich význam se nachází v dokumentaci. V podstatě vám však stačí vědět, jak vypadá:

  • Proměnná - Modrá kostička
  • Třída - Žluto-oranžový diagram
  • Vlastnost - Černý francouzský klíč a
  • Metoda - Růžová kostička

Tyto ikonky uvidíte hodně často, takže si na ně rychle zvyknete. Určitě se je neučte všechny, je to zbytečné. Programuji ve Visual Studiu několik let a některé jsem v dokumentaci viděl poprvé.

Manipulace s řádky

V úvodu cvičení jsem vám řekl, ať za řádek 24 napíšeme nějaký kód. Řekněme, že jsem se spletl. Náš kód:

Console.WriteLine("Visual Studio je super.");

potřebujeme na řádku 15, hned za otevírající složenou závorkou. Nejspíš byste teď řádek vyjmuli a vložili, tam kde má být. My to ale uděláme chytřeji.

Přesun řádku nahoru nebo dolů

Pomocí klávesové zkratky Alt a šipka nahoru nebo dolů řádek, na kterém se nachází kurzor, prohodíte buď s horním nebo dolním řádkem. Jinými slovy řádek přesunete ve směru stisknuté šipky. Přesuňme tedy řádek na začátek bloku za {.

Kopírování řádku

Řekněme, že řádek (pokud jste si dokument nerozbombardovali, tak by měl mít číslo 46) s kódem:

Console.ReadKey();

chceme mít dvakrát. Řešením je řádek zkopírovat. Ve Visual Studiu, když nemáte nic vybraného a stisknete Ctrl + C, zkopíruje se celý řádek. Pomocí Ctrl + V ho samozřejmě vkládáme. Vložme ho 2× vždy za příkaz Console.WriteLine bez parametru (řádky 25 a 35).

Vyjmutí řádku

S pomocí klávesové zkratky Ctrl + X můžeme řádek vyjímat stejným způsobem jako kopírovat. Tato zkratka obecně vymaže vybraný text a vloží ho do schránky, asi ji již znáte. Osobně ji častěji používám k odstraňování řádku, což se dá udělat i klávesovou zkratkou Ctrl + L.

Vymažme tedy původní příkazy Console.WriteLine (aktuálně na řádcích 25 a 36).

Nastavení klávesových zkratek

V předchozích 3 podkapitolách jsem zmínil několik klávesových zkratek, které vám teoreticky nemusí vyhovovat. Proto si ukažme, jak si lze klávesové zkratky přenastavit. V nabídce Tools si otevřete nastavení (Tools -> Options) a přesuňte se do skupiny Environment -> Keyboard:

Visual Studio - Pokročilá práce

V pravé části okna máme možnosti nastavení klávesových zkratek. Hned nahoře je schéma klávesových zkratek. Můžeme si zde vybrat schéma ze starších verzí Visual Studií nebo verzí jazyků. V prostřední části je pak seznam všech funkcí Visual Studia a ve spodní části lze jednotlivým funkcím přiřadit klávesovou zkratku. Protože funkcí je hodně, je nad seznamem vyhledávací políčko. Když už jsme u těch manipulací s řádky, najdeme si slovo line:

Visual Studio - Pokročilá práce

V seznamu jsou funkce do sebe zanořené a oddělené tečkami. Zápis:

EditorContextMenus.CodeWindow.ExecuteLineInInteractive

tedy označuje nástroj ExecuteLineInInteractive, který se týká nástroje CodeWindow a ten zas nástroje EditorContextMenus.

Podstatné pro nás budou položky v nástroji Edit, což je editor zdrojového kódu. Ve verzi 2013 Professional se jedná o nástroje (vypište si nástroje, které vás zaujmou):

  • BreakLine - Zalomí řádek (klasický enter).
  • LineUp, LineDown, LineStart, LineEnd - Posune kurzor na stejnou pozici o řádek níž/výš/na začátek řádku/na konec řádku.
  • LineUpExtend, LineDownExtend, LineStartExtend, LineEndExtend - Vybere oblast od kurzoru ke stejnému místu na předchozím řádku/následujícím řádku/začátkem řádku/koncem řádku.

Ukažme si zde příklad. Pokud přejdeme např. na tuto pozici na řádku:

Visual Studio - Pokročilá práce

Po zavolání LineEndExtend získáme následující výběr:

Visual Studio - Pokročilá práce
  • LineStartAfterIndentation - Chová se podobně jako LineStart, ale někdy je začátek řádku mimo začátek řádku za odsazením. Tato funkce vynechá mezery nebo tabulátory dosazující řádek.
  • LineStartAfterIndentationExtend - Chová se podobně jako LineStartExtend, ale stejně jako LineStartAfterIndentation vynechává odsazení řádku.
  • LineLastChar - Posune kurzor na poslední znak příkazu. Jinými slovy vynechá středník, složené závorky a podobné znaky.
  • LineLastCharExtend - Vybere oblast od kurzoru po poslední znak příkazu podobně jako LineLastChar.

Opět si udělejme ukázku:

Visual Studio - Pokročilá práce

Po zavolání LineLastCharExtend je výběr následující:

Visual Studio - Pokročilá práce
  • ScrollLineUp, ScrollLineDown - Posune posuvník (scroll bar) o jeden řádek níže/výše.
  • ScrollLineBottom, ScrollLineCenter, ScrollLineTop - Posune posuvník tak, aby řádek, na kterém je kurzor, byl na spodku/středu/vrchu obrazovky.

Opět příklad:

Visual Studio - Pokročilá práce

A výsledek po zavolání ScrollLineTop:

Visual Studio - Pokročilá práce
  • TabifySelectedLines, UntabifySelectedLines - Změní mezery za tabulátory a naopak.
  • LineCut - Odebere řádek s umístěným kurzorem a vloží jej do schránky.
  • LineDelete - Vymaže řádek s umístěným kurzorem.
  • DeleteBlankLines - Ve vybrané oblasti odstraní prázdné řádky.
  • LineOpenAbove, LineOpenBelow - Vloží nový řádek před/za řádek s umístěným kurzorem a na nově vzniklý řádek umístí kurzor.
  • IncreaseLineIndent, DecreaseLineIndent - Zvýší/sníží odsazení řádku o jeden tabulátor.
  • LineTranspose - Prakticky jen prohodí vybraný řádek s řádkem o jeden níže.
  • LineStartAfterIndentationPrev, LineStartAfterIndentationNext - Přesune kurzor za odsazení předchozího/nás­ledujícího řádku.

Zkusme si opět nějakou z těchto funkcí:

Visual Studio - Pokročilá práce

A po zavolání LineStartAfterIndentationPrev:

Visual Studio - Pokročilá práce

Blokový výběr

Pro další funkce je dobré vědět, co je to blokový výběr (někdy označováno jako výběr sloupcový) a jak se vytvoří. Jedná se o to, že někdy potřebujeme vybrat oblast uvnitř řádků. Vezmeme si příklad tohoto textu:

+----+---------------+------------+
| ID | IP            | DATE       |
+----+---------------+------------+
| 1  | 192.168.0.15  | 2015-02-05 |
| 2  | 192.168.0.200 | 2010-03-15 |
| 3  | 192.168.0.10  | 2009-09-09 |
+----+---------------+------------+

Takový formát je výstupem různých exportů, atd. Řekněme, že z něj potřebujeme jen sloupec IP. Za normálních okolností bychom museli okolní sloupce pracně odmazat. Se znalostí vyhledávacích a nahrazovacích nástrojů by to sice nebyl až zas takový problém, ale bylo by to zbytečně pracné. Proto existuje blokový výběr, který funguje při přidržení klávesy Alt a díky kterému si můžeme vybrat libovolnou, obdélníkovou oblast v dokumentu:

Visual Studio - Pokročilá práce

Krom možnosti Alt + myš Visual Studio ještě obsahuje další funkce pro tento výběr:

  • LineUpExtendColumn, LineDownExtendColumn - Posune blokový výběr o řádek výše/níže.
  • LineStartExtendColumn, LineEndExtendColumn - Posune blokový výběr k začátku/konci řádku.
  • LineFirstColumn - Posune kurzor na první sloupce řádku (začátek řádku).
  • LineFirstColumnExtend - Vybere oblast od kurzoru k prvnímu sloupci řádku.
  • MoveSelectedLinesUp, MoveSelectedLinesDown - Posune vybrané řádky nahoru/dolů.

Funkce začínající na Emacs a Brief přebírají funkce editorů Emacs a Brief, kterými se nebudeme zabývat

Nastavování klávesových zkratek

Když máte vybrané funkce, které vám přijdou zajímavé, a chcete jich využívat, je dobré si k nim nastavit klávesovou zkratku. Když si je označíte ve spodní části funkcí, zvýrazní se políčko, kde jsou vypsány všechny klávesové zkratky. K jedné funkci totiž můžete mít přiřazených více klávesových zkratek. Pokud chcete nějakou odebrat, vyberete ji a stiskněte "Remove":

Visual Studio - Pokročilá práce

Pokud chcete přidat klávesovou zkratku, kliknete do políčka "Press shortcut keys" a stiskněte klávesu nebo klávesovou kombinaci. Vlevo od políčka pak ještě musíte vybrat kontext, kde bude klávesa funkční. Nejčastěji se jedná buď o okna (např. Solution Explorer) a editor kódu (Text Editor):

Visual Studio - Pokročilá práce

Po přiřazení se zvýrazní ještě třetí políčko, kde je vypsáno, kde všude je klávesa použitá, aby nedošlo ke kolizím (jedna klávesová zkratka použita u více funkcí).

Nastavte si klávesové zkratky podle libosti a vyzkoušejte si ty již nastavené. Do komentářů pod článkem můžete napsat, o kterých funkcích jste nevěděli, které vám přijdou užitečné, totálně zbytečné a jaké (chytré, aby se lépe zapamatovaly) klávesové zkratky jste si k nim nastavili.

V příští lekci, Visual Studio - Snippety, budou hlavní roli hrát snippety.


 

Předchozí článek
Visual Studio - Navigace v souborech
Všechny články v sekci
Visual Studio - Pokročilá práce
Přeskočit článek
(nedoporučujeme)
Visual Studio - Snippety
Článek pro vás napsal Michal Žůrek - misaz
Avatar
Uživatelské hodnocení:
107 hlasů
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.
Aktivity