====== WvdS VSCode Projects ======
Projects ekstenzija upravlja Pascal projektima u VS Code. Nudi predloške projekata, dijaloške okvire za konfiguraciju i upravljanje rješenjima.
===== Funkcija i svrha =====
Projects ekstenzija omogućuje:
* **Predlošci projekata** - Brza izrada novih projekata
* **Upravljanje projektima** - Otvaranje, konfiguracija, upravljanje
* **Multi-projekt rješenja** - Više projekata u jednom workspaceu
* **Postavke projekta** - GUI za opcije prevoditelja
===== Naredbe =====
^ Naredba ^ Opis ^
| ''WvdS Projects: New Project (Quick)'' | Stvara projekt sa zadanim postavkama |
| ''WvdS Projects: New Project from Template...'' | Prikazuje dijaloški okvir za odabir predloška |
| ''WvdS Projects: Open Project'' | Otvara postojeći projekt |
| ''WvdS Projects: Project Settings...'' | Otvara dijaloški okvir postavki projekta |
===== Predlošci projekata =====
Ekstenzija sadrži unaprijed definirane predloške za različite vrste projekata:
==== Desktop Console ====
Jednostavna konzolna aplikacija za alate naredbenog retka i servise.
**Generirane datoteke:**
MyProject/
MyProject.lpr -- Glavni program
**Primjer koda:**
program MyProject;
{$mode objfpc}{$H+}
uses
SysUtils;
begin
WriteLn('Hello, World!');
end.
**Primjene:**
* CLI alati i pomoćni programi
* Batch obrada
* Serverski servisi
* Build skripte
==== Desktop GUI ====
Nativna desktop aplikacija s LCL-om (Lazarus Component Library).
**Generirane datoteke:**
MyProject/
MyProject.lpr -- Glavni program
MainForm.pas -- Unit glavne forme
MainForm.lfm -- Dizajn forme
**Preduvjeti:**
* Lazarus instaliran (za LCL)
* lazbuild dostupan
**Primjene:**
* Desktop aplikacije
* Sučelja za baze podataka
* Pomoćni programi s GUI-jem
==== Desktop Library ====
Dijeljena biblioteka (DLL/SO) za plugin sustave ili vanjsku integraciju.
**Generirane datoteke:**
MyProject/
MyProject.lpr -- Library projekt
**Primjer koda:**
library MyProject;
{$mode objfpc}{$H+}
uses
SysUtils;
procedure HelloWorld; cdecl;
begin
WriteLn('Hello from library!');
end;
exports
HelloWorld;
begin
end.
**Primjene:**
* Plugini za druge aplikacije
* Dijeljeni kod između projekata
* Integracija s drugim jezicima (C, Python, itd.)
==== TUI App ====
Terminal User Interface - tekstualno korisničko sučelje.
**Generirane datoteke:**
MyProject/
MyProject.lpr -- Glavni program
TuiMain.pas -- TUI glavni unit
**Primjene:**
* Administracija poslužitelja
* SSH-kompatibilni alati
* Aplikacije s malim resursnim zahtjevima
* Cross-platform bez GUI ovisnosti
==== Web PWA ====
Progressive Web App s pas2js - radi u pregledniku.
**Generirane datoteke:**
MyProject/
MyProject.lpr -- Glavni program (postaje JS)
index.html.tmpl -- HTML predložak
manifest.json.tmpl-- PWA manifest
sw.js -- Service Worker
**Preduvjeti:**
* pas2js instaliran
**Primjene:**
* Web aplikacije
* Cross-platform aplikacije
* Aplikacije s offline podrškom
==== VSCode Extension ====
VS Code ekstenzija u Pascalu, transpilirana s pas2js.
**Generirane datoteke:**
MyExtension/
extension_main.pas -- Entry Point
package.json.tmpl -- Extension manifest
**Preduvjeti:**
* pas2js instaliran
* Node.js za vsce (pakiranje)
**Primjene:**
* Vlastite VS Code ekstenzije
* IDE alati i automatizacija
* Integracija s WvdS paketom
==== Installer (Inno Setup) ====
Windows instaler za desktop aplikacije.
**Generirane datoteke:**
MyInstaller/
MyInstaller.iss -- Inno Setup skripta
**Preduvjeti:**
* Inno Setup instaliran
**Primjene:**
* Windows instalacijski paketi
* Automatska ažuriranja
* Poslovni deployment
===== Postavke projekta =====
Dijaloški okvir ''WvdS Projects: Project Settings...'' nudi grafičko sučelje za:
==== Opće postavke ====
* **Naziv projekta** - Naziv projekta
* **Izlazni direktorij** - Kamo se zapisuju kompilirane datoteke
* **Putanje unitova** - Dodatne putanje za traženje unitova
==== Opcije prevoditelja ====
* **Target Platform** - windows-x86, windows-x64, linux-x64, ...
* **Optimizacije** - Razina 0-3
* **Debug simboli** - Aktiviraj za debugging
* **Assertions** - Provjere tijekom izvođenja
==== Ovisnosti ====
* **Uses klauzule** - Automatski upravljani unitovi
* **Library putanje** - Putanje do vanjskih biblioteka
===== Multi-projekt workspaceovi =====
VS Code workspaceovi mogu sadržavati više projekata:
MyWorkspace.code-workspace
MyApp/ -- Desktop aplikacija
MyLib/ -- Dijeljena biblioteka
MyTests/ -- Unit testovi
==== Izrada workspacea ====
- ''File'' -> ''Add Folder to Workspace...''
- Dodajte sve mape projekata
- ''File'' -> ''Save Workspace As...''
==== Odabir projekta ====
Kod više projekata:
- Otvorite datoteku željenog projekta
- Ili: Odaberite projekt u Project Exploreru
===== Kontekstni izbornik =====
Desni klik na .lpi/.lpr datoteke u Exploreru prikazuje:
* ''WvdS Projects: Project Settings...''
===== Rješavanje problema =====
==== Dijaloški okvir predloška se ne otvara ====
**Uzrok:** Ekstenzija nije aktivirana ili je došlo do greške.
**Rješenje:**
- Provjerite je li ekstenzija instalirana
- Provjerite Developer Console za greške
- Ponovno pokrenite VS Code
==== Projekt se ne prepoznaje ====
**Uzrok:** Nema .lpr, .dpr ili .pas datoteke u mapi.
**Rješenje:**
- Osigurajte da glavna datoteka postoji
- Otvorite mapu s ''File'' -> ''Open Folder...''
==== Postavke projekta se ne spremaju ====
**Uzrok:** Nema prava pisanja ili neispravna konfiguracija.
**Rješenje:**
- Provjerite prava pisanja u mapi projekta
- Provjerite settings.json za sintaksne greške
===== Tehnički detalji =====
^ Svojstvo ^ Vrijednost ^
| Extension ID | wvds.wvds-vscode-projects |
| Aktivacija | workspaceContains:/*.lpr, onLanguage:pascal |
| Ovisnosti | wvds-vscode-core |
| Min. VS Code | 1.85.0 |
===== Vidi također =====
* [[.:core|Core Extension - Konfiguracija toolchaina]]
* [[.:build|Build Extension - Kompilacija]]
* [[.:designer|UI Designer - PXAML razvoj]]