V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
kinboy
V2EX  ›  程序员

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

  •  
  •   kinboy · 2022-08-26 09:21:15 +08:00 · 2141 次点击
    这是一个创建于 839 天前的主题,其中的信息可能已经有所发展或是发生改变。

    开发机是 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 吗?

    Goland vs. VSCode

    第 1 条附言  ·  2023-10-16 14:58:47 +08:00
    之前分享的配置文本的链接失效了,这里再补充一下 gist 地址: https://gist.github.com/kinboyw/6b1453c62d4aee1f071863fc10cb4577
    7 条回复    2023-10-13 15:51:19 +08:00
    kinboy
        1
    kinboy  
    OP
       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
        2
    kinboy  
    OP
       2022-08-26 09:36:52 +08:00
    @kinboy #1 VSCode 下的 Golang 的圆括号也有 3 种颜色
    Yain
        3
    Yain  
       2022-08-26 09:40:26 +08:00
    设置加上 "gopls": { "ui.semanticTokens": true }
    kinboy
        4
    kinboy  
    OP
       2022-08-26 14:47:30 +08:00
    @Yain #3 谢谢大佬指教,顺着做了一番配置之后基本接近原来的主题了,仍有不完美的地方,如无法分辨类型方法的实例变量与方法内部声明的局部变量,不过已经很不错了,另外保留了 VSCode 嵌套括号的多色配置,具体配置参数放在这里 https://is.gd/r4lZAu
    kinboy
        5
    kinboy  
    OP
       2022-08-26 14:50:56 +08:00
    @kinboy #4 献上最终效果
    Leopord7
        6
    Leopord7  
       2023-10-11 18:12:50 +08:00
    楼主能再分享一下这个配色方案吗,感谢。
    kinboy
        7
    kinboy  
    OP
       2023-10-13 15:51:19 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   986 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 18:57 · PVG 02:57 · LAX 10:57 · JFK 13:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.