-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.mjs
98 lines (94 loc) · 5.6 KB
/
build.mjs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
import * as fs from 'fs';
import * as path from 'path';
import {
identifier,
list,
destructure,
} from './src/patterns/index.js';
import * as Pattern from './src/patterns/index.js';
import {DELIMS} from './src/selectors.js';
await fs.promises.writeFile(path.join(path.dirname(new URL(import.meta.url).pathname), 'syntaxes', 'cp.tmLanguage.json'), JSON.stringify({
$schema: 'https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json',
name: 'Counterpoint',
scopeName: 'source.cp',
repository: {
Arguments: Pattern.ARGUMENTS,
Block: Pattern.BLOCK,
Captures: list('meta.captures.cp', DELIMS.CAPTURES[0], DELIMS.CAPTURES[1], [identifier()]),
ClassBody: Pattern.CLASS_BODY,
CommentBlock: Pattern.COMMENT_BLOCK,
CommentLine: Pattern.COMMENT_LINE,
ConstructorField: Pattern.CONSTRUCTOR_FIELD,
ConstructorParameters: list('meta.parameters.cp', DELIMS.PARAMS_FN[0], DELIMS.PARAMS_FN[1], [{include: '#ConstructorField'}, {include: '#ParameterPatterns'}]),
Declaration: Pattern.DECLARATION,
DeclarationAssignment: Pattern.DECLARATION__ASSIGNMENT,
DeclarationClaim: Pattern.DECLARATION__CLAIM,
DeclarationClass: Pattern.DECLARATION__CLASS,
DeclarationFunc: Pattern.DECLARATION__FUNC,
DeclarationInterface: Pattern.DECLARATION__INTERFACE,
DeclarationLet: Pattern.DECLARATION__LET,
DeclarationType: Pattern.DECLARATION__TYPE,
DeclarationTypefunc: Pattern.DECLARATION__TYPEFUNC,
DestructureArgument: destructure('Argument', {include: '#IdentifierParameter'}),
DestructureAssignment: destructure('Assignment', {include: '#ExpressionAssignee'}),
DestructureParameter: destructure('Parameter', {include: '#IdentifierParameter'}, true),
DestructureProperty: destructure('Property', {include: '#IdentifierProperty'}),
DestructureVariable: destructure('Variable', {include: '#IdentifierVariable'}, true),
Expression: Pattern.EXPRESSION,
ExpressionAccess: Pattern.EXPRESSION__ACCESS,
ExpressionAssignee: Pattern.EXPRESSION__ASSIGNEE,
ExpressionCall: Pattern.EXPRESSION__CALL,
ExpressionClaim: Pattern.EXPRESSION__CLAIM,
ExpressionClass: Pattern.EXPRESSION__CLASS,
ExpressionFunction: Pattern.EXPRESSION__FUNCTION,
ExpressionStructureGrouping: Pattern.EXPRESSION__STRUCTURE__GROUPING,
ExpressionStructureList: Pattern.EXPRESSION__STRUCTURE__LIST,
ExpressionStructureSet: Pattern.EXPRESSION__STRUCTURE__SET,
GenericArguments: list('meta.genericarguments.cp', DELIMS.ARGS_GN[0], DELIMS.ARGS_GN[1], [{include: '#Type'}]),
GenericParameterPatterns: Pattern.GENERIC_PARAMETER_PATTERNS,
GenericParameters: list('meta.genericparameters.cp', DELIMS.PARAMS_GN[0], DELIMS.PARAMS_GN[1], [{include: '#GenericParameterPatterns'}]),
Heritage: Pattern.HERITAGE,
IdentifierClass: identifier('entity.name.class', true),
IdentifierFunction: identifier('entity.name.function', true),
IdentifierParameter: identifier('variable.parameter', true),
IdentifierProperty: identifier('entity.name.method', true),
IdentifierType: identifier('entity.name.type', true),
IdentifierVariable: identifier('entity.name.variable', true),
Keyword: Pattern.KEYWORD,
MemberConstructor: Pattern.MEMBER__CONSTRUCTOR,
MemberConstructorgroup: Pattern.MEMBER__CONSTRUCTORGROUP,
MemberField: Pattern.MEMBER__FIELD,
MemberMethod: Pattern.MEMBER__METHOD,
MemberMethodgroup: Pattern.MEMBER__METHODGROUP,
Number: Pattern.NUMBER,
ParameterPatterns: Pattern.PARAMETER_PATTERNS,
Parameters: list('meta.parameters.cp', DELIMS.PARAMS_FN[0], DELIMS.PARAMS_FN[1], [{include: '#ParameterPatterns'}]),
PossibleGenericParameter: Pattern.POSSIBLE_GENERIC_PARAMETER,
PossibleParameter: Pattern.POSSIBLE_PARAMETER,
PossibleTypeParameter: Pattern.POSSIBLE_TYPE_PARAMETER,
Statement: Pattern.STATEMENT,
StatementControl: Pattern.STATEMENT__CONTROL,
StatementControlConditional: Pattern.STATEMENT__CONTROL__CONDITIONAL,
StatementExport: Pattern.STATEMENT__EXPORT,
StatementImport: Pattern.STATEMENT__IMPORT,
StaticBlock: Pattern.STATIC__BLOCK,
String: Pattern.STRING,
Template: Pattern.TEMPLATE,
Type: Pattern.TYPE,
TypeAccess: Pattern.TYPE__ACCESS,
TypeCall: Pattern.TYPE_CALL,
TypeFunction: Pattern.TYPE__FUNCTION,
TypeInterface: Pattern.TYPE__INTERFACE,
TypeParameterPatterns: Pattern.TYPE_PARAMETER_PATTERNS,
TypeParameters: list('meta.parameters.cp', DELIMS.PARAMS_FN[0], DELIMS.PARAMS_FN[1], [{include: '#TypeParameterPatterns'}]),
TypeStructureGrouping: Pattern.TYPE__STRUCTURE__GROUPING,
TypeStructureList: Pattern.TYPE__STRUCTURE__LIST,
TypeStructureSet: Pattern.TYPE__STRUCTURE__SET,
Typenonfunction: Pattern.TYPENONFUNCTION,
},
patterns: [
{include: '#Block'},
{include: '#Declaration'},
{include: '#Statement'},
],
}));