这个项目是我对语言服务器协议(LSP)服务器实现的研究。
Curage-lang 本身是一种微小的、无趣的语言。我正在为该语言实现一个 LSP 服务器。它具有一些功能,例如语法错误报告、符号重命名等。
lsp
:语言服务器实现和 VSCode 扩展。src/extension.ts
:VSCode 扩展的入口点。src/server.ts
:服务器的入口点。 Curage-lang 的语法非常简单。下面以类 PEG 表示法描述语法。
expression = int / name
statement = " let " name " be " expression " n "
program = statement *
传说:
A*
表示A或空的序列,A+
表示A的序列中至少有一个,A / B
表示 A 或 B。例子:
let x be 1
let y be x
重命名符号不需要屏幕截图。
let x be 1
↓ (将x
重命名为new_x
)
let new_x be 1
我正在撰写一系列文章来解释此存储库中的源代码。用日语写的。