@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,340 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TextDocumentImpl = exports.LineBuffer = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Efficient line-based text representation using a rope-like structure
|
|
6
|
+
* Optimized for typical code editing operations
|
|
7
|
+
*/
|
|
8
|
+
class LineBuffer {
|
|
9
|
+
constructor(content = '', lineEnding = '\n') {
|
|
10
|
+
this.lines = [''];
|
|
11
|
+
this._version = 0;
|
|
12
|
+
this._lineEndings = '\n'; // Default line ending
|
|
13
|
+
this._lineEndings = lineEnding;
|
|
14
|
+
this.setText(content);
|
|
15
|
+
}
|
|
16
|
+
get version() {
|
|
17
|
+
return this._version;
|
|
18
|
+
}
|
|
19
|
+
get lineCount() {
|
|
20
|
+
return this.lines.length;
|
|
21
|
+
}
|
|
22
|
+
get lineEndings() {
|
|
23
|
+
return this._lineEndings;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Get the full text content
|
|
27
|
+
*/
|
|
28
|
+
getText() {
|
|
29
|
+
return this.lines.join(this._lineEndings);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Get text within a specific range
|
|
33
|
+
*/
|
|
34
|
+
getTextRange(range) {
|
|
35
|
+
const { start, end } = this.validateRange(range);
|
|
36
|
+
if (start.line === end.line) {
|
|
37
|
+
return this.lines[start.line].substring(start.column, end.column);
|
|
38
|
+
}
|
|
39
|
+
const result = [];
|
|
40
|
+
// First line
|
|
41
|
+
result.push(this.lines[start.line].substring(start.column));
|
|
42
|
+
// Middle lines
|
|
43
|
+
for (let i = start.line + 1; i < end.line; i++) {
|
|
44
|
+
result.push(this.lines[i]);
|
|
45
|
+
}
|
|
46
|
+
// Last line
|
|
47
|
+
result.push(this.lines[end.line].substring(0, end.column));
|
|
48
|
+
return result.join(this._lineEndings);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Get content of a specific line
|
|
52
|
+
*/
|
|
53
|
+
getLineContent(line) {
|
|
54
|
+
if (line < 0 || line >= this.lines.length) {
|
|
55
|
+
throw new Error(`Line ${line} is out of bounds (0-${this.lines.length - 1})`);
|
|
56
|
+
}
|
|
57
|
+
return this.lines[line];
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Get line length including line ending
|
|
61
|
+
*/
|
|
62
|
+
getLineLength(line) {
|
|
63
|
+
const content = this.getLineContent(line);
|
|
64
|
+
const isLastLine = line === this.lines.length - 1;
|
|
65
|
+
return content.length + (isLastLine ? 0 : this._lineEndings.length);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Set the entire text content
|
|
69
|
+
*/
|
|
70
|
+
setText(content) {
|
|
71
|
+
// Detect line endings
|
|
72
|
+
if (content.includes('\r\n')) {
|
|
73
|
+
this._lineEndings = '\r\n';
|
|
74
|
+
}
|
|
75
|
+
else if (content.includes('\r')) {
|
|
76
|
+
this._lineEndings = '\r';
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
this._lineEndings = '\n';
|
|
80
|
+
}
|
|
81
|
+
this.lines = content.split(/\r\n|\r|\n/);
|
|
82
|
+
if (this.lines.length === 0) {
|
|
83
|
+
this.lines = [''];
|
|
84
|
+
}
|
|
85
|
+
this._version++;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Insert text at a specific position
|
|
89
|
+
*/
|
|
90
|
+
insertText(position, text) {
|
|
91
|
+
const validPosition = this.validatePosition(position);
|
|
92
|
+
const insertLines = text.split(/\r\n|\r|\n/);
|
|
93
|
+
if (insertLines.length === 1) {
|
|
94
|
+
// Single line insertion
|
|
95
|
+
const line = this.lines[validPosition.line];
|
|
96
|
+
this.lines[validPosition.line] =
|
|
97
|
+
line.substring(0, validPosition.column) +
|
|
98
|
+
text +
|
|
99
|
+
line.substring(validPosition.column);
|
|
100
|
+
this._version++;
|
|
101
|
+
return {
|
|
102
|
+
start: validPosition,
|
|
103
|
+
end: { line: validPosition.line, column: validPosition.column + text.length },
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
// Multi-line insertion
|
|
108
|
+
const line = this.lines[validPosition.line];
|
|
109
|
+
const before = line.substring(0, validPosition.column);
|
|
110
|
+
const after = line.substring(validPosition.column);
|
|
111
|
+
// Replace current line with first insert line
|
|
112
|
+
this.lines[validPosition.line] = before + insertLines[0];
|
|
113
|
+
// Insert middle lines
|
|
114
|
+
const middleLines = insertLines.slice(1, -1);
|
|
115
|
+
this.lines.splice(validPosition.line + 1, 0, ...middleLines);
|
|
116
|
+
// Insert last line merged with remaining content
|
|
117
|
+
const lastInsertLine = insertLines[insertLines.length - 1];
|
|
118
|
+
this.lines.splice(validPosition.line + insertLines.length - 1, 0, lastInsertLine + after);
|
|
119
|
+
this._version++;
|
|
120
|
+
return {
|
|
121
|
+
start: validPosition,
|
|
122
|
+
end: {
|
|
123
|
+
line: validPosition.line + insertLines.length - 1,
|
|
124
|
+
column: lastInsertLine.length +
|
|
125
|
+
(insertLines.length === 1 ? validPosition.column : 0),
|
|
126
|
+
},
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Delete text in a specific range
|
|
132
|
+
*/
|
|
133
|
+
deleteText(range) {
|
|
134
|
+
const validRange = this.validateRange(range);
|
|
135
|
+
const deletedText = this.getTextRange(validRange);
|
|
136
|
+
if (validRange.start.line === validRange.end.line) {
|
|
137
|
+
// Single line deletion
|
|
138
|
+
const line = this.lines[validRange.start.line];
|
|
139
|
+
this.lines[validRange.start.line] =
|
|
140
|
+
line.substring(0, validRange.start.column) + line.substring(validRange.end.column);
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
// Multi-line deletion
|
|
144
|
+
const startLine = this.lines[validRange.start.line];
|
|
145
|
+
const endLine = this.lines[validRange.end.line];
|
|
146
|
+
// Merge start and end lines
|
|
147
|
+
this.lines[validRange.start.line] =
|
|
148
|
+
startLine.substring(0, validRange.start.column) +
|
|
149
|
+
endLine.substring(validRange.end.column);
|
|
150
|
+
// Remove lines in between
|
|
151
|
+
this.lines.splice(validRange.start.line + 1, validRange.end.line - validRange.start.line);
|
|
152
|
+
}
|
|
153
|
+
this._version++;
|
|
154
|
+
return deletedText;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Replace text in a specific range
|
|
158
|
+
*/
|
|
159
|
+
replaceText(range, text) {
|
|
160
|
+
this.deleteText(range);
|
|
161
|
+
return this.insertText(range.start, text);
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Validate and clamp position to document bounds
|
|
165
|
+
*/
|
|
166
|
+
validatePosition(position) {
|
|
167
|
+
const line = Math.max(0, Math.min(position.line, this.lines.length - 1));
|
|
168
|
+
const maxColumn = this.lines[line].length;
|
|
169
|
+
const column = Math.max(0, Math.min(position.column, maxColumn));
|
|
170
|
+
return { line, column };
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Validate and clamp range to document bounds
|
|
174
|
+
*/
|
|
175
|
+
validateRange(range) {
|
|
176
|
+
const start = this.validatePosition(range.start);
|
|
177
|
+
const end = this.validatePosition(range.end);
|
|
178
|
+
// Ensure start comes before end
|
|
179
|
+
if (start.line > end.line || (start.line === end.line && start.column > end.column)) {
|
|
180
|
+
return { start: end, end: start };
|
|
181
|
+
}
|
|
182
|
+
return { start, end };
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Get word range at position
|
|
186
|
+
*/
|
|
187
|
+
getWordRangeAtPosition(position, wordPattern) {
|
|
188
|
+
const validPosition = this.validatePosition(position);
|
|
189
|
+
const line = this.lines[validPosition.line];
|
|
190
|
+
if (!line || validPosition.column >= line.length) {
|
|
191
|
+
return null;
|
|
192
|
+
}
|
|
193
|
+
const pattern = wordPattern || /\w+/g;
|
|
194
|
+
let match;
|
|
195
|
+
while ((match = pattern.exec(line)) !== null) {
|
|
196
|
+
const start = match.index;
|
|
197
|
+
const end = start + match[0].length;
|
|
198
|
+
if (validPosition.column >= start && validPosition.column <= end) {
|
|
199
|
+
return {
|
|
200
|
+
start: { line: validPosition.line, column: start },
|
|
201
|
+
end: { line: validPosition.line, column: end },
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
return null;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Convert offset to position
|
|
209
|
+
*/
|
|
210
|
+
offsetToPosition(offset) {
|
|
211
|
+
let currentOffset = 0;
|
|
212
|
+
for (let line = 0; line < this.lines.length; line++) {
|
|
213
|
+
const lineLength = this.getLineLength(line);
|
|
214
|
+
if (currentOffset + lineLength > offset) {
|
|
215
|
+
return { line, column: offset - currentOffset };
|
|
216
|
+
}
|
|
217
|
+
currentOffset += lineLength;
|
|
218
|
+
}
|
|
219
|
+
// If offset is beyond document, return end position
|
|
220
|
+
const lastLine = this.lines.length - 1;
|
|
221
|
+
return { line: lastLine, column: this.lines[lastLine].length };
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Convert position to offset
|
|
225
|
+
*/
|
|
226
|
+
positionToOffset(position) {
|
|
227
|
+
const validPosition = this.validatePosition(position);
|
|
228
|
+
let offset = 0;
|
|
229
|
+
for (let line = 0; line < validPosition.line; line++) {
|
|
230
|
+
offset += this.getLineLength(line);
|
|
231
|
+
}
|
|
232
|
+
return offset + validPosition.column;
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Find next occurrence of text
|
|
236
|
+
*/
|
|
237
|
+
findNext(searchText, startPosition, options = {}) {
|
|
238
|
+
const { caseSensitive = false, wholeWord = false, regex = false } = options;
|
|
239
|
+
let pattern;
|
|
240
|
+
try {
|
|
241
|
+
if (regex) {
|
|
242
|
+
const flags = caseSensitive ? 'g' : 'gi';
|
|
243
|
+
pattern = new RegExp(searchText, flags);
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
const escapedText = searchText.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
247
|
+
const flags = caseSensitive ? 'g' : 'gi';
|
|
248
|
+
const patternText = wholeWord ? `\\b${escapedText}\\b` : escapedText;
|
|
249
|
+
pattern = new RegExp(patternText, flags);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
catch {
|
|
253
|
+
return null; // Invalid regex
|
|
254
|
+
}
|
|
255
|
+
const startOffset = this.positionToOffset(startPosition);
|
|
256
|
+
const text = this.getText();
|
|
257
|
+
pattern.lastIndex = startOffset;
|
|
258
|
+
const match = pattern.exec(text);
|
|
259
|
+
if (match) {
|
|
260
|
+
const matchStart = this.offsetToPosition(match.index);
|
|
261
|
+
const matchEnd = this.offsetToPosition(match.index + match[0].length);
|
|
262
|
+
return { start: matchStart, end: matchEnd };
|
|
263
|
+
}
|
|
264
|
+
return null;
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Find all occurrences of text
|
|
268
|
+
*/
|
|
269
|
+
findAll(searchText, options = {}) {
|
|
270
|
+
const ranges = [];
|
|
271
|
+
let position = { line: 0, column: 0 };
|
|
272
|
+
while (true) {
|
|
273
|
+
const range = this.findNext(searchText, position, options);
|
|
274
|
+
if (!range)
|
|
275
|
+
break;
|
|
276
|
+
ranges.push(range);
|
|
277
|
+
position = range.end;
|
|
278
|
+
}
|
|
279
|
+
return ranges;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
exports.LineBuffer = LineBuffer;
|
|
283
|
+
/**
|
|
284
|
+
* Implementation of TextDocument interface
|
|
285
|
+
*/
|
|
286
|
+
class TextDocumentImpl {
|
|
287
|
+
constructor(uri, languageId, version, content) {
|
|
288
|
+
this.uri = uri;
|
|
289
|
+
this.languageId = languageId;
|
|
290
|
+
this.version = version;
|
|
291
|
+
this.buffer = new LineBuffer(content);
|
|
292
|
+
}
|
|
293
|
+
get lineCount() {
|
|
294
|
+
return this.buffer.lineCount;
|
|
295
|
+
}
|
|
296
|
+
getText(range) {
|
|
297
|
+
if (!range) {
|
|
298
|
+
return this.buffer.getText();
|
|
299
|
+
}
|
|
300
|
+
return this.buffer.getTextRange(range);
|
|
301
|
+
}
|
|
302
|
+
getLineContent(line) {
|
|
303
|
+
return this.buffer.getLineContent(line);
|
|
304
|
+
}
|
|
305
|
+
getWordRangeAtPosition(position) {
|
|
306
|
+
return this.buffer.getWordRangeAtPosition(position);
|
|
307
|
+
}
|
|
308
|
+
validateRange(range) {
|
|
309
|
+
return this.buffer.validateRange(range);
|
|
310
|
+
}
|
|
311
|
+
validatePosition(position) {
|
|
312
|
+
return this.buffer.validatePosition(position);
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Internal method to get the line buffer for editing operations
|
|
316
|
+
*/
|
|
317
|
+
getBuffer() {
|
|
318
|
+
return this.buffer;
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Create a new version of this document with changes applied
|
|
322
|
+
*/
|
|
323
|
+
applyChanges(changes) {
|
|
324
|
+
const newBuffer = new LineBuffer(this.buffer.getText(), this.buffer.lineEndings);
|
|
325
|
+
// Sort changes by position (reverse order to maintain indices)
|
|
326
|
+
const sortedChanges = [...changes].sort((a, b) => {
|
|
327
|
+
if (a.range.start.line !== b.range.start.line) {
|
|
328
|
+
return b.range.start.line - a.range.start.line;
|
|
329
|
+
}
|
|
330
|
+
return b.range.start.column - a.range.start.column;
|
|
331
|
+
});
|
|
332
|
+
// Apply changes in reverse order
|
|
333
|
+
for (const change of sortedChanges) {
|
|
334
|
+
newBuffer.replaceText(change.range, change.text);
|
|
335
|
+
}
|
|
336
|
+
return new TextDocumentImpl(this.uri, this.languageId, this.version + 1, newBuffer.getText());
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
exports.TextDocumentImpl = TextDocumentImpl;
|
|
340
|
+
//# sourceMappingURL=TextDocument.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextDocument.js","sourceRoot":"","sources":["../../src/core/TextDocument.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Future-Proof Headless Code Editor Engine
|
|
3
|
+
*
|
|
4
|
+
* A platform-agnostic, extensible code editor engine built for maximum
|
|
5
|
+
* flexibility and performance. This engine provides the core logic for
|
|
6
|
+
* text editing, syntax highlighting, language services, and extension
|
|
7
|
+
* management without any UI dependencies.
|
|
8
|
+
*
|
|
9
|
+
* @version 1.0.0
|
|
10
|
+
* @author Koushik Roy
|
|
11
|
+
* @license MIT
|
|
12
|
+
*/
|
|
13
|
+
export * from './types/core';
|
|
14
|
+
export { LineBuffer, TextDocumentImpl } from './core/TextDocument';
|
|
15
|
+
export { TypedEventEmitter, PriorityEventEmitter, AsyncEventEmitter, DisposableImpl, CompositeDisposable, combineDisposables, createDisposable, } from './core/EventSystem';
|
|
16
|
+
export { UndoableCommand, TextEditCommand, CompositeCommand, CommandRegistry, CommandHistory, CommandGrouper, BuiltInCommands, } from './core/CommandSystem';
|
|
17
|
+
export { CodeEditorEngine, createCodeEditor, EditorBuilder, editor } from './core/CodeEditor';
|
|
18
|
+
export { Tokenizer, TokenizerLanguageService, BuiltInLanguages } from './language/Tokenizer';
|
|
19
|
+
export type { EnhancedToken, TokenRule, LanguageDefinition, BracketDefinition, CommentDefinition, StringDefinition, } from './language/Tokenizer';
|
|
20
|
+
export { ExtensionHost, ExtensionLoader, BuiltInExtensions, ExtensibleEditor, ActivationEvent, } from './language/Extensions';
|
|
21
|
+
export type { ExtensionManifest, ExtensionContributions, CommandContribution, LanguageContribution, GrammarContribution, ThemeContribution, SnippetContribution, KeybindingContribution, MenuContribution, MenuItemContribution, ConfigurationContribution, ConfigurationProperty, ViewContribution, ViewContainerContribution, ExtensionMarketplace, SearchOptions, ExtensionSearchResult, } from './language/Extensions';
|
|
22
|
+
/**
|
|
23
|
+
* Create a complete editor instance with sensible defaults
|
|
24
|
+
*/
|
|
25
|
+
export declare function createEditor(options?: {
|
|
26
|
+
/** Editor configuration options */
|
|
27
|
+
editorOptions?: Partial<import('./types/core').EditorOptions>;
|
|
28
|
+
/** Language IDs to enable */
|
|
29
|
+
languages?: string[];
|
|
30
|
+
/** Custom extensions to load */
|
|
31
|
+
extensions?: import('./types/core').Extension[];
|
|
32
|
+
/** Whether to load built-in extensions */
|
|
33
|
+
builtInExtensions?: boolean;
|
|
34
|
+
}): {
|
|
35
|
+
editor: any;
|
|
36
|
+
extensionHost: any;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Create a minimal editor instance without extensions
|
|
40
|
+
*/
|
|
41
|
+
export declare function createMinimalEditor(options?: Partial<import('./types/core').EditorOptions>): any;
|
|
42
|
+
/**
|
|
43
|
+
* Utility to create a position
|
|
44
|
+
*/
|
|
45
|
+
export declare function position(line: number, column: number): import('./types/core').Position;
|
|
46
|
+
/**
|
|
47
|
+
* Utility to create a range
|
|
48
|
+
*/
|
|
49
|
+
export declare function range(startLine: number, startColumn: number, endLine: number, endColumn: number): import('./types/core').Range;
|
|
50
|
+
/**
|
|
51
|
+
* Utility to create a selection
|
|
52
|
+
*/
|
|
53
|
+
export declare function selection(anchorLine: number, anchorColumn: number, activeLine: number, activeColumn: number): import('./types/core').Selection;
|
|
54
|
+
export declare const VERSION = "1.0.0";
|
|
55
|
+
export declare const BUILD_DATE: string;
|
|
56
|
+
export declare const FEATURES: {
|
|
57
|
+
readonly SYNTAX_HIGHLIGHTING: true;
|
|
58
|
+
readonly LANGUAGE_SERVICES: true;
|
|
59
|
+
readonly EXTENSIONS: true;
|
|
60
|
+
readonly UNDO_REDO: true;
|
|
61
|
+
readonly MULTI_CURSOR: true;
|
|
62
|
+
readonly FIND_REPLACE: true;
|
|
63
|
+
readonly CODE_FOLDING: false;
|
|
64
|
+
readonly MINIMAP: false;
|
|
65
|
+
readonly INTELLISENSE: true;
|
|
66
|
+
readonly DIAGNOSTICS: true;
|
|
67
|
+
readonly CODE_ACTIONS: true;
|
|
68
|
+
readonly FORMATTING: true;
|
|
69
|
+
readonly RENAME: true;
|
|
70
|
+
readonly GOTO_DEFINITION: true;
|
|
71
|
+
readonly HOVER: true;
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* Platform detection utilities
|
|
75
|
+
*/
|
|
76
|
+
export declare const Platform: {
|
|
77
|
+
/**
|
|
78
|
+
* Check if running in a React Native environment
|
|
79
|
+
*/
|
|
80
|
+
isReactNative(): boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Check if running in a web browser
|
|
83
|
+
*/
|
|
84
|
+
isBrowser(): boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Check if running in Node.js
|
|
87
|
+
*/
|
|
88
|
+
isNode(): boolean;
|
|
89
|
+
/**
|
|
90
|
+
* Check if running in a worker context
|
|
91
|
+
*/
|
|
92
|
+
isWorker(): boolean;
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
* Performance monitoring utilities
|
|
96
|
+
*/
|
|
97
|
+
export declare const Performance: {
|
|
98
|
+
/**
|
|
99
|
+
* Measure execution time of a function
|
|
100
|
+
*/
|
|
101
|
+
measure<T>(name: string, fn: () => Promise<T> | T): Promise<T>;
|
|
102
|
+
/**
|
|
103
|
+
* Simple profiler for development
|
|
104
|
+
*/
|
|
105
|
+
profile<T>(fn: () => T): {
|
|
106
|
+
result: T;
|
|
107
|
+
time: number;
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* Memory management utilities
|
|
112
|
+
*/
|
|
113
|
+
export declare const Memory: {
|
|
114
|
+
/**
|
|
115
|
+
* Request garbage collection (if available)
|
|
116
|
+
*/
|
|
117
|
+
gc(): void;
|
|
118
|
+
/**
|
|
119
|
+
* Get memory usage information (Node.js only)
|
|
120
|
+
*/
|
|
121
|
+
getUsage(): any;
|
|
122
|
+
};
|
|
123
|
+
/**
|
|
124
|
+
* Development mode flag
|
|
125
|
+
*/
|
|
126
|
+
export declare const IS_DEV: boolean;
|
|
127
|
+
/**
|
|
128
|
+
* Debug logging utility
|
|
129
|
+
*/
|
|
130
|
+
export declare const Debug: {
|
|
131
|
+
log: (...args: any[]) => void;
|
|
132
|
+
warn: (...args: any[]) => void;
|
|
133
|
+
error: (...args: any[]) => void;
|
|
134
|
+
group: {
|
|
135
|
+
(...data: any[]): void;
|
|
136
|
+
(...label: any[]): void;
|
|
137
|
+
};
|
|
138
|
+
groupEnd: {
|
|
139
|
+
(): void;
|
|
140
|
+
(): void;
|
|
141
|
+
};
|
|
142
|
+
time: {
|
|
143
|
+
(label?: string): void;
|
|
144
|
+
(label?: string): void;
|
|
145
|
+
};
|
|
146
|
+
timeEnd: {
|
|
147
|
+
(label?: string): void;
|
|
148
|
+
(label?: string): void;
|
|
149
|
+
};
|
|
150
|
+
};
|
|
151
|
+
export declare const CONSTANTS: {
|
|
152
|
+
readonly DEFAULT_TAB_SIZE: 4;
|
|
153
|
+
readonly DEFAULT_UNDO_STACK_SIZE: 1000;
|
|
154
|
+
readonly MAX_FILE_SIZE: number;
|
|
155
|
+
readonly TOKENIZATION_CHUNK_SIZE: 1000;
|
|
156
|
+
readonly DEFAULT_GROUPING_TIMEOUT: 300;
|
|
157
|
+
readonly MAX_SELECTIONS: 10000;
|
|
158
|
+
};
|
|
159
|
+
/**
|
|
160
|
+
* Common error types
|
|
161
|
+
*/
|
|
162
|
+
export declare class EditorError extends Error {
|
|
163
|
+
readonly code?: string | undefined;
|
|
164
|
+
constructor(message: string, code?: string | undefined);
|
|
165
|
+
}
|
|
166
|
+
export declare class DocumentError extends EditorError {
|
|
167
|
+
readonly uri?: string | undefined;
|
|
168
|
+
constructor(message: string, uri?: string | undefined);
|
|
169
|
+
}
|
|
170
|
+
export declare class ExtensionError extends EditorError {
|
|
171
|
+
readonly extensionId?: string | undefined;
|
|
172
|
+
constructor(message: string, extensionId?: string | undefined);
|
|
173
|
+
}
|
|
174
|
+
export declare class LanguageServiceError extends EditorError {
|
|
175
|
+
readonly languageId?: string | undefined;
|
|
176
|
+
constructor(message: string, languageId?: string | undefined);
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|