@finos/legend-lego 1.2.71 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/code-editor/CodeDiffView.d.ts +3 -1
- package/lib/code-editor/CodeDiffView.d.ts.map +1 -1
- package/lib/code-editor/CodeDiffView.js +6 -2
- package/lib/code-editor/CodeDiffView.js.map +1 -1
- package/lib/code-editor/CodeEditor.d.ts +8 -2
- package/lib/code-editor/CodeEditor.d.ts.map +1 -1
- package/lib/code-editor/CodeEditor.js +42 -4
- package/lib/code-editor/CodeEditor.js.map +1 -1
- package/lib/code-editor/index.d.ts +0 -5
- package/lib/code-editor/index.d.ts.map +1 -1
- package/lib/code-editor/index.js +0 -5
- package/lib/code-editor/index.js.map +1 -1
- package/lib/index.css +1 -1
- package/package.json +29 -29
- package/src/code-editor/CodeDiffView.tsx +10 -3
- package/src/code-editor/CodeEditor.tsx +69 -4
- package/src/code-editor/index.ts +0 -6
- package/tsconfig.json +1 -15
- package/lib/code-editor/CodeEditorTheme.d.ts +0 -41
- package/lib/code-editor/CodeEditorTheme.d.ts.map +0 -1
- package/lib/code-editor/CodeEditorTheme.js +0 -99
- package/lib/code-editor/CodeEditorTheme.js.map +0 -1
- package/lib/code-editor/CodeEditorUtils.d.ts +0 -74
- package/lib/code-editor/CodeEditorUtils.d.ts.map +0 -1
- package/lib/code-editor/CodeEditorUtils.js +0 -203
- package/lib/code-editor/CodeEditorUtils.js.map +0 -1
- package/lib/code-editor/PureLanguage.d.ts +0 -38
- package/lib/code-editor/PureLanguage.d.ts.map +0 -1
- package/lib/code-editor/PureLanguage.js +0 -39
- package/lib/code-editor/PureLanguage.js.map +0 -1
- package/lib/code-editor/PureLanguageCodeEditorSupport.d.ts +0 -71
- package/lib/code-editor/PureLanguageCodeEditorSupport.d.ts.map +0 -1
- package/lib/code-editor/PureLanguageCodeEditorSupport.js +0 -238
- package/lib/code-editor/PureLanguageCodeEditorSupport.js.map +0 -1
- package/lib/code-editor/PureLanguageService.d.ts +0 -19
- package/lib/code-editor/PureLanguageService.d.ts.map +0 -1
- package/lib/code-editor/PureLanguageService.js +0 -373
- package/lib/code-editor/PureLanguageService.js.map +0 -1
- package/lib/code-editor/themes/Github-Theme-dark-dimmed.json +0 -613
- package/lib/code-editor/themes/Github-Theme-dark.json +0 -513
- package/lib/code-editor/themes/Github-Theme-light.json +0 -598
- package/lib/code-editor/themes/Material-Theme-Darker.json +0 -816
- package/lib/code-editor/themes/Material-Theme-Default.json +0 -816
- package/lib/code-editor/themes/MonacoEditorThemeUtils.d.ts +0 -31
- package/lib/code-editor/themes/MonacoEditorThemeUtils.d.ts.map +0 -1
- package/lib/code-editor/themes/MonacoEditorThemeUtils.js +0 -88
- package/lib/code-editor/themes/MonacoEditorThemeUtils.js.map +0 -1
- package/lib/code-editor/themes/OneDark-Pro-darker.json +0 -2061
- package/lib/code-editor/themes/OneDark-Pro.json +0 -2090
- package/lib/code-editor/themes/solarized-dark-color-theme.json +0 -398
- package/src/code-editor/CodeEditorTheme.ts +0 -151
- package/src/code-editor/CodeEditorUtils.ts +0 -336
- package/src/code-editor/PureLanguage.ts +0 -42
- package/src/code-editor/PureLanguageCodeEditorSupport.ts +0 -341
- package/src/code-editor/PureLanguageService.ts +0 -416
- package/src/code-editor/themes/Github-Theme-dark-dimmed.json +0 -613
- package/src/code-editor/themes/Github-Theme-dark.json +0 -513
- package/src/code-editor/themes/Github-Theme-light.json +0 -598
- package/src/code-editor/themes/Material-Theme-Darker.json +0 -816
- package/src/code-editor/themes/Material-Theme-Default.json +0 -816
- package/src/code-editor/themes/MonacoEditorThemeUtils.ts +0 -128
- package/src/code-editor/themes/OneDark-Pro-darker.json +0 -2061
- package/src/code-editor/themes/OneDark-Pro.json +0 -2090
- package/src/code-editor/themes/README.md +0 -8
- package/src/code-editor/themes/solarized-dark-color-theme.json +0 -423
@@ -1,336 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Copyright (c) 2020-present, Goldman Sachs
|
3
|
-
*
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
-
* you may not use this file except in compliance with the License.
|
6
|
-
* You may obtain a copy of the License at
|
7
|
-
*
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
9
|
-
*
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
-
* See the License for the specific language governing permissions and
|
14
|
-
* limitations under the License.
|
15
|
-
*/
|
16
|
-
|
17
|
-
import {
|
18
|
-
APPLICATION_EVENT,
|
19
|
-
DEFAULT_MONOSPACED_FONT_FAMILY,
|
20
|
-
type GenericLegendApplicationStore,
|
21
|
-
} from '@finos/legend-application';
|
22
|
-
import { LogEvent } from '@finos/legend-shared';
|
23
|
-
import {
|
24
|
-
editor as monacoEditorAPI,
|
25
|
-
KeyCode,
|
26
|
-
KeyMod,
|
27
|
-
MarkerSeverity,
|
28
|
-
} from 'monaco-editor';
|
29
|
-
import {
|
30
|
-
CODE_EDITOR_THEME,
|
31
|
-
DEFAULT_DARK_THEME,
|
32
|
-
GITHUB_DARK_DIMMED_THEME,
|
33
|
-
GITHUB_DARK_THEME,
|
34
|
-
GITHUB_LIGHT_THEME,
|
35
|
-
MATERIAL_DARKER_THEME,
|
36
|
-
MATERIAL_DEFAULT_THEME,
|
37
|
-
ONE_DARK_PRO_DARKER_THEME,
|
38
|
-
ONE_DARK_PRO_THEME,
|
39
|
-
SOLARIZED_DARK_THEME,
|
40
|
-
} from './CodeEditorTheme.js';
|
41
|
-
|
42
|
-
export type CodeEditorPosition = {
|
43
|
-
lineNumber: number;
|
44
|
-
column: number;
|
45
|
-
};
|
46
|
-
|
47
|
-
/**
|
48
|
-
* Normally `monaco-editor` worker disposes after 5 minutes staying idle, but we fasten
|
49
|
-
* this pace just in case the usage of the editor causes memory-leak somehow
|
50
|
-
*/
|
51
|
-
export const disposeCodeEditor = (
|
52
|
-
editor: monacoEditorAPI.IStandaloneCodeEditor,
|
53
|
-
): void => {
|
54
|
-
editor.dispose();
|
55
|
-
// NOTE: just to be sure, we dispose the model after disposing the editor
|
56
|
-
editor.getModel()?.dispose();
|
57
|
-
};
|
58
|
-
|
59
|
-
export const disposeDiffCodeEditor = (
|
60
|
-
editor: monacoEditorAPI.IStandaloneDiffEditor,
|
61
|
-
): void => {
|
62
|
-
editor.dispose();
|
63
|
-
editor.getOriginalEditor().getModel()?.dispose();
|
64
|
-
editor.getModifiedEditor().getModel()?.dispose();
|
65
|
-
};
|
66
|
-
|
67
|
-
/**
|
68
|
-
* Get the text value with LF line ending.
|
69
|
-
* This is needed since if there are CR `\r` characters in the text input
|
70
|
-
* (e.g. users of Windows doing copy/paste)
|
71
|
-
* the default mode of `monaco-editor` is `TextDefined` which means if the text
|
72
|
-
* contains CR character(s), it will automatically be treated as CRLF. As such, we want
|
73
|
-
* an utility method to extract the text value with line ending option LF
|
74
|
-
* to force omission of CR characters
|
75
|
-
* See https://github.com/finos/legend-studio/issues/608
|
76
|
-
*/
|
77
|
-
export const getCodeEditorValue = (
|
78
|
-
editor: monacoEditorAPI.IStandaloneCodeEditor,
|
79
|
-
): string =>
|
80
|
-
editor.getModel()?.getValue(monacoEditorAPI.EndOfLinePreference.LF) ?? '';
|
81
|
-
|
82
|
-
export const getBaseCodeEditorOptions =
|
83
|
-
(): monacoEditorAPI.IStandaloneEditorConstructionOptions =>
|
84
|
-
({
|
85
|
-
contextmenu: false,
|
86
|
-
copyWithSyntaxHighlighting: false,
|
87
|
-
// NOTE: These following font options are needed (and CSS font-size option `.monaco-editor * { font-size: ... }` as well)
|
88
|
-
// in order to make the editor appear properly on multiple platform, the ligatures option is needed for Mac to display properly
|
89
|
-
// otherwise the cursor position relatively to text would be off
|
90
|
-
// Another potential cause for this misaligment is that the fonts are being lazy-loaded and made available after `monaco-editor`
|
91
|
-
// calculated the font-width, for this, we can use `remeasureFonts`, but our case here, `fontLigatures: true` seems
|
92
|
-
// to do the trick
|
93
|
-
// See https://github.com/microsoft/monaco-editor/issues/392
|
94
|
-
fontSize: 14,
|
95
|
-
// Enforce a fixed font-family to make cross platform display consistent (i.e. Mac defaults to use `Menlo` which is bigger than
|
96
|
-
// `Consolas` on Windows, etc.)
|
97
|
-
fontFamily: 'Roboto Mono',
|
98
|
-
// Enable font ligature: glyphs which combine the shapes of certain sequences of characters into a new form that makes for
|
99
|
-
// a more harmonious reading experience.
|
100
|
-
fontLigatures: true,
|
101
|
-
// Make sure hover or widget shown near boundary are not truncated by setting their position to `fixed`
|
102
|
-
fixedOverflowWidgets: true,
|
103
|
-
detectIndentation: false, // i.e. so we can force tab-size
|
104
|
-
tabSize: 2,
|
105
|
-
// The typing is currently not correct for `bracketPairColorization`, until this is fixed, we will remove the cast
|
106
|
-
// See https://github.com/microsoft/monaco-editor/issues/3013
|
107
|
-
'bracketPairColorization.enabled': false,
|
108
|
-
automaticLayout: true,
|
109
|
-
}) as monacoEditorAPI.IStandaloneEditorConstructionOptions;
|
110
|
-
|
111
|
-
export const getBaseConsoleOptions =
|
112
|
-
(): monacoEditorAPI.IStandaloneEditorConstructionOptions => ({
|
113
|
-
...getBaseCodeEditorOptions(),
|
114
|
-
fontSize: 12,
|
115
|
-
extraEditorClassName: 'monaco-editor--small-font',
|
116
|
-
readOnly: true,
|
117
|
-
glyphMargin: false,
|
118
|
-
folding: false,
|
119
|
-
lineNumbers: 'off',
|
120
|
-
lineDecorationsWidth: 10,
|
121
|
-
lineNumbersMinChars: 0,
|
122
|
-
minimap: {
|
123
|
-
enabled: false,
|
124
|
-
},
|
125
|
-
guides: {
|
126
|
-
bracketPairs: false,
|
127
|
-
bracketPairsHorizontal: false,
|
128
|
-
highlightActiveBracketPair: false,
|
129
|
-
indentation: false,
|
130
|
-
highlightActiveIndentation: false,
|
131
|
-
},
|
132
|
-
renderLineHighlight: 'none',
|
133
|
-
});
|
134
|
-
|
135
|
-
export const moveCursorToPosition = (
|
136
|
-
editor: monacoEditorAPI.ICodeEditor,
|
137
|
-
position: CodeEditorPosition,
|
138
|
-
): void => {
|
139
|
-
if (!editor.hasTextFocus()) {
|
140
|
-
editor.focus();
|
141
|
-
} // focus the editor first so that it can shows the cursor
|
142
|
-
editor.revealPositionInCenter(position, 0);
|
143
|
-
editor.setPosition(position);
|
144
|
-
};
|
145
|
-
|
146
|
-
const INTERNAL__DUMMY_PROBLEM_MARKER_OWNER = 'dummy_problem_marker_owner';
|
147
|
-
|
148
|
-
export const setErrorMarkers = (
|
149
|
-
editorModel: monacoEditorAPI.ITextModel,
|
150
|
-
errors: {
|
151
|
-
message: string;
|
152
|
-
startLineNumber: number;
|
153
|
-
startColumn: number;
|
154
|
-
endLineNumber: number;
|
155
|
-
endColumn: number;
|
156
|
-
}[],
|
157
|
-
ownerId?: string,
|
158
|
-
): void => {
|
159
|
-
monacoEditorAPI.setModelMarkers(
|
160
|
-
editorModel,
|
161
|
-
ownerId ?? INTERNAL__DUMMY_PROBLEM_MARKER_OWNER,
|
162
|
-
errors.map((error) => ({
|
163
|
-
startLineNumber: error.startLineNumber,
|
164
|
-
startColumn: error.startColumn,
|
165
|
-
endLineNumber: error.endLineNumber,
|
166
|
-
endColumn: error.endColumn + 1, // add a 1 to endColumn as monaco editor range is not inclusive
|
167
|
-
// NOTE: when the message is empty, no error tooltip is shown, we want to avoid this
|
168
|
-
message: error.message === '' ? '(no error message)' : error.message,
|
169
|
-
severity: MarkerSeverity.Error,
|
170
|
-
})),
|
171
|
-
);
|
172
|
-
};
|
173
|
-
|
174
|
-
export const setWarningMarkers = (
|
175
|
-
editorModel: monacoEditorAPI.ITextModel,
|
176
|
-
warnings: {
|
177
|
-
message: string;
|
178
|
-
startLineNumber: number;
|
179
|
-
startColumn: number;
|
180
|
-
endLineNumber: number;
|
181
|
-
endColumn: number;
|
182
|
-
}[],
|
183
|
-
ownerId?: string,
|
184
|
-
): void => {
|
185
|
-
monacoEditorAPI.setModelMarkers(
|
186
|
-
editorModel,
|
187
|
-
ownerId ?? INTERNAL__DUMMY_PROBLEM_MARKER_OWNER,
|
188
|
-
warnings.map((warning) => ({
|
189
|
-
startLineNumber: warning.startLineNumber,
|
190
|
-
startColumn: warning.startColumn,
|
191
|
-
endColumn: warning.endColumn,
|
192
|
-
endLineNumber: warning.endLineNumber,
|
193
|
-
message:
|
194
|
-
warning.message === '' ? '(no warning message)' : warning.message,
|
195
|
-
severity: MarkerSeverity.Warning,
|
196
|
-
})),
|
197
|
-
);
|
198
|
-
};
|
199
|
-
|
200
|
-
export const clearMarkers = (ownerId?: string): void => {
|
201
|
-
monacoEditorAPI.removeAllMarkers(
|
202
|
-
ownerId ?? INTERNAL__DUMMY_PROBLEM_MARKER_OWNER,
|
203
|
-
);
|
204
|
-
};
|
205
|
-
|
206
|
-
/**
|
207
|
-
* This method eliminates CR '\r' character(s) in the provided text value.
|
208
|
-
*/
|
209
|
-
export const normalizeLineEnding = (val: string): string =>
|
210
|
-
val.replace(/\r/g, '');
|
211
|
-
|
212
|
-
// We need to dynamically adjust the width of the line number gutter, otherwise as the document gets
|
213
|
-
// larger, the left margin will start to shrink
|
214
|
-
// See https://github.com/microsoft/monaco-editor/issues/2206
|
215
|
-
export const resetLineNumberGutterWidth = (
|
216
|
-
editor: monacoEditorAPI.ICodeEditor,
|
217
|
-
): void => {
|
218
|
-
const currentValue = editor.getValue();
|
219
|
-
editor.updateOptions({
|
220
|
-
lineNumbersMinChars: Math.max(
|
221
|
-
Math.floor(Math.log10(currentValue.split(/\r\n|\r|\n/g).length)) + 3,
|
222
|
-
5,
|
223
|
-
),
|
224
|
-
});
|
225
|
-
};
|
226
|
-
|
227
|
-
export const configureCodeEditorComponent = async (
|
228
|
-
applicationStore: GenericLegendApplicationStore,
|
229
|
-
): Promise<void> => {
|
230
|
-
/**
|
231
|
-
* Since we use a custom fonts for text-editor, we want to make sure the font is loaded before any text-editor is opened
|
232
|
-
* this is to ensure
|
233
|
-
*/
|
234
|
-
const fontLoadFailureErrorMessage = `Monospaced font '${DEFAULT_MONOSPACED_FONT_FAMILY}' has not been loaded properly, code editor might not display properly`;
|
235
|
-
await Promise.all(
|
236
|
-
[400, 700].map((weight) =>
|
237
|
-
document.fonts.load(`${weight} 1em ${DEFAULT_MONOSPACED_FONT_FAMILY}`),
|
238
|
-
),
|
239
|
-
)
|
240
|
-
.then(() => {
|
241
|
-
if (document.fonts.check(`1em ${DEFAULT_MONOSPACED_FONT_FAMILY}`)) {
|
242
|
-
monacoEditorAPI.remeasureFonts();
|
243
|
-
} else {
|
244
|
-
applicationStore.logService.error(
|
245
|
-
LogEvent.create(APPLICATION_EVENT.APPLICATION_SETUP__FAILURE),
|
246
|
-
fontLoadFailureErrorMessage,
|
247
|
-
);
|
248
|
-
}
|
249
|
-
})
|
250
|
-
.catch(() =>
|
251
|
-
applicationStore.logService.error(
|
252
|
-
LogEvent.create(APPLICATION_EVENT.APPLICATION_SETUP__FAILURE),
|
253
|
-
fontLoadFailureErrorMessage,
|
254
|
-
),
|
255
|
-
);
|
256
|
-
|
257
|
-
// override native hotkeys supported by monaco-editor
|
258
|
-
// here we map these keys to a dummy command that would just dispatch the key combination
|
259
|
-
// to the application keyboard shortcut service, effectively bypassing the command associated
|
260
|
-
// with the native keybinding
|
261
|
-
const OVERRIDE_DEFAULT_KEYBINDING_COMMAND =
|
262
|
-
'legend.code-editor.override-default-keybinding';
|
263
|
-
monacoEditorAPI.registerCommand(
|
264
|
-
OVERRIDE_DEFAULT_KEYBINDING_COMMAND,
|
265
|
-
(accessor, ...args) => {
|
266
|
-
applicationStore.keyboardShortcutsService.dispatch(args[0]);
|
267
|
-
},
|
268
|
-
);
|
269
|
-
const hotkeyMapping: [number, string][] = [
|
270
|
-
[KeyCode.F1, 'F1'], // show command center
|
271
|
-
[KeyCode.F8, 'F8'], // show error
|
272
|
-
[KeyCode.F9, 'F9'], // toggle debugger breakpoint
|
273
|
-
[KeyMod.WinCtrl | KeyCode.KeyG, 'Control+KeyG'], // go-to line command
|
274
|
-
[KeyMod.WinCtrl | KeyCode.KeyB, 'Control+KeyB'], // cursor move (core command)
|
275
|
-
[KeyMod.WinCtrl | KeyCode.KeyO, 'Control+KeyO'], // cursor move (core command)
|
276
|
-
[KeyMod.WinCtrl | KeyCode.KeyD, 'Control+KeyD'], // cursor move (core command)
|
277
|
-
[KeyMod.WinCtrl | KeyCode.KeyP, 'Control+KeyP'], // cursor move (core command)
|
278
|
-
[KeyMod.Shift | KeyCode.F10, 'Shift+F10'], // show editor context menu
|
279
|
-
[KeyMod.WinCtrl | KeyCode.F2, 'Control+F2'], // change all instances
|
280
|
-
[KeyMod.WinCtrl | KeyCode.F12, 'Control+F12'], // go-to definition
|
281
|
-
];
|
282
|
-
monacoEditorAPI.addKeybindingRules(
|
283
|
-
hotkeyMapping.map(([nativeCodeEditorKeyBinding, keyCombination]) => ({
|
284
|
-
keybinding: nativeCodeEditorKeyBinding,
|
285
|
-
command: OVERRIDE_DEFAULT_KEYBINDING_COMMAND,
|
286
|
-
commandArgs: keyCombination,
|
287
|
-
})),
|
288
|
-
);
|
289
|
-
|
290
|
-
// themes
|
291
|
-
monacoEditorAPI.defineTheme(
|
292
|
-
CODE_EDITOR_THEME.DEFAULT_DARK,
|
293
|
-
DEFAULT_DARK_THEME,
|
294
|
-
);
|
295
|
-
monacoEditorAPI.defineTheme(
|
296
|
-
CODE_EDITOR_THEME.SOLARIZED_DARK,
|
297
|
-
SOLARIZED_DARK_THEME,
|
298
|
-
);
|
299
|
-
monacoEditorAPI.defineTheme(CODE_EDITOR_THEME.GITHUB_DARK, GITHUB_DARK_THEME);
|
300
|
-
monacoEditorAPI.defineTheme(
|
301
|
-
CODE_EDITOR_THEME.GITHUB_DARK_DIMMED,
|
302
|
-
GITHUB_DARK_DIMMED_THEME,
|
303
|
-
);
|
304
|
-
monacoEditorAPI.defineTheme(
|
305
|
-
CODE_EDITOR_THEME.GITHUB_LIGHT,
|
306
|
-
GITHUB_LIGHT_THEME,
|
307
|
-
);
|
308
|
-
monacoEditorAPI.defineTheme(
|
309
|
-
CODE_EDITOR_THEME.MATERIAL_DEFAULT,
|
310
|
-
MATERIAL_DEFAULT_THEME,
|
311
|
-
);
|
312
|
-
monacoEditorAPI.defineTheme(
|
313
|
-
CODE_EDITOR_THEME.MATERIAL_DARKER,
|
314
|
-
MATERIAL_DARKER_THEME,
|
315
|
-
);
|
316
|
-
monacoEditorAPI.defineTheme(
|
317
|
-
CODE_EDITOR_THEME.ONE_DARK_PRO,
|
318
|
-
ONE_DARK_PRO_THEME,
|
319
|
-
);
|
320
|
-
monacoEditorAPI.defineTheme(
|
321
|
-
CODE_EDITOR_THEME.ONE_DARK_PRO_DARKER,
|
322
|
-
ONE_DARK_PRO_DARKER_THEME,
|
323
|
-
);
|
324
|
-
};
|
325
|
-
|
326
|
-
export enum CODE_EDITOR_LANGUAGE {
|
327
|
-
TEXT = 'plaintext',
|
328
|
-
PURE = 'pure',
|
329
|
-
JSON = 'json',
|
330
|
-
JAVA = 'java',
|
331
|
-
MARKDOWN = 'markdown',
|
332
|
-
SQL = 'sql',
|
333
|
-
XML = 'xml',
|
334
|
-
YAML = 'yaml',
|
335
|
-
GRAPHQL = 'graphql',
|
336
|
-
}
|
@@ -1,42 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Copyright (c) 2020-present, Goldman Sachs
|
3
|
-
*
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
-
* you may not use this file except in compliance with the License.
|
6
|
-
* You may obtain a copy of the License at
|
7
|
-
*
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
9
|
-
*
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
-
* See the License for the specific language governing permissions and
|
14
|
-
* limitations under the License.
|
15
|
-
*/
|
16
|
-
|
17
|
-
export enum PURE_GRAMMAR_TOKEN {
|
18
|
-
WHITESPACE = '',
|
19
|
-
|
20
|
-
KEYWORD = 'keyword',
|
21
|
-
IDENTIFIER = 'identifier',
|
22
|
-
OPERATOR = 'operator',
|
23
|
-
DELIMITER = 'delimiter',
|
24
|
-
|
25
|
-
PARSER = 'parser',
|
26
|
-
NUMBER = 'number',
|
27
|
-
DATE = 'date',
|
28
|
-
COLOR = 'color',
|
29
|
-
PACKAGE = 'package',
|
30
|
-
STRING = 'string',
|
31
|
-
COMMENT = 'comment',
|
32
|
-
|
33
|
-
LANGUAGE_STRUCT = 'language-struct',
|
34
|
-
MULTIPLICITY = 'multiplicity',
|
35
|
-
GENERICS = 'generics',
|
36
|
-
PROPERTY = 'property',
|
37
|
-
PARAMETER = 'parameter',
|
38
|
-
VARIABLE = 'variable',
|
39
|
-
TYPE = 'type',
|
40
|
-
|
41
|
-
INVALID = 'invalid',
|
42
|
-
}
|