@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.
Files changed (39) hide show
  1. package/README.md +127 -0
  2. package/dist/.tsbuildinfo +1 -0
  3. package/dist/__tests__/editor.spec.d.ts +2 -0
  4. package/dist/__tests__/editor.spec.d.ts.map +1 -0
  5. package/dist/__tests__/editor.spec.js +141 -0
  6. package/dist/__tests__/editor.spec.js.map +1 -0
  7. package/dist/core/CodeEditor.d.ts +70 -0
  8. package/dist/core/CodeEditor.d.ts.map +1 -0
  9. package/dist/core/CodeEditor.js +392 -0
  10. package/dist/core/CodeEditor.js.map +1 -0
  11. package/dist/core/CommandSystem.d.ts +158 -0
  12. package/dist/core/CommandSystem.d.ts.map +1 -0
  13. package/dist/core/CommandSystem.js +358 -0
  14. package/dist/core/CommandSystem.js.map +1 -0
  15. package/dist/core/EventSystem.d.ts +87 -0
  16. package/dist/core/EventSystem.d.ts.map +1 -0
  17. package/dist/core/EventSystem.js +330 -0
  18. package/dist/core/EventSystem.js.map +1 -0
  19. package/dist/core/TextDocument.d.ts +110 -0
  20. package/dist/core/TextDocument.d.ts.map +1 -0
  21. package/dist/core/TextDocument.js +340 -0
  22. package/dist/core/TextDocument.js.map +1 -0
  23. package/dist/index.d.ts +178 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +302 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/language/Extensions.d.ts +280 -0
  28. package/dist/language/Extensions.d.ts.map +1 -0
  29. package/dist/language/Extensions.js +368 -0
  30. package/dist/language/Extensions.js.map +1 -0
  31. package/dist/language/Tokenizer.d.ts +108 -0
  32. package/dist/language/Tokenizer.d.ts.map +1 -0
  33. package/dist/language/Tokenizer.js +630 -0
  34. package/dist/language/Tokenizer.js.map +1 -0
  35. package/dist/types/core.d.ts +355 -0
  36. package/dist/types/core.d.ts.map +1 -0
  37. package/dist/types/core.js +93 -0
  38. package/dist/types/core.js.map +1 -0
  39. 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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"}
@@ -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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"}