====== WvdS VSCode Build ====== Build ekstenzija integrira Free Pascal Compiler (FPC) i pas2js u VS Code. Omogućuje kompilaciju, čišćenje i formatiranje Uses klauzula direktno iz editora. ===== Funkcija i svrha ===== Build ekstenzija nudi: * **FPC integracija** - Nativna Pascal kompilacija za desktop i poslužitelje * **pas2js integracija** - Transpilacija u JavaScript za web aplikacije * **Problem Matcher** - Greške prevoditelja prikazuju se u Problems panelu * **Uses-Formatter** - Automatsko formatiranje Uses klauzula ===== Naredbe ===== ^ Naredba ^ Tipkovnička kratica ^ Opis ^ | ''WvdS: Build Project'' | ''Ctrl+Shift+B'' | Kompilira trenutni projekt | | ''WvdS: Clean Build'' | - | Briše artefakte kompilacije | | ''WvdS: Rebuild Project'' | - | Clean + Build u jednom koraku | | ''WvdS: Format Uses Clauses'' | ''Ctrl+Alt+U'' | Formatira Uses klauzule u trenutnoj datoteci | | ''WvdS: Remove Unused Units'' | - | Uklanja nekorištene unitove iz Uses | ===== Tijek rada kompilacije ===== ==== Kompiliranje projekta ==== - Otvorite Pascal datoteku (.pas, .lpr, .dpr) - Pritisnite ''Ctrl+Shift+B'' ili izvršite ''WvdS: Build Project'' - Prevoditelj se pokreće u Terminalu - Greške se pojavljuju u Problems panelu ==== Vrste kompilacije ==== ^ Vrsta ^ Opis ^ Korištenje ^ | Build | Inkrementalna kompilacija, samo promijenjeni unitovi | Normalni razvoj | | Clean | Briše sve .o, .ppu, .exe datoteke | Kod problema, prije izdanja | | Rebuild | Clean + Build | Potpuna ponovna kompilacija | ==== Odabir prevoditelja ==== Ekstenzija automatski odabire ispravan prevoditelj: ^ Ekstenzija datoteke ^ Prevoditelj ^ Izlaz ^ | .lpr, .pas (s .lpi) | FPC putem lazbuild | Nativna binarna datoteka | | .dpr, .dpk | FPC | Nativna binarna datoteka | | .pas (s pas2js.cfg) | pas2js | JavaScript | ===== Uses-Clause-Formatter ===== Formatter organizira i čisti Uses klauzule. ==== Funkcije ==== * **Sortiranje** - Abecedno, po duljini, ili bez sortiranja * **Grupiranje** - Opcijski: RTL, LCL, Custom unitovi * **Uvlačenje** - Konfigurirajuća širina uvlačenja * **Duljina retka** - Automatski prijelom pri prekoračenju * **Uklanjanje nekorištenih** - Uklanjanje nekorištenih unitova ==== Primjer ==== **Prije:** uses SysUtils,Classes,Forms, Dialogs, StdCtrls, Windows, MyUnit; **Poslije (abecedno, 2 razmaka, 80 znakova):** uses Classes, Dialogs, Forms, MyUnit, StdCtrls, SysUtils, Windows; ==== Kontekstni izbornik ==== Desni klik u Pascal datoteci prikazuje podizbornik "Uses Clauses": * Format Uses Clauses * Remove Unused Units ===== Postavke ===== ==== Postavke kompilacije ==== { "wvds.build.fpcPath": "", "wvds.build.pas2jsPath": "" } Ove postavke preuzimaju se iz Core ekstenzije ako su prazne. ==== Postavke Uses-Formattera ==== { // Redoslijed sortiranja // "alphabetical" | "lengthAsc" | "lengthDesc" | "none" "wvds.usesFormatter.sortOrder": "alphabetical", // Uvlačenje (broj razmaka) "wvds.usesFormatter.indentSize": 2, // Maksimalna duljina retka "wvds.usesFormatter.maxLineLength": 80, // Grupiranje po vrsti (RTL, LCL, Custom) "wvds.usesFormatter.groupByType": false, // Automatski ukloni nekorištene unitove "wvds.usesFormatter.removeUnused": false } ==== Opcije sortiranja u detaljima ==== ^ Opcija ^ Opis ^ Primjer ^ | alphabetical | A-Z sortiranje (zadano) | Classes, Dialogs, Forms, SysUtils | | lengthAsc | Najkraći prvo | DB, Forms, Classes, SysUtils | | lengthDesc | Najduži prvo | SysUtils, Classes, Forms, DB | | none | Zadrži izvorni redoslijed | - | ==== Grupiranje ==== Kada je grupiranje aktivirano (''groupByType: true''): uses // RTL Classes, SysUtils, // LCL Forms, StdCtrls, // Custom MyUnit, AnotherUnit; ===== Problem Matcher ===== Ekstenzija parsira izlaz prevoditelja i prikazuje greške u Problems panelu. ==== Podržani formati ==== **FPC format:** myunit.pas(42,10) Error: Identifier not found "TFoo" **pas2js format:** myunit.pas(42,10) Error: identifier "TFoo" not found ==== Navigacija ==== * Klik na grešku otvara datoteku na odgovarajućem mjestu * ''F8'' skoči na sljedeću grešku * ''Shift+F8'' skoči na prethodnu grešku ===== Konfiguracija kompilacije po projektu ===== Stvorite ''build.cfg'' u mapi projekta za postavke specifične za projekt: [build] compiler=fpc target=windows-x64 mode=debug [debug] optimizations=off symbols=on assertions=on [release] optimizations=3 symbols=off assertions=off ==== Dostupne opcije ==== ^ Opcija ^ Vrijednosti ^ Opis ^ | compiler | fpc, pas2js, lazbuild | Prevoditelj koji se koristi | | target | windows-x64, linux-x64, web, ... | Ciljna platforma | | mode | debug, release | Način kompilacije | | optimizations | off, 1, 2, 3 | Razina optimizacije | | symbols | on, off | Generiraj debug simbole | | assertions | on, off | Aktiviraj assertions | ===== Tipkovničke kratice ===== ^ Akcija ^ Windows/Linux ^ macOS ^ | Build Project | ''Ctrl+Shift+B'' | ''Cmd+Shift+B'' | | Format Uses | ''Ctrl+Alt+U'' | ''Cmd+Alt+U'' | ===== Rješavanje problema ===== ==== "Compiler not found" ==== **Uzrok:** FPC/pas2js nije konfiguriran. **Rješenje:** - Otvorite ''WvdS: Toolchain Configuration...'' - Konfigurirajte putanju prevoditelja - Alternativno: Postavite ''wvds.build.fpcPath'' u settings.json ==== Greške se ne prikazuju u Problems panelu ==== **Uzrok:** Izlaz prevoditelja odstupa od očekivanog formata. **Rješenje:** - Provjerite izlaz Terminala za greške - Osigurajte da je verzija prevoditelja kompatibilna - Prijavite problem na GitHub ==== Uses-Formatter ne mijenja ništa ==== **Uzrok:** Uses klauzula nije pronađena ili datoteka nije podržana. **Rješenje:** - Osigurajte da je datoteka .pas, .pp, .lpr, .dpr ili .inc - Provjerite postoji li Uses klauzula - Provjerite postavke ===== Tehnički detalji ===== ^ Svojstvo ^ Vrijednost ^ | Extension ID | wvds.wvds-vscode-build | | Aktivacija | onCommand, onLanguage:pascal | | Ovisnosti | wvds-vscode-core | | Min. VS Code | 1.85.0 | ===== Vidi također ===== * [[.:core|Core Extension - Konfiguracija toolchaina]] * [[.:projects|Projects Extension - Predlošci projekata]] * [[.:packaging|Packaging Extension - Izrada VSIX-a]]