====== 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]]