====== Programovací prostředí ====== Programovat lze v podstatě úplně v čemkoliv, od prostých textových editorů až po sofistikovaná vývojová prostředí. Vývojová prostředí, //Integrated Development Editor// (IDE) jsou komplexní programy, jejichž nastavení je nezřídka velmi složité. V začátcích je proto klíčové pochopení základních principů, osvojení si programovacích dovedností a následné vyladění prostředí. Velmi užitečným pomocníkem je obarvování kódu a jeho formátování, které zvládné téměř libovolný editor. Naopak našeptávání syntaxe je pro začátečníka zavádějící, protože úplně nepříspívá k osvojí úplných základů. V případě delších kódu je však výhodné využít doplňování jmen proměnných a definovaných funkcí tak, aby nedošlo ke zbytečné frustraci nebo volbě zkratkovitých a tím méně srozumitelnách jmen. Další užitečné funkcí je ladění (debugging) kódu. Začít se dá v editoru ''gedit'' následně přejít na prokročilejší IDE, která se liší podporovanými jazyky, licencí i nabízenými nástroji. Příklad možných IDE je následující. ^ IDE ^ Podporované jazyky ^ Licence ^ | [[https://code.visualstudio.com/|Visual Studio Code]] | témeř cokoliv | zdarma | | [[https://netbeans.org/|NetBeans]] | Java, C/C++ | zdarma | | [[https://www.jetbrains.com/clion/promo/?gclid=CjwKCAjw-7LrBRB6EiwAhh1yXxQC6q3bw1YIhsNMFF0jRyesh8SSSysQ3miVAvX5Fq-UVQcvReJraxoC7iIQAvD_BwE&gclsrc=aw.ds|CLion]] | C/C++ | placené/ČVUT licence zdarma | Ve cvičeních předmětu PRG budeme primárně pracovat s editorem Visual Studio Code. Nicméně konkrétní volba je vždy na vás. ====== Editor Visual Studio Code a jazyk C ====== ===== Instalace v Ubuntu a Win 10 ===== ==== Instalace prostředí pro Ubuntu ==== Doporučujeme využít instalace pomocí .deb balíčku, jelikož tento způsob je snazší, hlavně pro nové uživatele systému Ubuntu. Při instalaci VS Code na operační systém Ubuntu si můžeme vybrat ze dvou způsobů, a to z instalace přes terminál a instalace pomocí instalačního balíčku. === Instalace pomocí .deb balíčku === Ze stránek [[https://code.visualstudio.com/Download|VS Code]] si stáhneme příslušný .deb balíček. Tento soubor funguje obdobně jako instalační soubory na Windows -- otevřeme ho pomocí programu //Software Installer// a kliknutím na tlačítko //Install// nainstalujeme VS Code. {{ :courses:b3b36prg:tutorials:vscode_install.png?400 |}} === Instalace z příkazové řádky === VS Code instalujeme podle stránky https://linuxize.com/post/how-to-install-visual-studio-code-on-ubuntu-18-04/ sudo apt update sudo apt install software-properties-common apt-transport-https wget wget –q https://packages.microsoft.com/keys/microsoft.asc -O- | sudo apt-key add – sudo add-apt-repository „deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main“ sudo apt install code===== Otevírání zdrojových souborů ===== Ve VS Code otevřeme adresář s podadresářem .vscode, nikoliv jednotlivé soubory *.c ! Rozšíření „Microsoft C/C++ extension“ je již součástí instalace. ==== Instalace prostředí pro Windows ==== 1. VS Code instalujeme ze stránky https://code.visualstudio.com/download 2. Instalace MingW ze stránek http://www.mingw.org 3. Instalace „Microsoft C/C++ extension“ podle stránky https://code.visualstudio.com/docs/languages/cpp Další informace: https://code.visualstudio.com/docs/cpp/config-mingw ===== Instalace rozšíření ===== Abychom mohli plně využít VS Code pro vývoj v jazyce C/C++, je potřeba mít nainstalované rozšíření **Microsoft C/C++ Extension**. V tuto chvíli by rozšíření mělo být jíž nainstalované, což můžeme ověřit následujícím způsobem. - Otevřeme VS Code - V levém postraním menu otevřeme Extensions (případně můžeme použít klávesovou zkratku ''Ctrl+Shift+X'') - Vyhledáme balíček C/C++ od Microsoftu Pokud je balíček již nainstalovaný, uvidíme následující. {{ :courses:b3b36prg:tutorials:extension_c_cpp_installed.png?400 |}} Pokud balíček není nainstalován, uvidíme následující. {{ :courses:b3b36prg:tutorials:extenstion_c_cpp_not_installed.png?400 |}} V takovém případě můžeme rozšíření nainstalovat kliknutím na zelené tlačítko //Install//. ===== Spouštění VS Code ==== Ve VS Code otevíráme projektový adresář, nikoliv jednotlivé soubory *.c ! V projektovém adresáři bychom měli mít složku .vscode, ve které se nacházejí konfigurační soubory. Pokud otevřeme složku, ve které podsložka .vscode není, VS Code ji automaticky vytvoří. VS Code spustíme zároveň s otevřením projektu z terminálu příkazem ''code '' VS Code editor můžeme spustit klasicky pomocí ikonek, ale mnohem užitečnější je spouštění z terminálu. V terminálu slouží ke spuštění příkaz ''code''. Velkou výhodou je, že VS Code umí pracovat s konceptem //pracovního adresáře// a můžeme tedy rovnou otevřít požadovanou složku. - Nejprve se v terminálu přesuneme do požadované složky pomocí příkazu ''cd'' - Spustíme VS Code v aktuální složce pomocí příkazu ''code .'' Příklad tohoto spuštění je cd prp/hw01 code . Samozřejmě můžeme spouštět i projekty v jiných složkách než je aktuální pracovní adresář. V našem případě bychom použili příkaz ''code prp1/hw01''. Informace o projektech (adresáři) jsou uloženy ve skryté složce ''.vscode'' a v souborech ''.json'', které definuji jak soubor kompilovat a spouštět. Při progamování ve VS Code často potřebujeme přeskakovat mezi editorem a terminálem. Implicitní klávesková zkratka pro změnu aktivního okna ''ctrl+`'' ovšem okno terminálu zavírá. Pokud chceme vidět obsah terminálu i při editaci kódu, můžeme změnit chování této klávesové zkratky takto: Z nabídek ''File'' / ''Preferences'' / ''Settings'' vybereme ''Keyboard Shortcuts''. Vpravo nahoře klepneme na ikonu dokumentu se šipkou ''Open Keyboard Shortcuts (JSON)''. Otevře se soubor ''keybindings.json'', kam do hranatých závorek přidáme následující řádky: { "key": "ctrl+`", "command": "workbench.action.terminal.focus", "when": "editorTextFocus" },{ "key": "ctrl+`", "command": "workbench.action.focusActiveEditorGroup", "when": "terminalFocus" } a soubor uložíme. ===== Nastavení formátování ==== VS Code je ve výchozím nastavení konfigurováno pro formátování prostřednictvím ''clang-format'' s možností využití uživatelsky definované konfigurace. Nastavení file znamená, že se VS Code dívá do aktuálního pracovního adresáře a pokud tam existuje soubor ''.clang-format'' použijej. Jako fall-back je pak nastaveno formátování Visual Studio. {{:courses:b3b36prg:tutorials:vscode-clangformat.png?800|}} Prostřednictvím terminálu ve VS zjistíme jak pracovní adresář, tak můžeme vytvořit ''.clang-format'', například doporučované nastavení {BasedOnStyle: llvm, IndentWidth: 4, BreakBeforeBraces: Linux} ===== Pokročilé možnosti VS Code ===== Níže zmíněné možnosti jsou pouze informativní, jejich používání v předmětu PRG **silně nedoporučujeme**. Níže zmíněné postupy nám mohou ulehčit mnoho práce a v budoucnu je jistě budeme všichni používat. Jelikož ale naším cílem je se naučit programovat a pochopit, co se při tom děje, je vhodné se naučit kompilovat manuálně, nikoliv pomocí //magického tlačítka//. Níže zmiņované možnosti tedy uvádíme jako **informativní**, abychom věděli, že existují, ale jejich používání v předmětu PRG je **silně nedoporučované**. ==== Integrace s gcc nebo clang (Ubuntu/Windows) ==== V adresáři, kde jsou umístěné zdrojové kódy C vytvoříme podadresář ''.vscode'' a s následujícím obsahem: ''c_cpp_properties.json, launch.json, settings.json, tasks.json''. Tyto soubory s vzorovým nastavením pro Windows a Ubuntu můžete stáhnout {{ :courses:b3b36prg:tutorials:vscodeconfigforc.zip |zde}}. Nezapomeňme správně nastavit přepínače a zdrojové soubory pro kompilaci. Pokud se rozhodneme použít tyto předpřipravené soubory, je potřeba správně nastavit argumenty kompilace, tj. přepínače a zdrojové soubory. Otevřeme soubor ''tasks.json'' a najdeme náš task podle operačního systému -- ''(gcc) Compile Win'' nebo ''(gcc) Compile Linux''. V sekci ''args'' správně nastavíme přepínače a zdrojové soubory, vždy na jeden řádek jeden. ==== Kompilace kódu ==== Pokud máme správně nastavený projekt, tj. nastavili jsme soubory ve složce .vscode, pro kompilaci použijeme klávesovou zkratku ''Ctrl+Shift+B'' a pak vybereme z nabídky ''(gcc) Compile Win'' či ''(gcc) Compile Linux'' podle našeho operačního systému. Pokud vše proběhne v pořádku, vytvoří se nám ve složce spustitelný soubor se shodným názvem jako zdrojový kód c, ale bez extenze, např. ''prvni_test'', který můžeme spustit z terminálu pomocí ''./prvni_test''. ==== Běh a ladění kódu ==== Použijeme klávesovou zkratku ''Ctrl+F5'' (Run) nebo ''F5'' (Debug), v případě potřeby v záhlaví panelu Debug (symbol brouka) nalevo vybereme konfiguraci ''(gdb) Launch Win'' nebo ''(gdb) Launch Linux''.