db5368dc1d
* 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.2 KiB
TypeScript
36 lines
1.2 KiB
TypeScript
/// <reference path="fourslash.ts"/>
|
|
|
|
//// // comment
|
|
//// module M {
|
|
//// var v = 0 + 1;
|
|
//// var s = "string";
|
|
////
|
|
//// class C<T> {
|
|
//// }
|
|
////
|
|
//// enum E {
|
|
//// }
|
|
////
|
|
//// interface I {
|
|
//// }
|
|
////
|
|
//// module M1.M2 {
|
|
//// }
|
|
//// }
|
|
|
|
const c = classification("original");
|
|
verify.syntacticClassificationsAre(
|
|
c.comment("// comment"),
|
|
c.keyword("module"), c.moduleName("M"), c.punctuation("{"),
|
|
c.keyword("var"), c.identifier("v"), c.operator("="), c.numericLiteral("0"), c.operator("+"), c.numericLiteral("1"), c.punctuation(";"),
|
|
c.keyword("var"), c.identifier("s"), c.operator("="), c.stringLiteral('"string"'), c.punctuation(";"),
|
|
c.keyword("class"), c.className("C"), c.punctuation("<"), c.typeParameterName("T"), c.punctuation(">"), c.punctuation("{"),
|
|
c.punctuation("}"),
|
|
c.keyword("enum"), c.enumName("E"), c.punctuation("{"),
|
|
c.punctuation("}"),
|
|
c.keyword("interface"), c.interfaceName("I"), c.punctuation("{"),
|
|
c.punctuation("}"),
|
|
c.keyword("module"), c.moduleName("M1"), c.punctuation("."), c.moduleName("M2"), c.punctuation("{"),
|
|
c.punctuation("}"),
|
|
c.punctuation("}"));
|