TypeScript/tests/cases/fourslash/syntacticClassificationsFunctionWithComments.ts
Orta Therox db5368dc1d
Import the semantic highlighter from typescript-vscode-sh-plugin (#39119)
* 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>
2020-09-11 15:10:55 -04:00

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"),
);