Hi 👋,欢迎访问我的博客


我是一名前端开发者,VS Code 插件和语言服务器开发者

我目前在开发基于 LSP 的 语言服务器,也在维护用 Go 构建的编译器

这里查看更多关于我的更多信息


我希望通过这个博客记录技术知识,提升影响力。如果你感兴趣,可以看看这些文章:

我为 VS Code 贡献了代码:这篇文章登上了阮一峰的科技爱好者周刊

LSP 与 VS Code 插件开发 第一章:记录我对 LSP 和语言服务器开发系列文章

怎么让 favicon 动起来:发现了吗,本网站的 favicon 会动



Antlr 文法设计中的尖括号问题

聊一聊使用 Antlr 设计编程语言文法时,> 符号作为大于号( a > 0 )、泛型尖括号( List<int> )、按位右移运算符( a >> 1 )这些语义时碰到的问题。


阅读全文

用 Go 移植 TypeScript 的重要影响

三月有个大新闻,官方要用 Go 移植 TypeScript,号称性能提升 10 倍。

我想从语言服务器开发者的角度聊聊,这个项目的重要影响,以及它将如何影响 AI 辅助编程。


阅读全文

LSP 与 VS Code 插件开发(四)开发小技巧

这是《LSP 与 VS Code 插件开发》系列文章的第四篇。
第一篇:语言服务器架构
第二篇:语义构建
第三篇:语言服务器协议
第四篇:开发小技巧


阅读全文

提高 Antlr 的编译性能

总结一些提高 antlr 词法和语法分析性能的方法。

缓存

如果你构建的是编译器,通常要预处理、预编译、编译文件,使得同一个文件的语法信息(也就是解析树或者 AST)需要用三次。
对于同样的源文件,antlr 生成的解析树(parse trees)是一样的。因此可以复用第一次的语法信息,省去两次的开销。


阅读全文

LSP 与 VS Code 插件开发(三)语言服务器协议

这是《LSP 与 VS Code 插件开发》系列文章的第三篇。
第一篇:语言服务器架构
第二篇:语义构建
第三篇:语言服务器协议
第四篇:开发小技巧


阅读全文

LSP 与 VS Code 插件开发(二)语义构建

这是《LSP 与 VS Code 插件开发》系列文章的第二篇。
第一篇:语言服务器架构
第二篇:语义构建
第三篇:语言服务器协议
第四篇:开发小技巧


阅读全文

在 VS Code/Cursor 中调试和运行 Go 程序

这里总结一些在 VS Code 中调试和运行 Go 程序的方法,对 Cursor 同样适用。

准备工作

必不可少的是 Go 插件。安装后可以做一些基础配置:


阅读全文

我为 VS Code 贡献了代码

今天发现我提给 VS Code 的 PR 被官方感谢了。深受鼓舞!


阅读全文

LSP 与 VS Code 插件开发(一)语言服务器架构

这是《LSP 与 VS Code 插件开发》系列文章的第一篇。
第一篇:语言服务器架构
第二篇:语义构建
第三篇:语言服务器协议
第四篇:开发小技巧


阅读全文

RubyConf China 2023 笔记

周末参加了 RubyConf China 2023,很奇妙的一段体验!作为一个前端,在同样是脚本语言的 Ruby 会议上听到了 React18,WebAssembly,Rust,Rails,LSP 这些概念,也会有些内容对比到 ts 或者 js,会有“原来 Ruby 程序员是这样思考的”的想法。虽然 Ruby 代码看不懂,拓宽视野还是让我耳目一新。


阅读全文