golang / vscode-go

Go extension for Visual Studio Code
https://marketplace.visualstudio.com/items?itemName=golang.Go
Other
3.86k stars 745 forks source link

Add 'label' to set of semantic tokens for Go #3165

Open adonovan opened 8 months ago

adonovan commented 8 months ago

https://go.dev/cl/562244 adds support to gopls for classifying control labels as a semantic token class ("label"). Strangely, given that JavaScript uses labels just the same way as Go in break and continue, "label" does not appear to be an LSP 3.17 standard semantic token type.

I think the VS Code Go extension should define "label" as a supported token type, and register a unique CSS class for it, ideally with light and dark styles. Here's the logic to register 'enumMember' as a semantic token for TypeScript:

This document suggests that VS Code already supports "label", so perhaps there is less to do: https://code.visualstudio.com/api/language-extensions/semantic-highlight-guide#standard-token-types-and-modifiers

@pjweinb

hyangah commented 8 months ago

Filed https://github.com/microsoft/vscode-languageserver-node/issues/1422 This is done by the LSP client library. I wish they could sneak this into the library without requiring us to wait for 3.18 LSP release.