Dieses Projekt ist meine Studie zur Serverimplementierung des Language Server Protocol (LSP).
Curage-lang selbst ist eine winzige, uninteressante Sprache. Ich implementieren einen LSP-Server für die Sprache. Es verfügt über einige Funktionen, wie z. B. die Meldung von Syntaxfehlern, das Umbenennen von Symbolen usw.
lsp
: Die Sprachserverimplementierung und VSCode-Erweiterung.src/extension.ts
: Einstiegspunkt der VSCode-Erweiterung.src/server.ts
: Einstiegspunkt des Servers. Die Syntax von Curage-lang ist sehr einfach. Im Folgenden wird die Syntax in PEG-ähnlicher Notation beschrieben.
expression = int / name
statement = " let " name " be " expression " n "
program = statement *
Legenden:
A*
bedeutet eine Folge von A oder leer,A+
bedeutet eine Folge von A mindestens einem,A / B
bedeutet A oder B.Beispiel:
let x be 1
let y be x
Für das Umbenennen von Symbolen ist kein Screenshot erforderlich.
let x be 1
↓ ( x
in new_x
umbenennen)
let new_x be 1
Ich schreibe eine Reihe von Artikeln, um die Quellcodes in diesem Repository zu erklären. Geschrieben in japanischer Sprache.