This test checks the output of textDocument/semanticTokens/range.
TODO: add more assertions.
-- settings.json --
{
"semanticTokens": true
}
-- a.go --
package p //@token("package", "keyword", "")
const C = 42 //@token("C", "variable", "definition readonly")
func F() { //@token("F", "function", "definition")
x := 2 + 3//@token("x", "variable", "definition"),token("2", "number", ""),token("+", "operator", "")
_ = x //@token("x", "variable", "")
_ = F //@token("F", "function", "")
}
func _() {
// A goto's label cannot be found by ascending the syntax tree.
goto loop //@ token("goto", "keyword", ""), token("loop", "label", "")
loop: //@token("loop", "label", "definition")
for {
continue loop //@ token("continue", "keyword", ""), token("loop", "label", "")
}
}