| 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 number") |
| |
| func F() { //@token("F", "function", "definition signature") |
| x := 2 + 3//@token("x", "variable", "definition number"),token("2", "number", ""),token("+", "operator", "") |
| _ = x //@token("x", "variable", "number") |
| _ = F //@token("F", "function", "signature") |
| } |
| |
| 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", "") |
| } |
| } |