* Initial import of the vscode semantic highlight code * Adds the ability to test modern semantic classification via strings instead of numbers * Adds existing tests * Port over the semantic classification tests * Update baselines * Update src/harness/fourslashImpl.ts Co-authored-by: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com> * Handle feedback from #39119 * Consistent formatting in the 2020 classifier * Update baselines * Apply suggestions from code review Co-authored-by: Daniel Rosenwasser <DanielRosenwasser@users.noreply.github.com> * Update src/harness/fourslashImpl.ts Co-authored-by: Daniel Rosenwasser <DanielRosenwasser@users.noreply.github.com> * Reafactor after comments * Use 2020 everywhere * Handle feedback * WIP - don't provide a breaking change * Fix all build errors * Update baselines * Update src/services/classifier2020.ts Co-authored-by: Sheetal Nandi <shkamat@microsoft.com> * Addresses Ron's feedback Co-authored-by: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com> Co-authored-by: Daniel Rosenwasser <DanielRosenwasser@users.noreply.github.com> Co-authored-by: Sheetal Nandi <shkamat@microsoft.com>
36 lines
1.3 KiB
TypeScript
36 lines
1.3 KiB
TypeScript
/// <reference path="fourslash.ts"/>
|
|
|
|
/////**
|
|
//// * This is my function.
|
|
//// * There are many like it, but this one is mine.
|
|
//// */
|
|
////function myFunction(/* x */ x: any) {
|
|
//// var y = x ? x++ : ++x;
|
|
////}
|
|
////// end of file
|
|
|
|
var firstCommentText =
|
|
"\
|
|
/**\n\
|
|
* This is my function.\n\
|
|
* There are many like it, but this one is mine.\n\
|
|
*/";
|
|
|
|
const c = classification("original");
|
|
verify.syntacticClassificationsAre(
|
|
c.comment(firstCommentText),
|
|
c.keyword("function"), c.identifier("myFunction"), c.punctuation("("), c.comment("/* x */"), c.parameterName("x"), c.punctuation(":"), c.keyword("any"), c.punctuation(")"), c.punctuation("{"),
|
|
c.keyword("var"), c.identifier("y"), c.operator("="), c.identifier("x"), c.operator("?"), c.identifier("x"), c.operator("++"), c.operator(":"), c.operator("++"), c.identifier("x"), c.punctuation(";"),
|
|
c.punctuation("}"),
|
|
c.comment("// end of file"));
|
|
|
|
const c2 = classification("2020");
|
|
verify.semanticClassificationsAre("2020",
|
|
c2.semanticToken("function.declaration", "myFunction"),
|
|
c2.semanticToken("parameter.declaration", "x"),
|
|
c2.semanticToken("variable.declaration.local", "y"),
|
|
c2.semanticToken("parameter", "x"),
|
|
c2.semanticToken("parameter", "x"),
|
|
c2.semanticToken("parameter", "x"),
|
|
);
|