Visual Studio Code a GitHub Copilot

Programování v GIS 2

Jan Caha

2026-05-04

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

  • AI nástroj pro asistované programování integrovaný přímo do editoru
  • 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 i komentáře
  • integruje se do Visual Studio Code, Neovim a JetBrains IDEs
  • pro studenty dostupný zdarma přes GitHub Education

Jazykové modely

  • model lze vybrat přímo v rozhraní chatu dle potřeby
  • podporuje modely od OpenAI, Anthropic a Google
  • modely jsou trénovány na velkém množství kódu z veřejných repozitářů na GitHubu
  • kontext tvoří aktuální soubor, otevřené soubory, ale i celý projekt (#codebase)
  • modely se liší rychlostí, délkou kontextového okna a zaměřením

Použití

  • dokončování kódu – návrhy při psaní, přijmutí klávesou Tab
  • generování dokumentace a komentářů – stačí napsat záhlaví funkce
  • chat – tři módy:
    • Ask – dotazy na kód s kontextem (#file, #selection, #codebase)
    • Edit – inline úpravy kódu (Ctrl+I) nebo úpravy více souborů najednou
    • Agent – Copilot sám navrhuje a provádí změny v celém projektu, volá nástroje
  • příkazy v chatu: /explain, /fix, /tests, /doc

Nastavení

  • instrukce lze zadat přímo v settings.json (úroveň projektu nebo profilu)
  • nebo v souboru .github/copilot-instructions.md – načítán automaticky
  • instrukce ovlivňují generování kódu, testů, review atd.

Instrukční soubory

  • .github/copilot-instructions.md – globální instrukce pro celý projekt (vždy načteny)
  • .github/instructions/*.instructions.md – instrukce pro specifický kontext
    • pomocí applyTo: v YAML frontmatter lze omezit na konkrétní typy souborů
    • příklad: python.instructions.md s applyTo: "**/*.py" platí jen pro Python soubory
  • .github/prompts/*.prompt.md – znovupoužitelné prompty pro opakované úlohy
    • volají se z chatu přes / nebo pomocí tlačítka Attach Context
---
applyTo: "**/*.py"
---
# Python konvence
- používej type hints u všech funkcí
- komentáře v kódu piš česky

GitHub Copilot a debugování

  • Copilot dokáže s debugováním aktivně pomoci přímo v chatu
  • /explain – vysvětlí označený kód nebo chybovou zprávu (traceback)
  • /fix – navrhne opravu chybného kódu
  • označení chybového výstupu v terminálu a dotaz v chatu je rychlá alternativa k ručnímu hledání

Omezení a rizika

  • Copilot může generovat kód, který je syntakticky správný, ale logicky chybný
  • může navrhovat zastaralé nebo deprecated API (trénovací data mají časový limit)
  • kód nemusí odpovídat specifickým požadavkům projektu nebo konvencím
  • u bezpečnostně citlivého kódu je kontrola obzvláště důležitá
  • není náhradou za pochopení problému a algoritmu – spíše nástroj pro zrychlení psaní a vývoje

Tipy

  • signatura funkce s typovými anotacemi výrazně napomáhá tvorbě kódu
  • komentáře před blokem kódu popisující záměr zlepšují návrhy
  • otevřené soubory v IDE tvoří součást kontextu – otevři ukázkový soubor (JSON, CSV, …)
  • #codebase v chatu umožní Copilotu prohledat celý projekt
  • při generování testů nebo dokumentace stačí označit funkci a zadat /tests nebo /doc
  • v instrukcích lze specifikovat konvence projektu (např. jazyk komentářů, styl kódu)

Dotazy?