DR HACK

Davide Rosa Hack

vscode-alphabasic

AlphaBASIC — Estensione VS Code

Supporto completo per sorgenti AlphaBASIC / AlphaBASIC Plus in Visual Studio Code.
Syntax highlighting, compilazione integrata, diagnostica errori inline e avvio programmi — senza uscire dall'editor.

VS Code Linguaggi Versione Licenza


Indice


Funzionalità

🎨 Syntax Highlighting

Colorazione sintattica completa per file .BAS, .BP, .ROU, .MAP, .OPC, .HEL e .RID:

🔨 Compilazione integrata

  • Avvia compil.exe (o equivalente) direttamente da VS Code
  • Salvataggio automatico prima della compilazione
  • Output completo nel pannello AlphaBASIC (Output channel)
  • Pulsanti ⚙ e ▶ nella toolbar del titolo dell'editor

🐛 Diagnostica inline

Gli errori del compilatore appaiono come sottolineature rosse direttamente nelle righe incriminate del sorgente, con il messaggio visibile al passaggio del mouse. Nessun bisogno di cercare l'errore nell'output.

▶ Esecuzione programmi

Avvia il file .RUN corrispondente nel terminale integrato di VS Code, usando il runtime AlphaMicro/A-Shell configurato. Se il .RUN non esiste, propone di compilare prima.

📊 Status bar

Indicatore in basso a sinistra con lo stato corrente: compilazione in corso, ✓ OK, ✗ Errore.


Installazione

Metodo 1 — Da file .vsix (consigliato)

Scaricare o generare il pacchetto (vedi Sviluppo e build), poi:

Da VS Code:

Ctrl+Shift+P  →  Extensions: Install from VSIX...

Da terminale:

code --install-extension vscode-alphabasic-0.1.0.vsix

Metodo 2 — Copia diretta (senza packaging)

# 1. Clonare / scaricare il repository
# 2. Installare dipendenze e compilare
npm install
npm run compile

# 3. Copiare la cartella nelle estensioni VS Code
# Windows:
xcopy /E /I . "%USERPROFILE%\.vscode\extensions\vscode-alphabasic-0.1.0"

# 4. Riavviare VS Code

Metodo 3 — Modalità sviluppo (per test e debug)

Aprire la cartella del progetto in VS Code e premere F5. Si apre un'istanza Extension Development Host con l'estensione attiva.


Configurazione iniziale

Al primo utilizzo impostare almeno i percorsi del compilatore e del runtime.

Aprire le impostazioni: Ctrl+, → cerca alphabasic

Esempio settings.json:

{
  "alphabasic.compilerPath": "C:\\AlphaMicro\\bin\\compil.exe",
  "alphabasic.compilerSwitches": ["-a", "-x2", "-i"],
  "alphabasic.runtimePath": "C:\\AlphaMicro\\bin\\ashw32.exe"
}

Nota: i percorsi al compilatore e al runtime dipendono dall'installazione specifica di AlphaMicro / A-Shell sul sistema in uso. Se il compilatore viene avviato tramite emulatore AMOS, adattare compilerPath di conseguenza.


Uso

Compilare un sorgente

  1. Aprire un file .BAS, .BP, .ROU, .MAP, .OPC, .HEL o .RID in VS Code.
  2. Premere Ctrl+Alt+B oppure usare il pulsante ⚙ nella toolbar.
  3. L'output del compilatore appare nel pannello Output → AlphaBASIC.
  4. Gli errori vengono evidenziati inline nell'editor.

Eseguire un programma

  1. Compilare prima il sorgente (deve esistere un file .RUN corrispondente).
  2. Premere Ctrl+F5 oppure usare il pulsante ▶ nella toolbar.
  3. Il programma viene avviato nel Terminale integrato di VS Code.

Include file

Le righe che iniziano con ++INCLUDE xxx.yyy vengono evidenziate e il percorso del file incluso diventa cliccabile per aprirlo direttamente.

Su una chiamata come CALL PULISCIVIDEO, cliccando (o usando Go to Definition) sul nome routine il cursore salta all'etichetta PULISCIVIDEO: nello stesso file (.BAS, .BP, .ROU, .MAP, .OPC, .HEL, .RID).

Compilare ed eseguire in un solo passo

Premere F5 — compila e, se la compilazione riesce, avvia automaticamente il programma.


Scorciatoie da tastiera

Le scorciatoie sono attive solo quando è aperto un file AlphaBASIC, per non interferire con altri linguaggi.

I comandi sono disponibili anche da:

  • Palette comandi (Ctrl+Shift+P) → cerca AlphaBASIC
  • Menu contestuale (tasto destro nell'editor)
  • Toolbar del titolo dell'editor (icone ⚙ ▶)

Diagnostica errori

L'estensione analizza l'output del compilatore e riconosce automaticamente cinque formati di errore comuni:

Se il compilatore produce un formato non riconosciuto, aprire una issue allegando un esempio di output oppure adattare la funzione parseDiagnostics in src/extension.ts.


Sviluppo e build

Prerequisiti

Installare dipendenze e compilare

npm install
npm run compile

Modalità watch (ricompila automaticamente)

npm run watch

Generare il pacchetto .vsix

npm run package
# Output: vscode-alphabasic-0.1.0.vsix

Testare l'estensione in live

Aprire la cartella in VS Code → F5 → si apre un Extension Development Host.


Struttura del progetto

vscode-alphabasic/
├─ src/
│  └─ extension.ts              # Logica principale: compile, run, diagnostica
├─ syntaxes/
│  └─ alphabasic.tmLanguage.json  # Grammar TextMate per syntax highlighting
├─ out/
│  └─ extension.js              # Compilato (generato da tsc, non modificare)
├─ .vscode/
│  ├─ launch.json               # Configurazione debug estensione (F5)
│  └─ tasks.json                # Task build per lo sviluppo dell'estensione
├─ language-configuration.json  # Bracket matching, commenti, word pattern
├─ package.json                 # Manifest VS Code
└─ tsconfig.json

Note sui sorgenti legacy

Questa estensione è progettata per non alterare i sorgenti AlphaBASIC esistenti:

  • ❌ Non riformatta automaticamente i file .BAS / .BP
  • ❌ Non modifica nomi di variabili, etichette o numeri di riga
  • ✅ Preserva terminatori riga CRLF
  • ✅ Preserva encoding windows-1252 / latin-1
  • ✅ Non elimina file .RUN, .LIT, .CMD, .DO, .MAP, .LST

Licenza

MIT

Apri il progetto su GitHub

Per il codice sorgente e gli altri progetti visita il profilo GitHub di rsodvd79 .