Visual Studio Code a Github Copilot

Programování v GIS 2

Jan Caha

2025-03-17

VS Code

  • lehké IDE pro vývoj
  • vzdáleně odvozené od Visual Studio, což je výrazně “těžší” prostředí
  • inspirace “lehkými” prostředími jako Atom, Neovim, Sublime Text atd.
  • snaha o univerzálnost specifičnost (nástroje od JetBrains)
  • rozšiřitelnost pomocí pluginů ty posouvají k určité funkcionalitě

Github Copilot

  • GitHub Copilot je AI nástroj pro asistované programování
  • využívá modely strojového učení trénované na velkém množství veřejně dostupného kódu
  • nabízí návrhy kódu v reálném čase přímo při psaní
  • podporuje různé programovací jazyky a frameworky
  • pomáhá zrychlit vývoj tím, že navrhuje celé funkce, metody, komentáře a další části kódu
  • umožňuje vývojářům soustředit se na logiku a strukturu kódu, zatímco Copilot se stará o syntaxi a detaily
  • integruje se do vývojových prostředí jako Visual Studio Code, Neovim a JetBrains IDEs
  • nabízí personalizované návrhy na základě kontextu a stylu kódu, který vývojář píše

Jazykové modely

  • nestrojí striktně na jednom modelu
  • podporuje jak modely od OpenAI, tak Anthropic a nově i od Google
  • modely jsou trénovány na velkém množství kódu z veřejných repozitářů na GitHubu
  • kontexty z aktuálního kódu a projektu
  • i hlasový chat

Použití

  • dokončování kódu
  • generování dokumentace a komentářů
  • chat s kontextem (soubory)
  • Copilot Edits - možnost editovat vybraný kód pomocí dotazů, napříč vícero vybranými soubory

Nastavení

  • instrukce buď textové v souboru nastavení (úroveň projektu nebo profilu) settings.json, nebo tamtéž specifikujeme soubor, který se má použít
"github.copilot.chat.codeGeneration.useInstructionFiles": true,
"github.copilot.chat.codeGeneration.instructions": [
        {
            "text": "Always add a comment: 'Generated by Copilot'."
        },
        {
            // nebo umístit do .github/copilot-instructions.md tam jsou načteny automaticky
            "file": ".copilot-instructions.md",
        }
    ]
"github.copilot.chat.testGeneration.instructions": [],
"github.copilot.chat.reviewSelection.instructions": [],

Tipy

  • signatura funkce výrazně napomáhá tvorbě kódu (kontext)
  • komentáře výrazně napomáhají (kontext)
  • další otevřené soubory (v IDE) také poskytují kontext - např. kód pro pársování JSON souboru, otevřu ukázkový soubor

Debugování ve VS Code

Proč debugovat?

  • print() je nejjednodušší, ale pro složitější problémy nedostačující
  • debugger umožňuje zastavit program v libovolném místě a prozkoumat stav proměnných
  • umožňuje krokovat kód řádek po řádku a sledovat tok programu
  • šetří čas při hledání chyb, oproti opakovanému spouštění celého skriptu

Breakpointy

  • kliknutím vedle čísla řádku nastavíme breakpoint (červená tečka)
  • program se zastaví na tomto řádku a čeká na naši akci
  • lze nastavit i podmíněné breakpointy - zastaví se pouze pokud je splněna podmínka (pravý klik na breakpoint)

Ovládání debuggeru

  • Continue (F5) - pokračovat do dalšího breakpointu
  • Step Over (F10) - provést aktuální řádek a přejít na další
  • Step Into (F11) - vstoupit do volané funkce
  • Step Out (Shift+F11) - dokončit aktuální funkci a vrátit se
  • Restart (Ctrl+Shift+F5) - restartovat debugování
  • Stop (Shift+F5) - ukončit debugování

Panely debuggeru

  • Variables - přehled všech proměnných a jejich hodnot v aktuálním kontextu
  • Watch - sledování konkrétních výrazů (lze přidat vlastní)
  • Call Stack - zásobník volání funkcí - kde se aktuálně nacházíme
  • Breakpoints - seznam všech nastavených breakpointů
  • hodnoty proměnných lze zobrazit i přímo v editoru najetím myší

Debugování v Jupyter Notebooku

  • ve VS Code lze debugovat i jednotlivé buňky notebooku
  • tlačítko Debug Cell nad buňkou
  • fungují breakpointy i krokování stejně jako u skriptů
  • užitečné pro interaktivní analýzu dat

Dotazy?