Ga naar hoofdinhoud

Taaldienaar (LSP)

De taaldienaar van Babbelaar biedt ondersteuning voor de taal bij tekstbewerkers.

Ook al is de taaldienaar geschreven zodat het de applicatieagnostische Language Server Protocol (LSP) opvolgt, dient er nog wel een klein lijmlaagje per tekstbewerker gebouwd te worden, meestal in de vorm van een extensie. Daarom wordt op dit moment alleen nog maar Visual Studio Code ondersteund.

Bouwen

De code voor de taaldienaar zelf is te vinden in lsp/, en de code voor de Visual Studio Code-extensie is te vinden in tools/vscode/.

Vereisten

Benodigdheden installeren

Om dit zelf te bouwen, dien je de volgende tools te installeren:

NodeJS

Omdat Visual Studio Code gebouwd is met Electron, is het vereist om NodeJS te installeren om de JavaScript uit te kunnen voeren. Een handig installatiemiddel is bijvoorbeeld fnm (Fast Node Manager). Als doelversie hanteren we gewoon de meest recente versie van NodeJS en NPM.

Visual Studio Code-gereedschappen

Nu je NodeJS geïnstalleerd hebt, is het belangrijk dat je de VSCode-gereedschappen installeert:

npm install -g @vscode/vsce yo typescript

Bouwen maar!

Je hebt nu alle benodigdheden om te gaan bouwen. Ga met de terminal naar de map tools/vscode/, en voer dan dit commando uit om een extensiepakket te bouwen:

vsce package

Als de versie in de package.json bijvoorbeeld 1.2.3 is, dan zul je in de map het bestand genaamd babbelaar-1.2.3.vsix zien.

Testen

Om je versgebakken VSIX-bestand te testen, open je Visual Studio Code en open je het extensiepaneel zoals hieronder. Het kan overigens handig zijn om Visual Studio Code Insiders te gebruiken om VSIX-bestanden te testen, mocht je de reguliere versie doorgaans gebruiken.

Extensies-tabblad van VS Code

Druk dan op de drie puntjes (beletselteken) rechts bovenaan en kies Uit VSIX installeren...

Extensies-tabblad van VS Code

Selecteer dan het VSIX-bestand het druk op Installeren.

Extensies-tabblad van VS Code

Open nu een werkplek met Babbelaar-code erin, en je kunt van slag!

Werking

De taaldienaar wordt op dit moment gestart door de Visual Studio Code-extensie. Zie hiervoor tools/vscode/src/babbelaarLsp.ts.

Om de taaldienaar op de machine van de gebruiker te krijgen, wordt bij opstarten eerst gecheckt of het al gedownload is naar de extensiecachemap. Zo niet, dan worden de bestanden opgehaald van de Babbelaar-website, zie tools/vscode/src/downloadBabbelaar.ts.

notitie

Op dit moment wordt Babbelaar gezet op de website (https://babbelaar.dev/) door een CI-script te draaien op de release-branche, waarna handmatig de zips wordt gedownload van de GitHub-artefacten, geüpload en gedecomprimeerd. Deze wijze moet graag veranderd worden, omdat het hosten van de artefacten op GitHub i.p.v. de Babbelaar-website beter voor de transparantie is en gemakkelijker is. Hiervoor moet wel wat werk gedaan worden, dus denk hier graag aan mee :)

Inpakken

Om de taaldienaar in te pakken, dien je eerst de versie van het Visual Studio Code-extensiepakket te verhogen naar dezelfde versie als van Babbelaar zelf. Dit zorgt ervoor dat