Core API

Riferimento API per la WvdS VSCode Core Extension.

Panoramica

La Core Extension fornisce servizi centrali che possono essere utilizzati da tutte le altre Extension.

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

Servizio Logging

LogInfo

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

Scrive un messaggio informativo nell'Output Channel.

LogWarn

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

Scrive un avviso nell'Output Channel.

LogError

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

Scrive un errore nell'Output Channel.

LogDebug

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

Scrive un messaggio di debug. Disponibile solo con compilazione -dDEBUG.

Servizio Toolchain

GetToolPath

function GetToolPath(ATool: TWvdSToolType): string;

Restituisce il percorso configurato per uno strumento.

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

Esempio:

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

GetToolVersion

function GetToolVersion(ATool: TWvdSToolType): string;

Restituisce la versione di uno strumento installato.

IsToolAvailable

function IsToolAvailable(ATool: TWvdSToolType): Boolean;

Verifica se uno strumento e disponibile.

AutoDetectTools

procedure AutoDetectTools;

Esegue il rilevamento automatico di tutti gli strumenti.

Configurazione

GetConfiguration

function GetConfiguration(const ASection: string): TJSObject;

Legge la configurazione VS Code.

Esempio:

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
);

Scrive la configurazione VS Code.

TConfigurationTarget Descrizione
ctGlobal Impostazioni utente
ctWorkspace Impostazioni workspace
ctWorkspaceFolder Impostazioni cartella

Event-Bus

PublishEvent

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

Pubblica un evento per altre Extension.

Esempio:

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
);

Si sottoscrive agli eventi.

Esempio:

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

Servizi UI

ShowInfoMessage

procedure ShowInfoMessage(const AMessage: string);
function ShowInfoMessage(
  const AMessage: string;
  const AItems: array of string
): TJSPromise;  // Si risolve nell'item selezionato

ShowWarningMessage

procedure ShowWarningMessage(const AMessage: string);

ShowErrorMessage

procedure ShowErrorMessage(const AMessage: string);

ShowQuickPick

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

Servizi Workspace

GetWorkspaceRoot

function GetWorkspaceRoot: string;

Restituisce il percorso alla cartella workspace.

GetOpenDocument

function GetOpenDocument: string;

Restituisce il percorso al documento attualmente aperto.

Vedi anche

Zuletzt geändert: il 29/01/2026 alle 22:29