diff --git a/semantic-tokens-sample/.vscode/launch.json b/semantic-tokens-sample/.vscode/launch.json index 527cbf4b..b170d822 100644 --- a/semantic-tokens-sample/.vscode/launch.json +++ b/semantic-tokens-sample/.vscode/launch.json @@ -10,7 +10,8 @@ "request": "launch", "runtimeExecutable": "${execPath}", "args": [ - "--extensionDevelopmentPath=${workspaceFolder}" + "--extensionDevelopmentPath=${workspaceFolder}", + "${workspaceFolder}/sample", ], "outFiles": [ "${workspaceFolder}/out/**/*.js" diff --git a/semantic-tokens-sample/README.md b/semantic-tokens-sample/README.md index 193858e1..7576d44b 100644 --- a/semantic-tokens-sample/README.md +++ b/semantic-tokens-sample/README.md @@ -2,6 +2,8 @@ This is an extension sample showing a very simple semantic tokens provider. This semantic tokens provider always returns all the tokens in a file. +For more background on semantic highlighting read [here](https://github.com/microsoft/vscode/wiki/Semantic-Highlighting-Overview) + ![Screenshot](demo.png) ## How to run diff --git a/semantic-tokens-sample/demo.png b/semantic-tokens-sample/demo.png index 38289529..796bc487 100644 Binary files a/semantic-tokens-sample/demo.png and b/semantic-tokens-sample/demo.png differ diff --git a/semantic-tokens-sample/sample/sample.semanticLanguage b/semantic-tokens-sample/sample/sample.semanticLanguage index 1c7b1265..34d84f19 100644 --- a/semantic-tokens-sample/sample/sample.semanticLanguage +++ b/semantic-tokens-sample/sample/sample.semanticLanguage @@ -1,7 +1,7 @@ Available token types: [comment] [string] [keyword] [number] [regexp] [operator] [namespace] - [type] [struct] [class] [interface] [enum] [parameterType] [function] - [macro] [variable] [constant] [parameter] [property] [label] + [type] [struct] [class] [interface] [enum] [typeParameter] [function] + [member] [macro] [variable] [parameter] [property] [label] Available token modifiers: [type.declaration] [type.documentation] [type.member] [type.static] diff --git a/semantic-tokens-sample/src/extension.ts b/semantic-tokens-sample/src/extension.ts index 007f36ac..b020801f 100644 --- a/semantic-tokens-sample/src/extension.ts +++ b/semantic-tokens-sample/src/extension.ts @@ -6,13 +6,13 @@ const tokenModifiers = new Map(); const legend = (function () { const tokenTypesLegend = [ 'comment', 'string', 'keyword', 'number', 'regexp', 'operator', 'namespace', - 'type', 'struct', 'class', 'interface', 'enum', 'parameterType', 'function', - 'macro', 'variable', 'constant', 'parameter', 'property', 'label' + 'type', 'struct', 'class', 'interface', 'enum', 'typeParameter', 'function', + 'member', 'macro', 'variable', 'parameter', 'property', 'label' ]; tokenTypesLegend.forEach((tokenType, index) => tokenTypes.set(tokenType, index)); const tokenModifiersLegend = [ - 'declaration', 'documentation', 'member', 'static', 'abstract', 'deprecated', + 'declaration', 'documentation', 'readonly', 'static', 'abstract', 'deprecated', 'modification', 'async' ]; tokenModifiersLegend.forEach((tokenModifier, index) => tokenModifiers.set(tokenModifier, index));