@kroy665/code-editor-engine 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +127 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/__tests__/editor.spec.d.ts +2 -0
- package/dist/__tests__/editor.spec.d.ts.map +1 -0
- package/dist/__tests__/editor.spec.js +141 -0
- package/dist/__tests__/editor.spec.js.map +1 -0
- package/dist/core/CodeEditor.d.ts +70 -0
- package/dist/core/CodeEditor.d.ts.map +1 -0
- package/dist/core/CodeEditor.js +392 -0
- package/dist/core/CodeEditor.js.map +1 -0
- package/dist/core/CommandSystem.d.ts +158 -0
- package/dist/core/CommandSystem.d.ts.map +1 -0
- package/dist/core/CommandSystem.js +358 -0
- package/dist/core/CommandSystem.js.map +1 -0
- package/dist/core/EventSystem.d.ts +87 -0
- package/dist/core/EventSystem.d.ts.map +1 -0
- package/dist/core/EventSystem.js +330 -0
- package/dist/core/EventSystem.js.map +1 -0
- package/dist/core/TextDocument.d.ts +110 -0
- package/dist/core/TextDocument.d.ts.map +1 -0
- package/dist/core/TextDocument.js +340 -0
- package/dist/core/TextDocument.js.map +1 -0
- package/dist/index.d.ts +178 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +302 -0
- package/dist/index.js.map +1 -0
- package/dist/language/Extensions.d.ts +280 -0
- package/dist/language/Extensions.d.ts.map +1 -0
- package/dist/language/Extensions.js +368 -0
- package/dist/language/Extensions.js.map +1 -0
- package/dist/language/Tokenizer.d.ts +108 -0
- package/dist/language/Tokenizer.d.ts.map +1 -0
- package/dist/language/Tokenizer.js +630 -0
- package/dist/language/Tokenizer.js.map +1 -0
- package/dist/types/core.d.ts +355 -0
- package/dist/types/core.d.ts.map +1 -0
- package/dist/types/core.js +93 -0
- package/dist/types/core.js.map +1 -0
- package/package.json +82 -0
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExtensibleEditor = exports.BuiltInExtensions = exports.ExtensionLoader = exports.ExtensionHost = exports.ActivationEvent = void 0;
|
|
4
|
+
const EventSystem_1 = require("../core/EventSystem");
|
|
5
|
+
const CodeEditor_1 = require("../core/CodeEditor");
|
|
6
|
+
/**
|
|
7
|
+
* Extension activation events
|
|
8
|
+
*/
|
|
9
|
+
var ActivationEvent;
|
|
10
|
+
(function (ActivationEvent) {
|
|
11
|
+
ActivationEvent["OnStartup"] = "onStartup";
|
|
12
|
+
ActivationEvent["OnLanguage"] = "onLanguage";
|
|
13
|
+
ActivationEvent["OnCommand"] = "onCommand";
|
|
14
|
+
ActivationEvent["OnFileSystem"] = "onFileSystem";
|
|
15
|
+
ActivationEvent["OnDebug"] = "onDebug";
|
|
16
|
+
ActivationEvent["OnView"] = "onView";
|
|
17
|
+
})(ActivationEvent || (exports.ActivationEvent = ActivationEvent = {}));
|
|
18
|
+
/**
|
|
19
|
+
* Extension state storage
|
|
20
|
+
*/
|
|
21
|
+
class ExtensionMemento {
|
|
22
|
+
constructor() {
|
|
23
|
+
this.storage = new Map();
|
|
24
|
+
}
|
|
25
|
+
get(key, defaultValue) {
|
|
26
|
+
const value = this.storage.get(key);
|
|
27
|
+
return value !== undefined ? value : defaultValue;
|
|
28
|
+
}
|
|
29
|
+
async update(key, value) {
|
|
30
|
+
if (value === undefined) {
|
|
31
|
+
this.storage.delete(key);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
this.storage.set(key, value);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
keys() {
|
|
38
|
+
return Array.from(this.storage.keys());
|
|
39
|
+
}
|
|
40
|
+
clear() {
|
|
41
|
+
this.storage.clear();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Extension context implementation
|
|
46
|
+
*/
|
|
47
|
+
class ExtensionContextImpl {
|
|
48
|
+
constructor(extensionId, editor) {
|
|
49
|
+
this.extensionId = extensionId;
|
|
50
|
+
this.editor = editor;
|
|
51
|
+
this.disposables = new EventSystem_1.CompositeDisposable();
|
|
52
|
+
this.globalState = new ExtensionMemento();
|
|
53
|
+
this.workspaceState = new ExtensionMemento();
|
|
54
|
+
}
|
|
55
|
+
registerCommand(_commandId, command) {
|
|
56
|
+
const disposable = this.editor.registerCommand(command);
|
|
57
|
+
this.disposables.add(disposable);
|
|
58
|
+
return disposable;
|
|
59
|
+
}
|
|
60
|
+
registerLanguageService(service) {
|
|
61
|
+
const disposable = this.editor.registerLanguageService(service);
|
|
62
|
+
this.disposables.add(disposable);
|
|
63
|
+
return disposable;
|
|
64
|
+
}
|
|
65
|
+
registerTextDocumentProvider(_scheme, _provider) {
|
|
66
|
+
// In a full implementation, this would register with a document provider registry
|
|
67
|
+
const disposable = new EventSystem_1.DisposableImpl(() => {
|
|
68
|
+
// Cleanup provider registration
|
|
69
|
+
});
|
|
70
|
+
this.disposables.add(disposable);
|
|
71
|
+
return disposable;
|
|
72
|
+
}
|
|
73
|
+
dispose() {
|
|
74
|
+
this.disposables.dispose();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Extension host for managing extension lifecycle
|
|
79
|
+
*/
|
|
80
|
+
class ExtensionHost extends EventSystem_1.TypedEventEmitter {
|
|
81
|
+
constructor(editor) {
|
|
82
|
+
super();
|
|
83
|
+
this.editor = editor;
|
|
84
|
+
this.extensions = new Map();
|
|
85
|
+
this.contexts = new Map();
|
|
86
|
+
this.activatedExtensions = new Set();
|
|
87
|
+
this.disposables = new EventSystem_1.CompositeDisposable();
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Register an extension
|
|
91
|
+
*/
|
|
92
|
+
async registerExtension(extension) {
|
|
93
|
+
if (this.extensions.has(extension.id)) {
|
|
94
|
+
throw new Error(`Extension with id '${extension.id}' is already registered`);
|
|
95
|
+
}
|
|
96
|
+
this.extensions.set(extension.id, extension);
|
|
97
|
+
// Create extension context
|
|
98
|
+
const context = new ExtensionContextImpl(extension.id, this.editor);
|
|
99
|
+
this.contexts.set(extension.id, context);
|
|
100
|
+
// Auto-activate if no activation events specified
|
|
101
|
+
if (!extension.activationEvents || extension.activationEvents.length === 0) {
|
|
102
|
+
await this.activateExtension(extension.id);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Activate an extension
|
|
107
|
+
*/
|
|
108
|
+
async activateExtension(extensionId) {
|
|
109
|
+
if (this.activatedExtensions.has(extensionId)) {
|
|
110
|
+
return; // Already activated
|
|
111
|
+
}
|
|
112
|
+
const extension = this.extensions.get(extensionId);
|
|
113
|
+
if (!extension) {
|
|
114
|
+
throw new Error(`Extension '${extensionId}' not found`);
|
|
115
|
+
}
|
|
116
|
+
const context = this.contexts.get(extensionId);
|
|
117
|
+
if (!context) {
|
|
118
|
+
throw new Error(`Context for extension '${extensionId}' not found`);
|
|
119
|
+
}
|
|
120
|
+
try {
|
|
121
|
+
await extension.activate(context);
|
|
122
|
+
this.activatedExtensions.add(extensionId);
|
|
123
|
+
this.emit('extension-activated', { extension });
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
this.emit('extension-error', { extension, error: error });
|
|
127
|
+
throw error;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Deactivate an extension
|
|
132
|
+
*/
|
|
133
|
+
async deactivateExtension(extensionId) {
|
|
134
|
+
if (!this.activatedExtensions.has(extensionId)) {
|
|
135
|
+
return; // Not activated
|
|
136
|
+
}
|
|
137
|
+
const extension = this.extensions.get(extensionId);
|
|
138
|
+
if (!extension) {
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
const context = this.contexts.get(extensionId);
|
|
142
|
+
if (context) {
|
|
143
|
+
context.dispose();
|
|
144
|
+
}
|
|
145
|
+
try {
|
|
146
|
+
if (extension.deactivate) {
|
|
147
|
+
await extension.deactivate();
|
|
148
|
+
}
|
|
149
|
+
this.activatedExtensions.delete(extensionId);
|
|
150
|
+
this.emit('extension-deactivated', { extension });
|
|
151
|
+
}
|
|
152
|
+
catch (error) {
|
|
153
|
+
this.emit('extension-error', { extension, error: error });
|
|
154
|
+
throw error;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Get an extension by ID
|
|
159
|
+
*/
|
|
160
|
+
getExtension(extensionId) {
|
|
161
|
+
return this.extensions.get(extensionId);
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Get all registered extensions
|
|
165
|
+
*/
|
|
166
|
+
getAllExtensions() {
|
|
167
|
+
return Array.from(this.extensions.values());
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Get all activated extensions
|
|
171
|
+
*/
|
|
172
|
+
getActivatedExtensions() {
|
|
173
|
+
return Array.from(this.activatedExtensions)
|
|
174
|
+
.map((id) => this.extensions.get(id))
|
|
175
|
+
.filter((ext) => ext !== undefined);
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Check if an extension is activated
|
|
179
|
+
*/
|
|
180
|
+
isActivated(extensionId) {
|
|
181
|
+
return this.activatedExtensions.has(extensionId);
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Activate extensions based on event
|
|
185
|
+
*/
|
|
186
|
+
async activateByEvent(event) {
|
|
187
|
+
const toActivate = [];
|
|
188
|
+
for (const [id, extension] of this.extensions) {
|
|
189
|
+
if (this.activatedExtensions.has(id)) {
|
|
190
|
+
continue; // Already activated
|
|
191
|
+
}
|
|
192
|
+
if (extension.activationEvents?.includes(event)) {
|
|
193
|
+
toActivate.push(id);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
// Activate extensions in parallel
|
|
197
|
+
await Promise.allSettled(toActivate.map((id) => this.activateExtension(id)));
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Dispose the extension host
|
|
201
|
+
*/
|
|
202
|
+
dispose() {
|
|
203
|
+
// Deactivate all extensions
|
|
204
|
+
const activatedIds = Array.from(this.activatedExtensions);
|
|
205
|
+
for (const id of activatedIds) {
|
|
206
|
+
try {
|
|
207
|
+
this.deactivateExtension(id);
|
|
208
|
+
}
|
|
209
|
+
catch (error) {
|
|
210
|
+
console.error(`Error deactivating extension ${id}:`, error);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
this.disposables.dispose();
|
|
214
|
+
super.dispose();
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
exports.ExtensionHost = ExtensionHost;
|
|
218
|
+
/**
|
|
219
|
+
* Extension loader for loading extensions from manifests
|
|
220
|
+
*/
|
|
221
|
+
class ExtensionLoader {
|
|
222
|
+
constructor(extensionHost) {
|
|
223
|
+
this.extensionHost = extensionHost;
|
|
224
|
+
} // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
225
|
+
/**
|
|
226
|
+
* Load extension from manifest
|
|
227
|
+
*/
|
|
228
|
+
async loadFromManifest(manifest, extensionCode) {
|
|
229
|
+
// Validate manifest
|
|
230
|
+
this.validateManifest(manifest);
|
|
231
|
+
// Enhance extension with manifest data
|
|
232
|
+
const enhancedExtension = {
|
|
233
|
+
...extensionCode,
|
|
234
|
+
id: manifest.id,
|
|
235
|
+
name: manifest.name,
|
|
236
|
+
version: manifest.version,
|
|
237
|
+
...(manifest.description && { description: manifest.description }),
|
|
238
|
+
...(manifest.activationEvents && { activationEvents: manifest.activationEvents }),
|
|
239
|
+
};
|
|
240
|
+
// Register with extension host
|
|
241
|
+
await this.extensionHost.registerExtension(enhancedExtension);
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Load multiple extensions
|
|
245
|
+
*/
|
|
246
|
+
async loadExtensions(extensions) {
|
|
247
|
+
// Sort by dependencies (simplified - in production you'd need proper dependency resolution)
|
|
248
|
+
const sorted = this.sortByDependencies(extensions);
|
|
249
|
+
for (const { manifest, code } of sorted) {
|
|
250
|
+
try {
|
|
251
|
+
await this.loadFromManifest(manifest, code);
|
|
252
|
+
}
|
|
253
|
+
catch (error) {
|
|
254
|
+
console.error(`Failed to load extension ${manifest.id}:`, error);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
validateManifest(manifest) {
|
|
259
|
+
if (!manifest.id) {
|
|
260
|
+
throw new Error('Extension manifest must have an id');
|
|
261
|
+
}
|
|
262
|
+
if (!manifest.name) {
|
|
263
|
+
throw new Error('Extension manifest must have a name');
|
|
264
|
+
}
|
|
265
|
+
if (!manifest.version) {
|
|
266
|
+
throw new Error('Extension manifest must have a version');
|
|
267
|
+
}
|
|
268
|
+
// Validate semver
|
|
269
|
+
if (!/^\d+\.\d+\.\d+/.test(manifest.version)) {
|
|
270
|
+
throw new Error('Extension version must be a valid semver');
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
sortByDependencies(extensions) {
|
|
274
|
+
// Simplified dependency sorting - in production you'd implement proper topological sort
|
|
275
|
+
return extensions.sort((a, b) => {
|
|
276
|
+
const aDeps = Object.keys(a.manifest.dependencies || {}).length;
|
|
277
|
+
const bDeps = Object.keys(b.manifest.dependencies || {}).length;
|
|
278
|
+
return aDeps - bDeps;
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
exports.ExtensionLoader = ExtensionLoader;
|
|
283
|
+
/**
|
|
284
|
+
* Built-in extensions
|
|
285
|
+
*/
|
|
286
|
+
class BuiltInExtensions {
|
|
287
|
+
/**
|
|
288
|
+
* Create a basic language support extension
|
|
289
|
+
*/
|
|
290
|
+
static createLanguageExtension(languageId, languageName, languageService) {
|
|
291
|
+
return {
|
|
292
|
+
id: `builtin.${languageId}`,
|
|
293
|
+
name: `${languageName} Language Support`,
|
|
294
|
+
version: '1.0.0',
|
|
295
|
+
description: `Built-in ${languageName} language support`,
|
|
296
|
+
activationEvents: [`onLanguage:${languageId}`],
|
|
297
|
+
async activate(context) {
|
|
298
|
+
context.registerLanguageService(languageService);
|
|
299
|
+
},
|
|
300
|
+
};
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Create a basic commands extension
|
|
304
|
+
*/
|
|
305
|
+
static createCommandsExtension(commands) {
|
|
306
|
+
return {
|
|
307
|
+
id: 'builtin.commands',
|
|
308
|
+
name: 'Built-in Commands',
|
|
309
|
+
version: '1.0.0',
|
|
310
|
+
description: 'Essential editor commands',
|
|
311
|
+
async activate(context) {
|
|
312
|
+
for (const command of commands) {
|
|
313
|
+
context.registerCommand(command.id, command);
|
|
314
|
+
}
|
|
315
|
+
},
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Create a basic themes extension
|
|
320
|
+
*/
|
|
321
|
+
static createThemesExtension() {
|
|
322
|
+
return {
|
|
323
|
+
id: 'builtin.themes',
|
|
324
|
+
name: 'Built-in Themes',
|
|
325
|
+
version: '1.0.0',
|
|
326
|
+
description: 'Default editor themes',
|
|
327
|
+
async activate(_context) {
|
|
328
|
+
// In a full implementation, this would register theme providers
|
|
329
|
+
console.log('Themes extension activated');
|
|
330
|
+
},
|
|
331
|
+
};
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
exports.BuiltInExtensions = BuiltInExtensions;
|
|
335
|
+
/**
|
|
336
|
+
* Factory for creating extension-enabled editors
|
|
337
|
+
*/
|
|
338
|
+
class ExtensibleEditor {
|
|
339
|
+
static create(options = {}) {
|
|
340
|
+
const editor = new CodeEditor_1.CodeEditorEngine(options.editorOptions);
|
|
341
|
+
const extensionHost = new ExtensionHost(editor);
|
|
342
|
+
// Load built-in extensions if requested
|
|
343
|
+
if (options.builtInExtensions !== false) {
|
|
344
|
+
ExtensibleEditor.loadBuiltInExtensions(extensionHost);
|
|
345
|
+
}
|
|
346
|
+
// Load provided extensions
|
|
347
|
+
if (options.extensions) {
|
|
348
|
+
for (const extension of options.extensions) {
|
|
349
|
+
extensionHost.registerExtension(extension);
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
return { editor, extensionHost };
|
|
353
|
+
}
|
|
354
|
+
static async loadBuiltInExtensions(extensionHost) {
|
|
355
|
+
// Load built-in language extensions
|
|
356
|
+
const { TokenizerLanguageService } = require('./Tokenizer');
|
|
357
|
+
const jsExtension = BuiltInExtensions.createLanguageExtension('javascript', 'JavaScript', new TokenizerLanguageService('javascript'));
|
|
358
|
+
const tsExtension = BuiltInExtensions.createLanguageExtension('typescript', 'TypeScript', new TokenizerLanguageService('typescript'));
|
|
359
|
+
const pyExtension = BuiltInExtensions.createLanguageExtension('python', 'Python', new TokenizerLanguageService('python'));
|
|
360
|
+
await extensionHost.registerExtension(jsExtension);
|
|
361
|
+
await extensionHost.registerExtension(tsExtension);
|
|
362
|
+
await extensionHost.registerExtension(pyExtension);
|
|
363
|
+
// Activate language extensions
|
|
364
|
+
await extensionHost.activateByEvent('onStartup');
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
exports.ExtensibleEditor = ExtensibleEditor;
|
|
368
|
+
//# sourceMappingURL=Extensions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Extensions.js","sourceRoot":"","sources":["../../src/language/Extensions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { Token, TokenType, Range, TextDocument, LanguageService } from '../types/core';
|
|
2
|
+
/**
|
|
3
|
+
* Token with additional metadata for highlighting
|
|
4
|
+
*/
|
|
5
|
+
export interface EnhancedToken extends Token {
|
|
6
|
+
readonly priority: number;
|
|
7
|
+
readonly scopes: string[];
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Tokenization rule
|
|
11
|
+
*/
|
|
12
|
+
export interface TokenRule {
|
|
13
|
+
readonly pattern: RegExp;
|
|
14
|
+
readonly type: TokenType;
|
|
15
|
+
readonly priority?: number;
|
|
16
|
+
readonly scopes?: string[];
|
|
17
|
+
readonly push?: string;
|
|
18
|
+
readonly pop?: boolean;
|
|
19
|
+
readonly set?: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Language tokenization definition
|
|
23
|
+
*/
|
|
24
|
+
export interface LanguageDefinition {
|
|
25
|
+
readonly languageId: string;
|
|
26
|
+
readonly name: string;
|
|
27
|
+
readonly extensions: string[];
|
|
28
|
+
readonly states: Record<string, TokenRule[]>;
|
|
29
|
+
readonly defaultState: string;
|
|
30
|
+
readonly brackets?: BracketDefinition[];
|
|
31
|
+
readonly comments?: CommentDefinition;
|
|
32
|
+
readonly strings?: StringDefinition[];
|
|
33
|
+
readonly keywords?: string[];
|
|
34
|
+
readonly builtins?: string[];
|
|
35
|
+
readonly operators?: string[];
|
|
36
|
+
}
|
|
37
|
+
export interface BracketDefinition {
|
|
38
|
+
readonly open: string;
|
|
39
|
+
readonly close: string;
|
|
40
|
+
readonly type?: 'round' | 'square' | 'curly' | 'angle';
|
|
41
|
+
}
|
|
42
|
+
export interface CommentDefinition {
|
|
43
|
+
readonly line?: string;
|
|
44
|
+
readonly block?: {
|
|
45
|
+
start: string;
|
|
46
|
+
end: string;
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
export interface StringDefinition {
|
|
50
|
+
readonly delimiter: string;
|
|
51
|
+
readonly escape?: string;
|
|
52
|
+
readonly multiline?: boolean;
|
|
53
|
+
readonly raw?: boolean;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Fast, incremental tokenizer
|
|
57
|
+
*/
|
|
58
|
+
export declare class Tokenizer {
|
|
59
|
+
private readonly languageDefinitions;
|
|
60
|
+
private readonly tokenCache;
|
|
61
|
+
private readonly stateStack;
|
|
62
|
+
/**
|
|
63
|
+
* Register a language definition
|
|
64
|
+
*/
|
|
65
|
+
registerLanguage(definition: LanguageDefinition): void;
|
|
66
|
+
/**
|
|
67
|
+
* Get language definition
|
|
68
|
+
*/
|
|
69
|
+
getLanguage(languageId: string): LanguageDefinition | undefined;
|
|
70
|
+
/**
|
|
71
|
+
* Tokenize a document
|
|
72
|
+
*/
|
|
73
|
+
tokenize(document: TextDocument, range?: Range): EnhancedToken[];
|
|
74
|
+
/**
|
|
75
|
+
* Tokenize incrementally after a change
|
|
76
|
+
*/
|
|
77
|
+
tokenizeIncremental(document: TextDocument, _previousTokens: EnhancedToken[], _change: {
|
|
78
|
+
range: Range;
|
|
79
|
+
text: string;
|
|
80
|
+
}): EnhancedToken[];
|
|
81
|
+
private tokenizeWithLanguage;
|
|
82
|
+
private tokenizeLine;
|
|
83
|
+
private resolveTokenType;
|
|
84
|
+
private getTokenModifiers;
|
|
85
|
+
private tokenizeAsPlainText;
|
|
86
|
+
private getCacheKey;
|
|
87
|
+
private clearCacheForLanguage;
|
|
88
|
+
private clearCacheForDocument;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Built-in language definitions
|
|
92
|
+
*/
|
|
93
|
+
export declare class BuiltInLanguages {
|
|
94
|
+
static javascript(): LanguageDefinition;
|
|
95
|
+
static typescript(): LanguageDefinition;
|
|
96
|
+
static python(): LanguageDefinition;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Language service that provides tokenization
|
|
100
|
+
*/
|
|
101
|
+
export declare class TokenizerLanguageService implements LanguageService {
|
|
102
|
+
readonly languageId: string;
|
|
103
|
+
private tokenizer;
|
|
104
|
+
constructor(languageId: string);
|
|
105
|
+
tokenize(document: TextDocument, range?: Range): Promise<Token[]>;
|
|
106
|
+
registerLanguage(definition: LanguageDefinition): void;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=Tokenizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tokenizer.d.ts","sourceRoot":"","sources":["../../src/language/Tokenizer.ts"],"names":[],"mappings":"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"}
|