@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
package/dist/index.js ADDED
@@ -0,0 +1,302 @@
1
+ "use strict";
2
+ /**
3
+ * Future-Proof Headless Code Editor Engine
4
+ *
5
+ * A platform-agnostic, extensible code editor engine built for maximum
6
+ * flexibility and performance. This engine provides the core logic for
7
+ * text editing, syntax highlighting, language services, and extension
8
+ * management without any UI dependencies.
9
+ *
10
+ * @version 1.0.0
11
+ * @author Koushik Roy
12
+ * @license MIT
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.LanguageServiceError = exports.ExtensionError = exports.DocumentError = exports.EditorError = exports.CONSTANTS = exports.Debug = exports.IS_DEV = exports.Memory = exports.Performance = exports.Platform = exports.FEATURES = exports.BUILD_DATE = exports.VERSION = exports.ActivationEvent = exports.ExtensibleEditor = exports.BuiltInExtensions = exports.ExtensionLoader = exports.ExtensionHost = exports.BuiltInLanguages = exports.TokenizerLanguageService = exports.Tokenizer = exports.editor = exports.EditorBuilder = exports.createCodeEditor = exports.CodeEditorEngine = exports.BuiltInCommands = exports.CommandGrouper = exports.CommandHistory = exports.CommandRegistry = exports.CompositeCommand = exports.TextEditCommand = exports.UndoableCommand = exports.createDisposable = exports.combineDisposables = exports.CompositeDisposable = exports.DisposableImpl = exports.AsyncEventEmitter = exports.PriorityEventEmitter = exports.TypedEventEmitter = exports.TextDocumentImpl = exports.LineBuffer = void 0;
16
+ exports.createEditor = createEditor;
17
+ exports.createMinimalEditor = createMinimalEditor;
18
+ exports.position = position;
19
+ exports.range = range;
20
+ exports.selection = selection;
21
+ const tslib_1 = require("tslib");
22
+ // ================================
23
+ // CORE TYPES
24
+ // ================================
25
+ tslib_1.__exportStar(require("./types/core"), exports);
26
+ // ================================
27
+ // CORE ENGINE
28
+ // ================================
29
+ var TextDocument_1 = require("./core/TextDocument");
30
+ Object.defineProperty(exports, "LineBuffer", { enumerable: true, get: function () { return TextDocument_1.LineBuffer; } });
31
+ Object.defineProperty(exports, "TextDocumentImpl", { enumerable: true, get: function () { return TextDocument_1.TextDocumentImpl; } });
32
+ var EventSystem_1 = require("./core/EventSystem");
33
+ Object.defineProperty(exports, "TypedEventEmitter", { enumerable: true, get: function () { return EventSystem_1.TypedEventEmitter; } });
34
+ Object.defineProperty(exports, "PriorityEventEmitter", { enumerable: true, get: function () { return EventSystem_1.PriorityEventEmitter; } });
35
+ Object.defineProperty(exports, "AsyncEventEmitter", { enumerable: true, get: function () { return EventSystem_1.AsyncEventEmitter; } });
36
+ Object.defineProperty(exports, "DisposableImpl", { enumerable: true, get: function () { return EventSystem_1.DisposableImpl; } });
37
+ Object.defineProperty(exports, "CompositeDisposable", { enumerable: true, get: function () { return EventSystem_1.CompositeDisposable; } });
38
+ Object.defineProperty(exports, "combineDisposables", { enumerable: true, get: function () { return EventSystem_1.combineDisposables; } });
39
+ Object.defineProperty(exports, "createDisposable", { enumerable: true, get: function () { return EventSystem_1.createDisposable; } });
40
+ var CommandSystem_1 = require("./core/CommandSystem");
41
+ Object.defineProperty(exports, "UndoableCommand", { enumerable: true, get: function () { return CommandSystem_1.UndoableCommand; } });
42
+ Object.defineProperty(exports, "TextEditCommand", { enumerable: true, get: function () { return CommandSystem_1.TextEditCommand; } });
43
+ Object.defineProperty(exports, "CompositeCommand", { enumerable: true, get: function () { return CommandSystem_1.CompositeCommand; } });
44
+ Object.defineProperty(exports, "CommandRegistry", { enumerable: true, get: function () { return CommandSystem_1.CommandRegistry; } });
45
+ Object.defineProperty(exports, "CommandHistory", { enumerable: true, get: function () { return CommandSystem_1.CommandHistory; } });
46
+ Object.defineProperty(exports, "CommandGrouper", { enumerable: true, get: function () { return CommandSystem_1.CommandGrouper; } });
47
+ Object.defineProperty(exports, "BuiltInCommands", { enumerable: true, get: function () { return CommandSystem_1.BuiltInCommands; } });
48
+ var CodeEditor_1 = require("./core/CodeEditor");
49
+ Object.defineProperty(exports, "CodeEditorEngine", { enumerable: true, get: function () { return CodeEditor_1.CodeEditorEngine; } });
50
+ Object.defineProperty(exports, "createCodeEditor", { enumerable: true, get: function () { return CodeEditor_1.createCodeEditor; } });
51
+ Object.defineProperty(exports, "EditorBuilder", { enumerable: true, get: function () { return CodeEditor_1.EditorBuilder; } });
52
+ Object.defineProperty(exports, "editor", { enumerable: true, get: function () { return CodeEditor_1.editor; } });
53
+ // ================================
54
+ // LANGUAGE SERVICES
55
+ // ================================
56
+ var Tokenizer_1 = require("./language/Tokenizer");
57
+ Object.defineProperty(exports, "Tokenizer", { enumerable: true, get: function () { return Tokenizer_1.Tokenizer; } });
58
+ Object.defineProperty(exports, "TokenizerLanguageService", { enumerable: true, get: function () { return Tokenizer_1.TokenizerLanguageService; } });
59
+ Object.defineProperty(exports, "BuiltInLanguages", { enumerable: true, get: function () { return Tokenizer_1.BuiltInLanguages; } });
60
+ // ================================
61
+ // EXTENSION SYSTEM
62
+ // ================================
63
+ var Extensions_1 = require("./language/Extensions");
64
+ Object.defineProperty(exports, "ExtensionHost", { enumerable: true, get: function () { return Extensions_1.ExtensionHost; } });
65
+ Object.defineProperty(exports, "ExtensionLoader", { enumerable: true, get: function () { return Extensions_1.ExtensionLoader; } });
66
+ Object.defineProperty(exports, "BuiltInExtensions", { enumerable: true, get: function () { return Extensions_1.BuiltInExtensions; } });
67
+ Object.defineProperty(exports, "ExtensibleEditor", { enumerable: true, get: function () { return Extensions_1.ExtensibleEditor; } });
68
+ Object.defineProperty(exports, "ActivationEvent", { enumerable: true, get: function () { return Extensions_1.ActivationEvent; } });
69
+ // ================================
70
+ // UTILITY FUNCTIONS
71
+ // ================================
72
+ /**
73
+ * Create a complete editor instance with sensible defaults
74
+ */
75
+ function createEditor(options = {}) {
76
+ const { ExtensibleEditor } = require('./language/Extensions');
77
+ const { editor, extensionHost } = ExtensibleEditor.create({
78
+ editorOptions: options.editorOptions,
79
+ extensions: options.extensions,
80
+ builtInExtensions: options.builtInExtensions,
81
+ });
82
+ // Activate language-specific extensions
83
+ if (options.languages) {
84
+ void Promise.allSettled(options.languages.map((lang) => extensionHost.activateByEvent(`onLanguage:${lang}`)));
85
+ }
86
+ return { editor, extensionHost };
87
+ }
88
+ /**
89
+ * Create a minimal editor instance without extensions
90
+ */
91
+ function createMinimalEditor(options) {
92
+ const { CodeEditorEngine } = require('./core/CodeEditor');
93
+ return new CodeEditorEngine(options);
94
+ }
95
+ /**
96
+ * Utility to create a position
97
+ */
98
+ function position(line, column) {
99
+ return { line, column };
100
+ }
101
+ /**
102
+ * Utility to create a range
103
+ */
104
+ function range(startLine, startColumn, endLine, endColumn) {
105
+ return {
106
+ start: { line: startLine, column: startColumn },
107
+ end: { line: endLine, column: endColumn },
108
+ };
109
+ }
110
+ /**
111
+ * Utility to create a selection
112
+ */
113
+ function selection(anchorLine, anchorColumn, activeLine, activeColumn) {
114
+ const anchor = { line: anchorLine, column: anchorColumn };
115
+ const active = { line: activeLine, column: activeColumn };
116
+ const isReversed = activeLine < anchorLine || (activeLine === anchorLine && activeColumn < anchorColumn);
117
+ return {
118
+ start: isReversed ? active : anchor,
119
+ end: isReversed ? anchor : active,
120
+ anchor,
121
+ active,
122
+ isReversed,
123
+ };
124
+ }
125
+ // ================================
126
+ // VERSION INFO
127
+ // ================================
128
+ exports.VERSION = '1.0.0';
129
+ exports.BUILD_DATE = new Date().toISOString();
130
+ // ================================
131
+ // FEATURE FLAGS
132
+ // ================================
133
+ exports.FEATURES = {
134
+ SYNTAX_HIGHLIGHTING: true,
135
+ LANGUAGE_SERVICES: true,
136
+ EXTENSIONS: true,
137
+ UNDO_REDO: true,
138
+ MULTI_CURSOR: true,
139
+ FIND_REPLACE: true,
140
+ CODE_FOLDING: false, // Not implemented in this version
141
+ MINIMAP: false, // Not implemented in this version
142
+ INTELLISENSE: true,
143
+ DIAGNOSTICS: true,
144
+ CODE_ACTIONS: true,
145
+ FORMATTING: true,
146
+ RENAME: true,
147
+ GOTO_DEFINITION: true,
148
+ HOVER: true,
149
+ };
150
+ // ================================
151
+ // COMPATIBILITY
152
+ // ================================
153
+ /**
154
+ * Platform detection utilities
155
+ */
156
+ exports.Platform = {
157
+ /**
158
+ * Check if running in a React Native environment
159
+ */
160
+ isReactNative() {
161
+ return typeof navigator !== 'undefined' && navigator.product === 'ReactNative';
162
+ },
163
+ /**
164
+ * Check if running in a web browser
165
+ */
166
+ isBrowser() {
167
+ return typeof window !== 'undefined' && typeof document !== 'undefined';
168
+ },
169
+ /**
170
+ * Check if running in Node.js
171
+ */
172
+ isNode() {
173
+ return (typeof process !== 'undefined' &&
174
+ typeof process.versions === 'object' &&
175
+ typeof process.versions.node === 'string');
176
+ },
177
+ /**
178
+ * Check if running in a worker context
179
+ */
180
+ isWorker() {
181
+ return typeof globalThis.importScripts === 'function';
182
+ },
183
+ };
184
+ /**
185
+ * Performance monitoring utilities
186
+ */
187
+ exports.Performance = {
188
+ /**
189
+ * Measure execution time of a function
190
+ */
191
+ async measure(name, fn) {
192
+ const start = performance.now();
193
+ try {
194
+ const result = await fn();
195
+ const end = performance.now();
196
+ console.debug(`[Performance] ${name}: ${(end - start).toFixed(2)}ms`);
197
+ return result;
198
+ }
199
+ catch (error) {
200
+ const end = performance.now();
201
+ console.debug(`[Performance] ${name} (error): ${(end - start).toFixed(2)}ms`);
202
+ throw error;
203
+ }
204
+ },
205
+ /**
206
+ * Simple profiler for development
207
+ */
208
+ profile(fn) {
209
+ const start = performance.now();
210
+ const result = fn();
211
+ const time = performance.now() - start;
212
+ return { result, time };
213
+ },
214
+ };
215
+ /**
216
+ * Memory management utilities
217
+ */
218
+ exports.Memory = {
219
+ /**
220
+ * Request garbage collection (if available)
221
+ */
222
+ gc() {
223
+ if (typeof global !== 'undefined' && global.gc) {
224
+ global.gc();
225
+ }
226
+ },
227
+ /**
228
+ * Get memory usage information (Node.js only)
229
+ */
230
+ getUsage() {
231
+ if (typeof process !== 'undefined' && process.memoryUsage) {
232
+ return process.memoryUsage();
233
+ }
234
+ return null;
235
+ },
236
+ };
237
+ // ================================
238
+ // DEVELOPMENT HELPERS
239
+ // ================================
240
+ /**
241
+ * Development mode flag
242
+ */
243
+ exports.IS_DEV = process.env.NODE_ENV === 'development';
244
+ /**
245
+ * Debug logging utility
246
+ */
247
+ exports.Debug = {
248
+ log: exports.IS_DEV ? console.log.bind(console, '[Editor]') : () => { },
249
+ warn: exports.IS_DEV ? console.warn.bind(console, '[Editor]') : () => { },
250
+ error: console.error.bind(console, '[Editor]'),
251
+ group: exports.IS_DEV ? console.group.bind(console) : () => { },
252
+ groupEnd: exports.IS_DEV ? console.groupEnd.bind(console) : () => { },
253
+ time: exports.IS_DEV ? console.time.bind(console) : () => { },
254
+ timeEnd: exports.IS_DEV ? console.timeEnd.bind(console) : () => { },
255
+ };
256
+ // ================================
257
+ // CONSTANTS
258
+ // ================================
259
+ exports.CONSTANTS = {
260
+ DEFAULT_TAB_SIZE: 4,
261
+ DEFAULT_UNDO_STACK_SIZE: 1000,
262
+ MAX_FILE_SIZE: 100 * 1024 * 1024, // 100MB
263
+ TOKENIZATION_CHUNK_SIZE: 1000,
264
+ DEFAULT_GROUPING_TIMEOUT: 300,
265
+ MAX_SELECTIONS: 10000,
266
+ };
267
+ /**
268
+ * Common error types
269
+ */
270
+ class EditorError extends Error {
271
+ constructor(message, code) {
272
+ super(message);
273
+ this.code = code;
274
+ this.name = 'EditorError';
275
+ }
276
+ }
277
+ exports.EditorError = EditorError;
278
+ class DocumentError extends EditorError {
279
+ constructor(message, uri) {
280
+ super(message, 'DOCUMENT_ERROR');
281
+ this.uri = uri;
282
+ this.name = 'DocumentError';
283
+ }
284
+ }
285
+ exports.DocumentError = DocumentError;
286
+ class ExtensionError extends EditorError {
287
+ constructor(message, extensionId) {
288
+ super(message, 'EXTENSION_ERROR');
289
+ this.extensionId = extensionId;
290
+ this.name = 'ExtensionError';
291
+ }
292
+ }
293
+ exports.ExtensionError = ExtensionError;
294
+ class LanguageServiceError extends EditorError {
295
+ constructor(message, languageId) {
296
+ super(message, 'LANGUAGE_SERVICE_ERROR');
297
+ this.languageId = languageId;
298
+ this.name = 'LanguageServiceError';
299
+ }
300
+ }
301
+ exports.LanguageServiceError = LanguageServiceError;
302
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,280 @@
1
+ import { Extension, Command, LanguageService, CodeEditor } from '../types/core';
2
+ import { TypedEventEmitter } from '../core/EventSystem';
3
+ /**
4
+ * Extension activation events
5
+ */
6
+ export declare enum ActivationEvent {
7
+ OnStartup = "onStartup",
8
+ OnLanguage = "onLanguage",
9
+ OnCommand = "onCommand",
10
+ OnFileSystem = "onFileSystem",
11
+ OnDebug = "onDebug",
12
+ OnView = "onView"
13
+ }
14
+ /**
15
+ * Extension metadata
16
+ */
17
+ export interface ExtensionManifest {
18
+ readonly id: string;
19
+ readonly name: string;
20
+ readonly version: string;
21
+ readonly description?: string;
22
+ readonly publisher?: string;
23
+ readonly displayName?: string;
24
+ readonly categories?: string[];
25
+ readonly keywords?: string[];
26
+ readonly icon?: string;
27
+ readonly license?: string;
28
+ readonly repository?: string;
29
+ readonly bugs?: string;
30
+ readonly homepage?: string;
31
+ readonly engines?: Record<string, string>;
32
+ readonly activationEvents?: string[];
33
+ readonly main?: string;
34
+ readonly contributes?: ExtensionContributions;
35
+ readonly dependencies?: Record<string, string>;
36
+ readonly devDependencies?: Record<string, string>;
37
+ }
38
+ /**
39
+ * Extension contributions
40
+ */
41
+ export interface ExtensionContributions {
42
+ readonly commands?: CommandContribution[];
43
+ readonly languages?: LanguageContribution[];
44
+ readonly grammars?: GrammarContribution[];
45
+ readonly themes?: ThemeContribution[];
46
+ readonly snippets?: SnippetContribution[];
47
+ readonly keybindings?: KeybindingContribution[];
48
+ readonly menus?: MenuContribution[];
49
+ readonly configuration?: ConfigurationContribution;
50
+ readonly views?: ViewContribution[];
51
+ readonly viewsContainers?: ViewContainerContribution[];
52
+ }
53
+ export interface CommandContribution {
54
+ readonly command: string;
55
+ readonly title: string;
56
+ readonly category?: string;
57
+ readonly icon?: string;
58
+ readonly enablement?: string;
59
+ }
60
+ export interface LanguageContribution {
61
+ readonly id: string;
62
+ readonly aliases?: string[];
63
+ readonly extensions?: string[];
64
+ readonly filenames?: string[];
65
+ readonly filenamePatterns?: string[];
66
+ readonly mimetypes?: string[];
67
+ readonly firstLine?: string;
68
+ readonly configuration?: string;
69
+ }
70
+ export interface GrammarContribution {
71
+ readonly language: string;
72
+ readonly scopeName: string;
73
+ readonly path: string;
74
+ readonly embeddedLanguages?: Record<string, string>;
75
+ readonly tokenTypes?: Record<string, string>;
76
+ readonly injectTo?: string[];
77
+ }
78
+ export interface ThemeContribution {
79
+ readonly label: string;
80
+ readonly uiTheme: 'vs' | 'vs-dark' | 'hc-black' | 'hc-light';
81
+ readonly path: string;
82
+ }
83
+ export interface SnippetContribution {
84
+ readonly language: string;
85
+ readonly path: string;
86
+ }
87
+ export interface KeybindingContribution {
88
+ readonly command: string;
89
+ readonly key: string;
90
+ readonly mac?: string;
91
+ readonly linux?: string;
92
+ readonly win?: string;
93
+ readonly when?: string;
94
+ }
95
+ export interface MenuContribution {
96
+ readonly commandPalette?: MenuItemContribution[];
97
+ readonly editor?: {
98
+ readonly context?: MenuItemContribution[];
99
+ readonly title?: MenuItemContribution[];
100
+ };
101
+ readonly explorer?: {
102
+ readonly context?: MenuItemContribution[];
103
+ };
104
+ }
105
+ export interface MenuItemContribution {
106
+ readonly command: string;
107
+ readonly when?: string;
108
+ readonly group?: string;
109
+ readonly order?: number;
110
+ }
111
+ export interface ConfigurationContribution {
112
+ readonly title: string;
113
+ readonly properties: Record<string, ConfigurationProperty>;
114
+ }
115
+ export interface ConfigurationProperty {
116
+ readonly type: 'string' | 'number' | 'boolean' | 'array' | 'object';
117
+ readonly default?: any;
118
+ readonly description: string;
119
+ readonly enum?: any[];
120
+ readonly enumDescriptions?: string[];
121
+ readonly minimum?: number;
122
+ readonly maximum?: number;
123
+ readonly pattern?: string;
124
+ readonly items?: ConfigurationProperty;
125
+ readonly properties?: Record<string, ConfigurationProperty>;
126
+ readonly markdownDescription?: string;
127
+ readonly deprecationMessage?: string;
128
+ readonly scope?: 'application' | 'machine' | 'window' | 'resource' | 'language-overridable' | 'machine-overridable';
129
+ }
130
+ export interface ViewContribution {
131
+ readonly id: string;
132
+ readonly name: string;
133
+ readonly when?: string;
134
+ readonly icon?: string;
135
+ readonly contextualTitle?: string;
136
+ readonly visibility?: 'visible' | 'hidden' | 'collapsed';
137
+ }
138
+ export interface ViewContainerContribution {
139
+ readonly id: string;
140
+ readonly title: string;
141
+ readonly icon: string;
142
+ }
143
+ /**
144
+ * Extension host for managing extension lifecycle
145
+ */
146
+ export declare class ExtensionHost extends TypedEventEmitter<{
147
+ 'extension-activated': {
148
+ extension: Extension;
149
+ };
150
+ 'extension-deactivated': {
151
+ extension: Extension;
152
+ };
153
+ 'extension-error': {
154
+ extension: Extension;
155
+ error: Error;
156
+ };
157
+ }> {
158
+ private readonly editor;
159
+ private readonly extensions;
160
+ private readonly contexts;
161
+ private readonly activatedExtensions;
162
+ private readonly disposables;
163
+ constructor(editor: CodeEditor);
164
+ /**
165
+ * Register an extension
166
+ */
167
+ registerExtension(extension: Extension): Promise<void>;
168
+ /**
169
+ * Activate an extension
170
+ */
171
+ activateExtension(extensionId: string): Promise<void>;
172
+ /**
173
+ * Deactivate an extension
174
+ */
175
+ deactivateExtension(extensionId: string): Promise<void>;
176
+ /**
177
+ * Get an extension by ID
178
+ */
179
+ getExtension(extensionId: string): Extension | undefined;
180
+ /**
181
+ * Get all registered extensions
182
+ */
183
+ getAllExtensions(): Extension[];
184
+ /**
185
+ * Get all activated extensions
186
+ */
187
+ getActivatedExtensions(): Extension[];
188
+ /**
189
+ * Check if an extension is activated
190
+ */
191
+ isActivated(extensionId: string): boolean;
192
+ /**
193
+ * Activate extensions based on event
194
+ */
195
+ activateByEvent(event: string): Promise<void>;
196
+ /**
197
+ * Dispose the extension host
198
+ */
199
+ dispose(): void;
200
+ }
201
+ /**
202
+ * Extension loader for loading extensions from manifests
203
+ */
204
+ export declare class ExtensionLoader {
205
+ private readonly extensionHost;
206
+ constructor(extensionHost: ExtensionHost);
207
+ /**
208
+ * Load extension from manifest
209
+ */
210
+ loadFromManifest(manifest: ExtensionManifest, extensionCode: Extension): Promise<void>;
211
+ /**
212
+ * Load multiple extensions
213
+ */
214
+ loadExtensions(extensions: Array<{
215
+ manifest: ExtensionManifest;
216
+ code: Extension;
217
+ }>): Promise<void>;
218
+ private validateManifest;
219
+ private sortByDependencies;
220
+ }
221
+ /**
222
+ * Built-in extensions
223
+ */
224
+ export declare class BuiltInExtensions {
225
+ /**
226
+ * Create a basic language support extension
227
+ */
228
+ static createLanguageExtension(languageId: string, languageName: string, languageService: LanguageService): Extension;
229
+ /**
230
+ * Create a basic commands extension
231
+ */
232
+ static createCommandsExtension(commands: Command[]): Extension;
233
+ /**
234
+ * Create a basic themes extension
235
+ */
236
+ static createThemesExtension(): Extension;
237
+ }
238
+ /**
239
+ * Extension marketplace interface
240
+ */
241
+ export interface ExtensionMarketplace {
242
+ search(query: string, options?: SearchOptions): Promise<ExtensionSearchResult[]>;
243
+ install(extensionId: string): Promise<void>;
244
+ uninstall(extensionId: string): Promise<void>;
245
+ update(extensionId: string): Promise<void>;
246
+ getInstalled(): Promise<Extension[]>;
247
+ }
248
+ export interface SearchOptions {
249
+ readonly category?: string;
250
+ readonly sortBy?: 'relevance' | 'downloads' | 'rating' | 'name';
251
+ readonly sortOrder?: 'asc' | 'desc';
252
+ readonly limit?: number;
253
+ readonly offset?: number;
254
+ }
255
+ export interface ExtensionSearchResult {
256
+ readonly id: string;
257
+ readonly name: string;
258
+ readonly version: string;
259
+ readonly description: string;
260
+ readonly publisher: string;
261
+ readonly downloads: number;
262
+ readonly rating: number;
263
+ readonly categories: string[];
264
+ readonly icon?: string;
265
+ }
266
+ /**
267
+ * Factory for creating extension-enabled editors
268
+ */
269
+ export declare class ExtensibleEditor {
270
+ static create(options?: {
271
+ editorOptions?: any;
272
+ extensions?: Extension[];
273
+ builtInExtensions?: boolean;
274
+ }): {
275
+ editor: CodeEditor;
276
+ extensionHost: ExtensionHost;
277
+ };
278
+ private static loadBuiltInExtensions;
279
+ }
280
+ //# sourceMappingURL=Extensions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Extensions.d.ts","sourceRoot":"","sources":["../../src/language/Extensions.ts"],"names":[],"mappings":"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"}