Rozšíření pro IPPcode a IFJcode
Rozšíření pro Visual Studio Code doplňující syntaktické zvýrazňování, interpretaci a ladění pro jazyk IFJcode verze 2020-24 a pro jazyk IPPcode verze 2020/21/22.
Závislosti
- Visual Studio Code verze 1.49.0 a nebo vyšší
- Python 3 (ověřeno od verze 3.6.9, ale pravděpodobně stačí i nižší)
- očekává se, že je interpret spustitelný pomocí příkazu
python
, jinak je nutné nastavit jiný alias nebo přímo cestu v nastavení rozšíření nebo konfiguraci ladění
- pro spouštění ladění nebo interpretace se používá výchozí integrovaný terminál VS Code
Varování
Vytvořené rozšíření je pouze podpůrný nástroj, který má sloužit k usnadnění práce s jazyky IFJcode a IPPcode. Nejedná se o referenční řešení, proto nelze žádné chování interpretu/ladění při použití tohoto rozšíření brát jako definici správnosti chování interpretu nebo parseru pro IPPcode. Jediný oficiální zdroj informací o požadavcích a správném fungování těchto programů je zadání projektu pro předmět IPP/IFJ pro odpovídající rok.
Především také není povoleno přebírat části kódu z implementace interpretu a dalších součástí rozšíření. V případě odhalení na toto bude nahlíženo jako na plagiátorství.
Detaily
Podrobnější informace o funkcích tohoto rozšíření.
Detekce souborů
Rozšíření poskytuje syntaktické definice pro jazyky IPPcode a IFJcode, které VS Code používá pro syntaktické zvýrazňování. Detekce souborů se provádí pomocí přípon souborů, které jsou podporovány ve více formátech (.ifjc,
.ifjcode
případně s číslem verze na konci .ifjc24
, identicky pro IPP code .ippc
...). Soubory také mohou být detekovány podle úvodního řádku ve formátu například .IPPcode22
, tento text ale musí být hned na prvním řádku. Asociaci pro soubor s jinou příponou je možné přidat kliknutím na detekovaný jazyk vpravo dole (nejspíš Plain Text) a výběrem jazyka z menu.
Debugger
Rozšíření přidává typ ladění ippc-ifjc
, pro které lze standardně vytvořit konfiguraci (v souboru launch.json
). Pokud je otevřený soubor identifikován jako jeden z podporovaných jazyků, tak jsou do lišty v pravém horním rohu přidány tlačítka na spuštění a spuštění ladění. Při jejich použití se pro spuštění používá předdefinované nastavení ovlivněné pouze nastavením rozšíření.
Nastavení hodnot proměnných
V sekci VARIABLES
je možné změnit hodnoty proměnných nebo hodnoty na zásobníku. Nové hodnoty se zadávají ve stejném formátu jako ve zdrojovém kódu, tj. typ@hodnota
.
Vyhodnocování instrukcí
Při ladění je možné použít konzoli DEBUG CONSOLE
pro vyhodnocení dalších instrukcí. Program v tu chvíli musí být pozastaven (například na breakpointu nebo pomocí tlačítka pause). Vyhodnocování podporuje stejné instrukce jako běžný program s výjimkou instrukcí READ
, LABEL
a EXIT
. Výstup těchto instrukcí je přesměrován do konzole, jinak jejich chování přesně odpovídá instrukcím zapsaným ve zdrojovém kódu laděného programu a jejich provedení ovlivňuje laděný program. Případné chyby, které nastanou pří vyhodnocování instrukcí v konzoli nezpůsobí ukončení programu.
Přidané příkazy
Rozšíření přidává tři typy příkazů spustitelných z Command Palette
(výchozí klávesová zkratka pro otevření je Ctrl+Shift+P
). Příkazy Spustit
a Debug
existují pro všechny jazyky, Spustit (XML)
pouze pro IPPcode. Výše popsaná tlačítka spouští odpovídající příkaz Spustit
nebo Debug
podle jazyku otevřeného souboru. Samotné příkazy jsou dostupné bez ohledu na jazyk otevřeného souboru.
IFJcodeXX: Spustit
: spustí právě otevřený soubor
IPPcodeXX: Spustit (XML)
: spustí právě otevřený soubor s XML reprezentací IPPcode
IFJcodeXX: Debug
: spustí ladění právě otevřeného souboru
Konfigurace ladění
Každá konfigurace musí obsahovat tři základní položky: type
, request
a name
. Navíc je požadována položka program
.
request
: způsob připojení k laděnému programu, podporuje pouze hodnotu launch
, tedy spuštění
name
: název, libovolný
type
: typ ladění, pro toto rozšíření ippc-ifjc
program
: soubor obsahující program ke spuštění
stopOnEntry
: hned po spuštění se program zastaví na první instrukci
args
: pole argumentů pro laděný program, je podporován pouze argument ["--input", "<název souboru>"]
port
: nastaví výchozí port, na kterém má být spuštěn server, který řídí ladění programu
pythonPath
: cesta k interpretu Python 3
version
: verze IPPcode/IFJcode, která se má spouštět/debuggovat (výchozí je verze IFJcode24
)
Nastavení
Nastavení rozšíření je v nastavení VS Code dostupné pod klíčem IPPcode/IFJcode
. Tato nastavení mění výchozí chování, mají ale nižší prioritu než konfigurace ladění. Jejich význam odpovídá stejně pojmenovaným položkám v konfiguraci ladění.
Port
Python Path
Version
IFJcode Interpreter Path
: cesta k referenčnímu interpretu jazyka IFJcode (jinak se k interpretaci používá Python implementace)