Ce projet est mon étude sur la mise en œuvre du serveur Language Server Protocol (LSP).
Curage-lang lui-même est un langage minuscule et sans intérêt. J'implémente un serveur LSP pour le langage. Il possède certaines fonctionnalités, telles que le rapport d'erreurs de syntaxe, le renommage des symboles, etc.
lsp
: L'implémentation du serveur de langage et l'extension VSCode.src/extension.ts
: Point d'entrée de l'extension VSCode.src/server.ts
: Point d'entrée du serveur. La syntaxe de Curage-lang est très simple. Ce qui suit décrit la syntaxe dans une notation de type PEG.
expression = int / name
statement = " let " name " be " expression " n "
program = statement *
Légendes :
A*
signifie une séquence de A ou vide,A+
désigne une séquence de A au moins un,A / B
signifie A ou B.Exemple:
let x be 1
let y be x
Renommer les symboles n'a pas besoin de capture d'écran.
let x be 1
↓ (Renommer x
en new_x
)
let new_x be 1
J'écris une série d'articles pour expliquer les codes sources de ce référentiel. Écrit en langue japonaise.