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

Dotazy?