Core API

API-referenca za WvdS VSCode Core Extension.

Pregled

Core Extension pruža centralne usluge koje mogu koristiti sve druge ekstenzije.

uses
  WvdS.Core.Services,
  WvdS.Core.Toolchain,
  WvdS.Core.Logging;

Logging-servis

LogInfo

procedure LogInfo(const AMessage: string);
procedure LogInfo(const AFormat: string; const AArgs: array of const);

Zapisuje info-poruku u Output Channel.

LogWarn

procedure LogWarn(const AMessage: string);
procedure LogWarn(const AFormat: string; const AArgs: array of const);

Zapisuje upozorenje u Output Channel.

LogError

procedure LogError(const AMessage: string);
procedure LogError(const AFormat: string; const AArgs: array of const);

Zapisuje grešku u Output Channel.

LogDebug

{$IFDEF DEBUG}
procedure LogDebug(const AMessage: string);
procedure LogDebug(const AFormat: string; const AArgs: array of const);
{$ENDIF}

Zapisuje debug-poruku. Dostupno samo kod kompilacije s -dDEBUG.

Toolchain-servis

GetToolPath

function GetToolPath(ATool: TWvdSToolType): string;

Vraća konfiguriranu putanju za alat.

TWvdSToolType Opis
ttFPC Free Pascal Compiler
ttPas2js pas2js Transpiler
ttLazbuild Lazarus Build Tool
ttInnoSetup Inno Setup Compiler
ttMake GNU Make

Primjer:

var
  FpcPath: string;
begin
  FpcPath := GetToolPath(ttFPC);
  if FpcPath = '' then
    raise EWvdSToolNotFound.Create(rsToolNotFound);
end;

GetToolVersion

function GetToolVersion(ATool: TWvdSToolType): string;

Vraća verziju instaliranog alata.

IsToolAvailable

function IsToolAvailable(ATool: TWvdSToolType): Boolean;

Provjerava je li alat dostupan.

AutoDetectTools

procedure AutoDetectTools;

Izvršava automatsku detekciju svih alata.

Konfiguracija

GetConfiguration

function GetConfiguration(const ASection: string): TJSObject;

Čita VS Code konfiguraciju.

Primjer:

var
  Config: TJSObject;
  LogLevel: string;
begin
  Config := GetConfiguration('wvds.core');
  LogLevel := String(Config['logLevel']);
end;

UpdateConfiguration

procedure UpdateConfiguration(
  const ASection: string;
  const AKey: string;
  AValue: JSValue;
  ATarget: TConfigurationTarget
);

Zapisuje VS Code konfiguraciju.

TConfigurationTarget Opis
ctGlobal Korisničke postavke
ctWorkspace Workspace-postavke
ctWorkspaceFolder Folder-postavke

Event-Bus

PublishEvent

procedure PublishEvent(const AEventName: string; AData: TJSObject);

Objavljuje event za druge ekstenzije.

Primjer:

var
  Data: TJSObject;
begin
  Data := TJSObject.New;
  Data['projectPath'] := ProjectPath;
  Data['success'] := True;
  PublishEvent('wvds.build.completed', Data);
end;

SubscribeEvent

procedure SubscribeEvent(
  const AEventName: string;
  AHandler: TWvdSEventHandler
);

Pretplaćuje se na evente.

Primjer:

procedure HandleBuildCompleted(AData: TJSObject);
begin
  if Boolean(AData['success']) then
    LogInfo('Build succeeded!')
  else
    LogError('Build failed!');
end;
 
// Kod aktivacije:
SubscribeEvent('wvds.build.completed', @HandleBuildCompleted);

UI-servisi

ShowInfoMessage

procedure ShowInfoMessage(const AMessage: string);
function ShowInfoMessage(
  const AMessage: string;
  const AItems: array of string
): TJSPromise;  // Resolves to selected item

ShowWarningMessage

procedure ShowWarningMessage(const AMessage: string);

ShowErrorMessage

procedure ShowErrorMessage(const AMessage: string);

ShowQuickPick

function ShowQuickPick(
  const AItems: array of string;
  const APlaceholder: string
): TJSPromise;

Workspace-servisi

GetWorkspaceRoot

function GetWorkspaceRoot: string;

Vraća putanju do Workspace-foldera.

GetOpenDocument

function GetOpenDocument: string;

Vraća putanju do trenutno otvorenog dokumenta.

Vidi također

Zuletzt geändert: 29.01.2026. u 22:30