vscode+golang 自定义 package 和 struct 语法高亮

2022-08-26 09:21:15 +08:00
 kinboy

开发机是 Win11 ,代码放在 WSL2 下面,这种方式似乎对 Goland 不大友好,经常出现终端打开闪退,项目运行失败等错误,迫于无奈,在 VSCode 下体验一番后,发现 VSCode 自带的调试也能方便的调试 Golang 项目(其实是利用了 go tools ( dlv) 本身的调试能力,Goland 下应该也是一样),而且众所周知,VSCode 的远程开发比 Goland 丝滑很多,于是便开始从 Goland 转向 VSCode 。

习惯了 Goland 下的字体和语法高亮,尝试将 VSCode 下的主题和字体也换成和 Goland 一样的风格,但是最终发现 VSCode 对 Golang 代码的解析还是不如 Goland 丰富,比如 VSCode 下无法配置 go package 和 struct 的语法高亮,学习了一下 VSCode 的语法高亮配置后,发现 VSCode 的语法分析是利用的 TextMate 规则匹配,默认的匹配规则没有识别 package 和 struct 。

那么问题就是,有办法让 VSCode 识别出 golang 的 package name 和 struct 吗?

2162 次点击
所在节点    程序员
7 条回复
kinboy
2022-08-26 09:36:28 +08:00
VSCode 下的 Golang 的圆括号也有种颜色,用 Developer: Inspect Editor Tokens and Scopes 工具识别到对应的 textMate scope ( punctuation.definition.begin.bracket.round.go ) 之后,在 editor.tokenColorCustomizations 下配置 forgrand 无效

kinboy
2022-08-26 09:36:52 +08:00
@kinboy #1 VSCode 下的 Golang 的圆括号也有 3 种颜色
Yain
2022-08-26 09:40:26 +08:00
设置加上 "gopls": { "ui.semanticTokens": true }
kinboy
2022-08-26 14:47:30 +08:00
@Yain #3 谢谢大佬指教,顺着做了一番配置之后基本接近原来的主题了,仍有不完美的地方,如无法分辨类型方法的实例变量与方法内部声明的局部变量,不过已经很不错了,另外保留了 VSCode 嵌套括号的多色配置,具体配置参数放在这里 https://is.gd/r4lZAu
kinboy
2022-08-26 14:50:56 +08:00
@kinboy #4 献上最终效果
Leopord7
2023-10-11 18:12:50 +08:00
楼主能再分享一下这个配色方案吗,感谢。
kinboy
2023-10-13 15:51:19 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/875494

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX