Inhaltsverzeichnis
FPC PAS2JS Studio
Integracija pas2js prevajalnika, Web Form Designer in razvoj VSCode razširitev v Pascalu.
Package-ID: wvds.wvds-fpc-pas2js-studio
Pregled
PAS2JS Studio razširi Solution Manager z orodji za razvoj s pas2js prevajalnikom (Pascal to JavaScript):
- Razvoj VSCode razširitev — Na Pascalu temelječe razširitve prevajajte, testirajte, pakirajte
- Spletne aplikacije — Brskalniške aplikacije s pas2js prevedite in živo testirajte
- Web Form Designer — Vizualni WFM-urejevalnik za spletne obrazce
- Live Server — Samodejni rebuild in predogled v brskalniku
Vrste projektov
VSCode Extension
Se samodejno prepozna, ko package.json vsebuje VSCode Extension Manifest (engines.vscode).
Projekt se v Solution Manager Tree View prikaže kot virtualni projekt — z vsemi Pascal-enotami, npm odvisnostmi in InnoSetup-skriptami.
Spletna aplikacija
pas2js spletne aplikacije se odkrijejo prek .wfm ali .wfmproj datotek.
Extension Build
Ukazi
| Ukaz | Opis |
| Build Extension (Debug) | Prevedi z informacijami za razhroščevanje in Source Maps |
|---|---|
| Build Extension (Release) | Optimiziran build (-O2) + esbuild minifikacija |
| Rebuild Extension | Celotna ponovna gradnja |
| Clean Extension | Brisanje build-artefaktov |
| Watch & Build Extension | Samodejni rebuild ob spremembi datoteke |
| Run Extension Tests | Zagon testov enot |
| Minify Extension | Ločena esbuild-minifikacija |
Postavitev
| Ukaz | Opis |
| Package VSIX | Pakiraj razširitev kot .vsix |
|---|---|
| Install Extension | Namesti VSIX v VSCode |
| Publish Extension | Objavi razširitev v Marketplace |
Build-Pipeline
Pascal (.pas) → pas2js → extension.pas2js.js → esbuild → extension.js
- pas2js prevede Pascal v JavaScript
- esbuild združi npm-odvisnosti in minimizira (Release)
- Rezultat: ena sama
extension.jsvdist/
Spletne aplikacije
Ukazi
| Ukaz | Opis |
| Build Web App (Debug) | Prevedi spletno aplikacijo (Debug) |
|---|---|
| Build Web App (Release) | Prevedi spletno aplikacijo (Release) |
| Watch & Preview Web App | Živ rebuild s predogledom v brskalniku |
| Stop Watch Mode | Prekini watch-način |
| Launch Browser Preview | Odpri brskalnik s predogledom URL |
Live Server
V watch-načinu se zažene lokalni HTTP-strežnik:
- Vrata: nastavljiva prek
fpc-pas2js.webApp.liveServerPort(privzeto: 8080) - Samodejno odpiranje: Brskalnik se samodejno odpre (
fpc-pas2js.webApp.autoOpenBrowser) - Samodejno nalaganje: Stran se ob spremembah datotek samodejno osveži
Web Form Designer
WFM Designer se samodejno odpre za .wfm datoteke.
Ukazi
| Ukaz | Opis |
| New Web Form | Ustvari nov spletni obrazec |
|---|---|
| New Frame | Ustvari nov okvir |
| Toggle Web Form / Code | Preklopi med designerjem in kodo |
| Preview Web Form | Prikaži obrazec v brskalniku |
| Toggle Designer View | Preklopi pogled designerja |
Debugging
Browser Debug
pas2js spletne aplikacije se lahko razhroščujejo v brskalniku:
- Vrsta razhroščevalnika:
pas2js-browser - Debug-vrata: nastavljiva prek
fpc-pas2js.debug.browserDebugPort(privzeto: 9222)
Source Maps
| Način | Opis |
external | Ločena .map datoteka (privzeto) |
|---|---|
inline | Source Map vgrajena v JS |
none | Brez Source Maps |
Nastavitev: fpc-pas2js.debug.sourceMapMode
Test Explorer
Test Explorer se integrira v VSCode Testing API in samodejno odkrije FPCUnit-teste.
Nastavitve
| Nastavitev | Opis | Privzeto |
test.enabled | Test Explorer aktiviran | true |
|---|---|---|
test.testDir | Imenik s testi (relativno glede na Workspace) | tests |
test.testPattern | Glob-vzorec za testne datoteke | *.test.pas |
test.timeout | Časovna omejitev v milisekundah | 30000 |
Struktura testov
Testi sledijo vzorcu FPCUnit:
unit MyFeature.test; interface uses fpcunit, testregistry; type TMyFeatureTest = class(TTestCase) published procedure Test_Add_ReturnsSum; procedure Test_Divide_ByZero_Raises; end; implementation procedure TMyFeatureTest.Test_Add_ReturnsSum; begin AssertEquals(4, Add(2, 2)); end; procedure TMyFeatureTest.Test_Divide_ByZero_Raises; begin AssertException(EDivByZero, @DoDivideByZero); end; initialization RegisterTest(TMyFeatureTest); end.
Odkrivanje
- Testne datoteke se iščejo v nastavljenem
test.testDirpo vzorcutest.testPattern - Razredi, ki dedujejo od
TTestCase, se prepoznajo kot testne zbirke publishedmetode, ki se začnejo sTest, se prepoznajo kot posamezni testi
Ukazi
- Run Tests — Prevedi in zaženi vse teste
- Debug Tests — Zaženi teste v razhroščevalniku (točke prekinitve v testni kodi so mogoče)
Rezultati testov
- Rezultati se prikažejo v VSCode panelu Testing (stranska vrstica)
- Neuspeli testi prikazujejo sporočilo o napaki in številko vrstice
- Zelena = uspešno, rdeča = neuspešno, rumena = preskočeno
Nastavitve
Vse nastavitve se začnejo z fpc-pas2js.:
Prevajalnik
| Nastavitev | Opis | Privzeto |
|---|---|---|
pas2jsPath | Pot do pas2js prevajalnika | Samodejna zaznava |
pas2jsRtlPath | Pot do pas2js RTL paketov | Samodejna zaznava |
defaultUnitSearchPaths | Dodatne poti za iskanje enot | [] |
defaultCompilerFlags | Dodatne zastavice prevajalnika (npr. -dMYDEFINE) | — |
Extension Build
| Nastavitev | Opis | Privzeto |
|---|---|---|
extBuild.autoOnSave | Samodejno prevedi ob shranjevanju | false |
extBuild.minify | Minifikacija release-buildov | true |
extBuild.logToFile | Zapiši build-dnevnik v datoteko | false |
extBuild.installAfterBuild | Samodejna namestitev po buildu | false |
defaultVsixOutputPath | Privzeta izhodna pot za VSIX | — |
Spletna aplikacija
| Nastavitev | Opis | Privzeto |
|---|---|---|
webApp.liveServerPort | Vrata za Live-Server | 8080 |
webApp.autoOpenBrowser | Samodejno odpri brskalnik | true |