@pyreon/code 0.5.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/LICENSE +21 -0
- package/lib/analysis/index.js.html +5406 -0
- package/lib/dist-B5vB-rif.js +3904 -0
- package/lib/dist-B5vB-rif.js.map +1 -0
- package/lib/dist-BAfzu5eu.js +1428 -0
- package/lib/dist-BAfzu5eu.js.map +1 -0
- package/lib/dist-BLlV_D16.js +1166 -0
- package/lib/dist-BLlV_D16.js.map +1 -0
- package/lib/dist-BNmKLTu8.js +373 -0
- package/lib/dist-BNmKLTu8.js.map +1 -0
- package/lib/dist-BZtTlC1J.js +692 -0
- package/lib/dist-BZtTlC1J.js.map +1 -0
- package/lib/dist-CTDqGIAf.js +856 -0
- package/lib/dist-CTDqGIAf.js.map +1 -0
- package/lib/dist-CTPisNZp.js +83 -0
- package/lib/dist-CTPisNZp.js.map +1 -0
- package/lib/dist-Ce2tvOxv.js +379 -0
- package/lib/dist-Ce2tvOxv.js.map +1 -0
- package/lib/dist-CttF0OTv.js +465 -0
- package/lib/dist-CttF0OTv.js.map +1 -0
- package/lib/dist-DS2tluW9.js +818 -0
- package/lib/dist-DS2tluW9.js.map +1 -0
- package/lib/dist-DUNx9ldu.js +460 -0
- package/lib/dist-DUNx9ldu.js.map +1 -0
- package/lib/dist-Dej_yf3k.js +473 -0
- package/lib/dist-Dej_yf3k.js.map +1 -0
- package/lib/dist-DshStUxU.js +283 -0
- package/lib/dist-DshStUxU.js.map +1 -0
- package/lib/dist-qTrOe7xY.js +461 -0
- package/lib/dist-qTrOe7xY.js.map +1 -0
- package/lib/dist-v09vikKr.js +2421 -0
- package/lib/dist-v09vikKr.js.map +1 -0
- package/lib/index.js +915 -0
- package/lib/index.js.map +1 -0
- package/lib/types/dist.d.ts +798 -0
- package/lib/types/dist.d.ts.map +1 -0
- package/lib/types/dist10.d.ts +67 -0
- package/lib/types/dist10.d.ts.map +1 -0
- package/lib/types/dist11.d.ts +126 -0
- package/lib/types/dist11.d.ts.map +1 -0
- package/lib/types/dist12.d.ts +21 -0
- package/lib/types/dist12.d.ts.map +1 -0
- package/lib/types/dist13.d.ts +404 -0
- package/lib/types/dist13.d.ts.map +1 -0
- package/lib/types/dist14.d.ts +292 -0
- package/lib/types/dist14.d.ts.map +1 -0
- package/lib/types/dist15.d.ts +132 -0
- package/lib/types/dist15.d.ts.map +1 -0
- package/lib/types/dist2.d.ts +15 -0
- package/lib/types/dist2.d.ts.map +1 -0
- package/lib/types/dist3.d.ts +106 -0
- package/lib/types/dist3.d.ts.map +1 -0
- package/lib/types/dist4.d.ts +67 -0
- package/lib/types/dist4.d.ts.map +1 -0
- package/lib/types/dist5.d.ts +95 -0
- package/lib/types/dist5.d.ts.map +1 -0
- package/lib/types/dist6.d.ts +330 -0
- package/lib/types/dist6.d.ts.map +1 -0
- package/lib/types/dist7.d.ts +15 -0
- package/lib/types/dist7.d.ts.map +1 -0
- package/lib/types/dist8.d.ts +15 -0
- package/lib/types/dist8.d.ts.map +1 -0
- package/lib/types/dist9.d.ts +635 -0
- package/lib/types/dist9.d.ts.map +1 -0
- package/lib/types/index.d.ts +852 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/index2.d.ts +347 -0
- package/lib/types/index2.d.ts.map +1 -0
- package/package.json +79 -0
- package/src/components/code-editor.tsx +42 -0
- package/src/components/diff-editor.tsx +97 -0
- package/src/components/tabbed-editor.tsx +86 -0
- package/src/editor.ts +652 -0
- package/src/index.ts +52 -0
- package/src/languages.ts +77 -0
- package/src/minimap.ts +160 -0
- package/src/tabbed-editor.ts +231 -0
- package/src/tests/code.test.ts +505 -0
- package/src/themes.ts +87 -0
- package/src/types.ts +253 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":["CMGutterMarker","placeholderExt","undo","redo","setDiagnostics","cmSetDiagnostics"],"sources":["../../../../node_modules/.bun/@pyreon+core@0.6.0/node_modules/@pyreon/core/lib/jsx-runtime.js","../../src/components/code-editor.tsx","../../src/languages.ts","../../src/themes.ts","../../src/components/diff-editor.tsx","../../src/components/tabbed-editor.tsx","../../src/minimap.ts","../../src/editor.ts"],"x_google_ignoreList":[0],"mappings":"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"}
|
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
import { Extension } from "@codemirror/state";
|
|
2
|
+
import { EditorView } from "@codemirror/view";
|
|
3
|
+
import { Computed, Signal } from "@pyreon/reactivity";
|
|
4
|
+
import { VNodeChild } from "@pyreon/core";
|
|
5
|
+
|
|
6
|
+
//#region src/types.d.ts
|
|
7
|
+
type EditorLanguage = 'javascript' | 'typescript' | 'jsx' | 'tsx' | 'html' | 'css' | 'json' | 'markdown' | 'python' | 'rust' | 'sql' | 'xml' | 'yaml' | 'cpp' | 'java' | 'go' | 'php' | 'ruby' | 'shell' | 'plain';
|
|
8
|
+
type EditorTheme = 'light' | 'dark' | Extension;
|
|
9
|
+
interface EditorConfig {
|
|
10
|
+
/** Initial value */
|
|
11
|
+
value?: string;
|
|
12
|
+
/** Language for syntax highlighting — lazy-loaded */
|
|
13
|
+
language?: EditorLanguage;
|
|
14
|
+
/** Theme — 'light', 'dark', or a custom CodeMirror theme extension */
|
|
15
|
+
theme?: EditorTheme;
|
|
16
|
+
/** Show line numbers — default: true */
|
|
17
|
+
lineNumbers?: boolean;
|
|
18
|
+
/** Read-only mode — default: false */
|
|
19
|
+
readOnly?: boolean;
|
|
20
|
+
/** Enable code folding — default: true */
|
|
21
|
+
foldGutter?: boolean;
|
|
22
|
+
/** Enable bracket matching — default: true */
|
|
23
|
+
bracketMatching?: boolean;
|
|
24
|
+
/** Enable autocomplete — default: true */
|
|
25
|
+
autocomplete?: boolean;
|
|
26
|
+
/** Enable search (Cmd+F) — default: true */
|
|
27
|
+
search?: boolean;
|
|
28
|
+
/** Enable lint/diagnostics — default: false */
|
|
29
|
+
lint?: boolean;
|
|
30
|
+
/** Enable indent guides — default: true */
|
|
31
|
+
highlightIndentGuides?: boolean;
|
|
32
|
+
/** Vim keybinding mode — default: false */
|
|
33
|
+
vim?: boolean;
|
|
34
|
+
/** Emacs keybinding mode — default: false */
|
|
35
|
+
emacs?: boolean;
|
|
36
|
+
/** Tab size — default: 2 */
|
|
37
|
+
tabSize?: number;
|
|
38
|
+
/** Enable indent guides — default: true */
|
|
39
|
+
indentGuides?: boolean;
|
|
40
|
+
/** Enable line wrapping — default: false */
|
|
41
|
+
lineWrapping?: boolean;
|
|
42
|
+
/** Placeholder text when empty */
|
|
43
|
+
placeholder?: string;
|
|
44
|
+
/** Enable minimap — default: false */
|
|
45
|
+
minimap?: boolean;
|
|
46
|
+
/** Additional CodeMirror extensions */
|
|
47
|
+
extensions?: Extension[];
|
|
48
|
+
/** Called when value changes */
|
|
49
|
+
onChange?: (value: string) => void;
|
|
50
|
+
}
|
|
51
|
+
interface EditorInstance {
|
|
52
|
+
/** Current editor value — reactive signal */
|
|
53
|
+
value: Signal<string>;
|
|
54
|
+
/** Current language — reactive signal */
|
|
55
|
+
language: Signal<EditorLanguage>;
|
|
56
|
+
/** Current theme — reactive signal */
|
|
57
|
+
theme: Signal<EditorTheme>;
|
|
58
|
+
/** Read-only state — reactive signal */
|
|
59
|
+
readOnly: Signal<boolean>;
|
|
60
|
+
/** Cursor position — reactive */
|
|
61
|
+
cursor: Computed<{
|
|
62
|
+
line: number;
|
|
63
|
+
col: number;
|
|
64
|
+
}>;
|
|
65
|
+
/** Current selection — reactive */
|
|
66
|
+
selection: Computed<{
|
|
67
|
+
from: number;
|
|
68
|
+
to: number;
|
|
69
|
+
text: string;
|
|
70
|
+
}>;
|
|
71
|
+
/** Line count — reactive */
|
|
72
|
+
lineCount: Computed<number>;
|
|
73
|
+
/** Whether the editor has focus — reactive */
|
|
74
|
+
focused: Signal<boolean>;
|
|
75
|
+
/** The underlying CodeMirror EditorView — null until mounted */
|
|
76
|
+
view: Signal<EditorView | null>;
|
|
77
|
+
/** Focus the editor */
|
|
78
|
+
focus: () => void;
|
|
79
|
+
/** Insert text at cursor */
|
|
80
|
+
insert: (text: string) => void;
|
|
81
|
+
/** Replace selection */
|
|
82
|
+
replaceSelection: (text: string) => void;
|
|
83
|
+
/** Select a range */
|
|
84
|
+
select: (from: number, to: number) => void;
|
|
85
|
+
/** Select all */
|
|
86
|
+
selectAll: () => void;
|
|
87
|
+
/** Go to a specific line */
|
|
88
|
+
goToLine: (line: number) => void;
|
|
89
|
+
/** Undo */
|
|
90
|
+
undo: () => void;
|
|
91
|
+
/** Redo */
|
|
92
|
+
redo: () => void;
|
|
93
|
+
/** Fold all */
|
|
94
|
+
foldAll: () => void;
|
|
95
|
+
/** Unfold all */
|
|
96
|
+
unfoldAll: () => void;
|
|
97
|
+
/** Set diagnostics (lint errors/warnings) */
|
|
98
|
+
setDiagnostics: (diagnostics: Diagnostic[]) => void;
|
|
99
|
+
/** Clear all diagnostics */
|
|
100
|
+
clearDiagnostics: () => void;
|
|
101
|
+
/** Highlight a specific line (e.g., error line, current execution) */
|
|
102
|
+
highlightLine: (line: number, className: string) => void;
|
|
103
|
+
/** Clear all line highlights */
|
|
104
|
+
clearLineHighlights: () => void;
|
|
105
|
+
/** Set gutter markers (breakpoints, error icons) */
|
|
106
|
+
setGutterMarker: (line: number, marker: GutterMarker) => void;
|
|
107
|
+
/** Clear all gutter markers */
|
|
108
|
+
clearGutterMarkers: () => void;
|
|
109
|
+
/** Add a custom keybinding */
|
|
110
|
+
addKeybinding: (key: string, handler: () => boolean | undefined) => void;
|
|
111
|
+
/** Get the text of a specific line */
|
|
112
|
+
getLine: (line: number) => string;
|
|
113
|
+
/** Get word at cursor position */
|
|
114
|
+
getWordAtCursor: () => string;
|
|
115
|
+
/** Scroll to a specific position */
|
|
116
|
+
scrollTo: (pos: number) => void;
|
|
117
|
+
/** The editor configuration */
|
|
118
|
+
config: EditorConfig;
|
|
119
|
+
/** Dispose — clean up view and listeners */
|
|
120
|
+
dispose: () => void;
|
|
121
|
+
}
|
|
122
|
+
interface Diagnostic {
|
|
123
|
+
/** Start position (character offset) */
|
|
124
|
+
from: number;
|
|
125
|
+
/** End position (character offset) */
|
|
126
|
+
to: number;
|
|
127
|
+
/** Severity */
|
|
128
|
+
severity: 'error' | 'warning' | 'info' | 'hint';
|
|
129
|
+
/** Message */
|
|
130
|
+
message: string;
|
|
131
|
+
/** Optional source (e.g., "typescript", "eslint") */
|
|
132
|
+
source?: string;
|
|
133
|
+
}
|
|
134
|
+
interface GutterMarker {
|
|
135
|
+
/** CSS class for the marker element */
|
|
136
|
+
class?: string;
|
|
137
|
+
/** Text content (e.g., emoji or icon) */
|
|
138
|
+
text?: string;
|
|
139
|
+
/** Tooltip on hover */
|
|
140
|
+
title?: string;
|
|
141
|
+
}
|
|
142
|
+
interface CodeEditorProps {
|
|
143
|
+
instance: EditorInstance;
|
|
144
|
+
style?: string;
|
|
145
|
+
class?: string;
|
|
146
|
+
}
|
|
147
|
+
interface DiffEditorProps {
|
|
148
|
+
/** Original (left) content */
|
|
149
|
+
original: string | Signal<string>;
|
|
150
|
+
/** Modified (right) content */
|
|
151
|
+
modified: string | Signal<string>;
|
|
152
|
+
/** Language for both panels */
|
|
153
|
+
language?: EditorLanguage;
|
|
154
|
+
/** Theme */
|
|
155
|
+
theme?: EditorTheme;
|
|
156
|
+
/** Show inline diff instead of side-by-side — default: false */
|
|
157
|
+
inline?: boolean;
|
|
158
|
+
/** Read-only — default: true */
|
|
159
|
+
readOnly?: boolean;
|
|
160
|
+
style?: string;
|
|
161
|
+
class?: string;
|
|
162
|
+
}
|
|
163
|
+
interface Tab {
|
|
164
|
+
/** Unique tab identifier — defaults to name */
|
|
165
|
+
id?: string;
|
|
166
|
+
/** File name displayed in the tab */
|
|
167
|
+
name: string;
|
|
168
|
+
/** Language for syntax highlighting */
|
|
169
|
+
language?: EditorLanguage;
|
|
170
|
+
/** File content */
|
|
171
|
+
value: string;
|
|
172
|
+
/** Whether the tab has unsaved changes */
|
|
173
|
+
modified?: boolean;
|
|
174
|
+
/** Whether the tab can be closed — default: true */
|
|
175
|
+
closable?: boolean;
|
|
176
|
+
}
|
|
177
|
+
interface TabbedEditorConfig {
|
|
178
|
+
/** Initial tabs */
|
|
179
|
+
tabs?: Tab[];
|
|
180
|
+
/** Theme — 'light', 'dark', or custom */
|
|
181
|
+
theme?: EditorTheme;
|
|
182
|
+
/** Editor config applied to all tabs */
|
|
183
|
+
editorConfig?: Omit<EditorConfig, 'value' | 'language' | 'theme'>;
|
|
184
|
+
}
|
|
185
|
+
interface TabbedEditorInstance {
|
|
186
|
+
/** The underlying editor instance */
|
|
187
|
+
editor: EditorInstance;
|
|
188
|
+
/** All open tabs — reactive */
|
|
189
|
+
tabs: Signal<Tab[]>;
|
|
190
|
+
/** Active tab — reactive */
|
|
191
|
+
activeTab: Computed<Tab | null>;
|
|
192
|
+
/** Active tab ID — reactive */
|
|
193
|
+
activeTabId: Signal<string>;
|
|
194
|
+
/** Open a new tab (or switch to it if already open) */
|
|
195
|
+
openTab: (tab: Tab) => void;
|
|
196
|
+
/** Close a tab by ID */
|
|
197
|
+
closeTab: (id: string) => void;
|
|
198
|
+
/** Switch to a tab by ID */
|
|
199
|
+
switchTab: (id: string) => void;
|
|
200
|
+
/** Rename a tab */
|
|
201
|
+
renameTab: (id: string, name: string) => void;
|
|
202
|
+
/** Mark a tab as modified/saved */
|
|
203
|
+
setModified: (id: string, modified: boolean) => void;
|
|
204
|
+
/** Reorder tabs */
|
|
205
|
+
moveTab: (fromIndex: number, toIndex: number) => void;
|
|
206
|
+
/** Get tab by ID */
|
|
207
|
+
getTab: (id: string) => Tab | undefined;
|
|
208
|
+
/** Close all tabs */
|
|
209
|
+
closeAll: () => void;
|
|
210
|
+
/** Close all tabs except the given one */
|
|
211
|
+
closeOthers: (id: string) => void;
|
|
212
|
+
/** Dispose */
|
|
213
|
+
dispose: () => void;
|
|
214
|
+
}
|
|
215
|
+
interface TabbedEditorProps {
|
|
216
|
+
instance: TabbedEditorInstance;
|
|
217
|
+
style?: string;
|
|
218
|
+
class?: string;
|
|
219
|
+
}
|
|
220
|
+
//#endregion
|
|
221
|
+
//#region src/components/code-editor.d.ts
|
|
222
|
+
/**
|
|
223
|
+
* Code editor component — mounts a CodeMirror 6 instance.
|
|
224
|
+
*
|
|
225
|
+
* @example
|
|
226
|
+
* ```tsx
|
|
227
|
+
* const editor = createEditor({
|
|
228
|
+
* value: 'const x = 1',
|
|
229
|
+
* language: 'typescript',
|
|
230
|
+
* theme: 'dark',
|
|
231
|
+
* })
|
|
232
|
+
*
|
|
233
|
+
* <CodeEditor instance={editor} style="height: 400px" />
|
|
234
|
+
* ```
|
|
235
|
+
*/
|
|
236
|
+
declare function CodeEditor(props: CodeEditorProps): VNodeChild;
|
|
237
|
+
//#endregion
|
|
238
|
+
//#region src/components/diff-editor.d.ts
|
|
239
|
+
/**
|
|
240
|
+
* Side-by-side or inline diff editor using @codemirror/merge.
|
|
241
|
+
*
|
|
242
|
+
* @example
|
|
243
|
+
* ```tsx
|
|
244
|
+
* <DiffEditor
|
|
245
|
+
* original="const x = 1"
|
|
246
|
+
* modified="const x = 2"
|
|
247
|
+
* language="typescript"
|
|
248
|
+
* theme="dark"
|
|
249
|
+
* style="height: 400px"
|
|
250
|
+
* />
|
|
251
|
+
* ```
|
|
252
|
+
*/
|
|
253
|
+
declare function DiffEditor(props: DiffEditorProps): VNodeChild;
|
|
254
|
+
//#endregion
|
|
255
|
+
//#region src/components/tabbed-editor.d.ts
|
|
256
|
+
/**
|
|
257
|
+
* Tabbed code editor component — renders tab bar + editor.
|
|
258
|
+
* Headless styling — the tab bar is a plain div with button tabs.
|
|
259
|
+
* Consumers can style via CSS classes.
|
|
260
|
+
*
|
|
261
|
+
* @example
|
|
262
|
+
* ```tsx
|
|
263
|
+
* const editor = createTabbedEditor({
|
|
264
|
+
* tabs: [
|
|
265
|
+
* { name: 'index.ts', language: 'typescript', value: 'const x = 1' },
|
|
266
|
+
* { name: 'style.css', language: 'css', value: '.app { }' },
|
|
267
|
+
* ],
|
|
268
|
+
* theme: 'dark',
|
|
269
|
+
* })
|
|
270
|
+
*
|
|
271
|
+
* <TabbedEditor instance={editor} style="height: 500px" />
|
|
272
|
+
* ```
|
|
273
|
+
*/
|
|
274
|
+
declare function TabbedEditor(props: TabbedEditorProps): VNodeChild;
|
|
275
|
+
//#endregion
|
|
276
|
+
//#region src/editor.d.ts
|
|
277
|
+
/**
|
|
278
|
+
* Create a reactive code editor instance.
|
|
279
|
+
*
|
|
280
|
+
* The editor state (value, language, theme, cursor, selection) is backed
|
|
281
|
+
* by signals. The CodeMirror EditorView is created when mounted via
|
|
282
|
+
* the `<CodeEditor>` component.
|
|
283
|
+
*
|
|
284
|
+
* @param config - Editor configuration
|
|
285
|
+
* @returns A reactive EditorInstance
|
|
286
|
+
*
|
|
287
|
+
* @example
|
|
288
|
+
* ```tsx
|
|
289
|
+
* const editor = createEditor({
|
|
290
|
+
* value: 'const x = 1',
|
|
291
|
+
* language: 'typescript',
|
|
292
|
+
* theme: 'dark',
|
|
293
|
+
* })
|
|
294
|
+
*
|
|
295
|
+
* editor.value() // reactive
|
|
296
|
+
* editor.value.set('new') // updates editor
|
|
297
|
+
*
|
|
298
|
+
* <CodeEditor instance={editor} />
|
|
299
|
+
* ```
|
|
300
|
+
*/
|
|
301
|
+
declare function createEditor(config?: EditorConfig): EditorInstance;
|
|
302
|
+
//#endregion
|
|
303
|
+
//#region src/languages.d.ts
|
|
304
|
+
/**
|
|
305
|
+
* Load a language extension. Returns cached if already loaded.
|
|
306
|
+
* Language grammars are lazy-imported — zero cost until used.
|
|
307
|
+
*
|
|
308
|
+
* @example
|
|
309
|
+
* ```ts
|
|
310
|
+
* const ext = await loadLanguage('typescript')
|
|
311
|
+
* ```
|
|
312
|
+
*/
|
|
313
|
+
declare function loadLanguage(language: EditorLanguage): Promise<Extension>;
|
|
314
|
+
/**
|
|
315
|
+
* Get available languages.
|
|
316
|
+
*/
|
|
317
|
+
declare function getAvailableLanguages(): EditorLanguage[];
|
|
318
|
+
//#endregion
|
|
319
|
+
//#region src/minimap.d.ts
|
|
320
|
+
/**
|
|
321
|
+
* CodeMirror 6 minimap extension.
|
|
322
|
+
* Renders a canvas-based code overview on the right side of the editor.
|
|
323
|
+
*
|
|
324
|
+
* @example
|
|
325
|
+
* ```ts
|
|
326
|
+
* import { minimapExtension } from '@pyreon/code'
|
|
327
|
+
* // Add to editor extensions
|
|
328
|
+
* ```
|
|
329
|
+
*/
|
|
330
|
+
declare function minimapExtension(): Extension;
|
|
331
|
+
//#endregion
|
|
332
|
+
//#region src/themes.d.ts
|
|
333
|
+
/**
|
|
334
|
+
* Light theme — clean, minimal.
|
|
335
|
+
*/
|
|
336
|
+
declare const lightTheme: Extension;
|
|
337
|
+
/**
|
|
338
|
+
* Dark theme — VS Code inspired.
|
|
339
|
+
*/
|
|
340
|
+
declare const darkTheme: Extension;
|
|
341
|
+
/**
|
|
342
|
+
* Resolve a theme value to a CodeMirror extension.
|
|
343
|
+
*/
|
|
344
|
+
declare function resolveTheme(theme: EditorTheme): Extension;
|
|
345
|
+
//#endregion
|
|
346
|
+
export { CodeEditor, type CodeEditorProps, DiffEditor, type DiffEditorProps, type EditorConfig, type EditorInstance, type EditorLanguage, type EditorTheme, type GutterMarker, type Tab, TabbedEditor, type TabbedEditorConfig, type TabbedEditorInstance, type TabbedEditorProps, createEditor, darkTheme, getAvailableLanguages, lightTheme, loadLanguage, minimapExtension, resolveTheme };
|
|
347
|
+
//# sourceMappingURL=index2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index2.d.ts","names":[],"sources":["../../src/types.ts","../../src/components/code-editor.tsx","../../src/components/diff-editor.tsx","../../src/components/tabbed-editor.tsx","../../src/editor.ts","../../src/languages.ts","../../src/minimap.ts","../../src/themes.ts"],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@pyreon/code",
|
|
3
|
+
"version": "0.5.0",
|
|
4
|
+
"description": "Reactive code editor for Pyreon — CodeMirror 6 with signals, minimap, diff editor, lazy-loaded languages",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "https://github.com/pyreon/fundamentals.git",
|
|
9
|
+
"directory": "packages/code"
|
|
10
|
+
},
|
|
11
|
+
"homepage": "https://github.com/pyreon/fundamentals/tree/main/packages/code#readme",
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/pyreon/fundamentals/issues"
|
|
14
|
+
},
|
|
15
|
+
"publishConfig": {
|
|
16
|
+
"access": "public"
|
|
17
|
+
},
|
|
18
|
+
"files": [
|
|
19
|
+
"lib",
|
|
20
|
+
"src",
|
|
21
|
+
"README.md",
|
|
22
|
+
"LICENSE"
|
|
23
|
+
],
|
|
24
|
+
"type": "module",
|
|
25
|
+
"main": "./lib/index.js",
|
|
26
|
+
"module": "./lib/index.js",
|
|
27
|
+
"types": "./lib/types/index.d.ts",
|
|
28
|
+
"exports": {
|
|
29
|
+
".": {
|
|
30
|
+
"bun": "./src/index.ts",
|
|
31
|
+
"import": "./lib/index.js",
|
|
32
|
+
"types": "./lib/types/index.d.ts"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"sideEffects": false,
|
|
36
|
+
"scripts": {
|
|
37
|
+
"build": "vl_rolldown_build",
|
|
38
|
+
"dev": "vl_rolldown_build-watch",
|
|
39
|
+
"test": "vitest run",
|
|
40
|
+
"typecheck": "tsc --noEmit"
|
|
41
|
+
},
|
|
42
|
+
"dependencies": {
|
|
43
|
+
"@codemirror/autocomplete": "^6.20.1",
|
|
44
|
+
"@codemirror/commands": "^6.10.3",
|
|
45
|
+
"@codemirror/language": "^6.12.2",
|
|
46
|
+
"@codemirror/lint": "^6.9.5",
|
|
47
|
+
"@codemirror/merge": "^6.12.1",
|
|
48
|
+
"@codemirror/search": "^6.6.0",
|
|
49
|
+
"@codemirror/state": "^6.6.0",
|
|
50
|
+
"@codemirror/view": "^6.40.0",
|
|
51
|
+
"codemirror": "^6.0.2"
|
|
52
|
+
},
|
|
53
|
+
"optionalDependencies": {
|
|
54
|
+
"@codemirror/lang-javascript": "^6.2.5",
|
|
55
|
+
"@codemirror/lang-html": "^6.4.11",
|
|
56
|
+
"@codemirror/lang-css": "^6.3.1",
|
|
57
|
+
"@codemirror/lang-json": "^6.0.2",
|
|
58
|
+
"@codemirror/lang-python": "^6.2.1",
|
|
59
|
+
"@codemirror/lang-markdown": "^6.5.0",
|
|
60
|
+
"@codemirror/lang-rust": "^6.0.2",
|
|
61
|
+
"@codemirror/lang-sql": "^6.10.0",
|
|
62
|
+
"@codemirror/lang-xml": "^6.1.0",
|
|
63
|
+
"@codemirror/lang-yaml": "^6.1.2",
|
|
64
|
+
"@codemirror/lang-cpp": "^6.0.2",
|
|
65
|
+
"@codemirror/lang-java": "^6.0.1",
|
|
66
|
+
"@codemirror/lang-go": "^6.0.1",
|
|
67
|
+
"@codemirror/lang-php": "^6.0.1"
|
|
68
|
+
},
|
|
69
|
+
"peerDependencies": {
|
|
70
|
+
"@pyreon/core": ">=0.5.0 <1.0.0",
|
|
71
|
+
"@pyreon/reactivity": ">=0.5.0 <1.0.0"
|
|
72
|
+
},
|
|
73
|
+
"devDependencies": {
|
|
74
|
+
"@happy-dom/global-registrator": "^20.8.3",
|
|
75
|
+
"@pyreon/core": ">=0.5.0 <1.0.0",
|
|
76
|
+
"@pyreon/reactivity": ">=0.5.0 <1.0.0",
|
|
77
|
+
"@vitus-labs/tools-lint": "^1.11.0"
|
|
78
|
+
}
|
|
79
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { VNodeChild } from '@pyreon/core'
|
|
2
|
+
import type { CodeEditorProps, EditorInstance } from '../types'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Code editor component — mounts a CodeMirror 6 instance.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* const editor = createEditor({
|
|
10
|
+
* value: 'const x = 1',
|
|
11
|
+
* language: 'typescript',
|
|
12
|
+
* theme: 'dark',
|
|
13
|
+
* })
|
|
14
|
+
*
|
|
15
|
+
* <CodeEditor instance={editor} style="height: 400px" />
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export function CodeEditor(props: CodeEditorProps): VNodeChild {
|
|
19
|
+
const { instance } = props
|
|
20
|
+
|
|
21
|
+
const containerRef = (el: Element | null) => {
|
|
22
|
+
if (!el) return
|
|
23
|
+
|
|
24
|
+
// Mount the editor into the container
|
|
25
|
+
const mountable = instance as EditorInstance & {
|
|
26
|
+
_mount?: (parent: HTMLElement) => Promise<void>
|
|
27
|
+
}
|
|
28
|
+
if (mountable._mount) {
|
|
29
|
+
mountable._mount(el as HTMLElement)
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const baseStyle = `width: 100%; height: 100%; overflow: hidden; ${props.style ?? ''}`
|
|
34
|
+
|
|
35
|
+
return (
|
|
36
|
+
<div
|
|
37
|
+
ref={containerRef}
|
|
38
|
+
class={`pyreon-code-editor ${props.class ?? ''}`}
|
|
39
|
+
style={baseStyle}
|
|
40
|
+
/>
|
|
41
|
+
)
|
|
42
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { defaultHighlightStyle, syntaxHighlighting } from '@codemirror/language'
|
|
2
|
+
import { MergeView } from '@codemirror/merge'
|
|
3
|
+
import { EditorState, type Extension } from '@codemirror/state'
|
|
4
|
+
import { EditorView } from '@codemirror/view'
|
|
5
|
+
import type { VNodeChild } from '@pyreon/core'
|
|
6
|
+
import type { Signal } from '@pyreon/reactivity'
|
|
7
|
+
import { loadLanguage } from '../languages'
|
|
8
|
+
import { resolveTheme } from '../themes'
|
|
9
|
+
import type { DiffEditorProps } from '../types'
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Side-by-side or inline diff editor using @codemirror/merge.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```tsx
|
|
16
|
+
* <DiffEditor
|
|
17
|
+
* original="const x = 1"
|
|
18
|
+
* modified="const x = 2"
|
|
19
|
+
* language="typescript"
|
|
20
|
+
* theme="dark"
|
|
21
|
+
* style="height: 400px"
|
|
22
|
+
* />
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export function DiffEditor(props: DiffEditorProps): VNodeChild {
|
|
26
|
+
const {
|
|
27
|
+
original,
|
|
28
|
+
modified,
|
|
29
|
+
language = 'plain',
|
|
30
|
+
theme = 'light',
|
|
31
|
+
readOnly = true,
|
|
32
|
+
inline = false,
|
|
33
|
+
} = props
|
|
34
|
+
|
|
35
|
+
const containerRef = async (el: Element | null) => {
|
|
36
|
+
if (!el) return
|
|
37
|
+
|
|
38
|
+
const langExt = await loadLanguage(language)
|
|
39
|
+
const themeExt = resolveTheme(theme)
|
|
40
|
+
|
|
41
|
+
const extensions: Extension[] = [
|
|
42
|
+
syntaxHighlighting(defaultHighlightStyle, { fallback: true }),
|
|
43
|
+
langExt,
|
|
44
|
+
themeExt,
|
|
45
|
+
EditorView.editable.of(!readOnly),
|
|
46
|
+
EditorState.readOnly.of(readOnly),
|
|
47
|
+
]
|
|
48
|
+
|
|
49
|
+
const originalText =
|
|
50
|
+
typeof original === 'string' ? original : (original as Signal<string>)()
|
|
51
|
+
const modifiedText =
|
|
52
|
+
typeof modified === 'string' ? modified : (modified as Signal<string>)()
|
|
53
|
+
|
|
54
|
+
// Clear previous content
|
|
55
|
+
;(el as HTMLElement).innerHTML = ''
|
|
56
|
+
|
|
57
|
+
if (inline) {
|
|
58
|
+
// Unified/inline diff view
|
|
59
|
+
new MergeView({
|
|
60
|
+
a: {
|
|
61
|
+
doc: originalText,
|
|
62
|
+
extensions,
|
|
63
|
+
},
|
|
64
|
+
b: {
|
|
65
|
+
doc: modifiedText,
|
|
66
|
+
extensions,
|
|
67
|
+
},
|
|
68
|
+
parent: el as HTMLElement,
|
|
69
|
+
collapseUnchanged: { margin: 3, minSize: 4 },
|
|
70
|
+
})
|
|
71
|
+
} else {
|
|
72
|
+
// Side-by-side diff
|
|
73
|
+
new MergeView({
|
|
74
|
+
a: {
|
|
75
|
+
doc: originalText,
|
|
76
|
+
extensions,
|
|
77
|
+
},
|
|
78
|
+
b: {
|
|
79
|
+
doc: modifiedText,
|
|
80
|
+
extensions,
|
|
81
|
+
},
|
|
82
|
+
parent: el as HTMLElement,
|
|
83
|
+
collapseUnchanged: { margin: 3, minSize: 4 },
|
|
84
|
+
})
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
const baseStyle = `width: 100%; height: 100%; overflow: hidden; ${props.style ?? ''}`
|
|
89
|
+
|
|
90
|
+
return (
|
|
91
|
+
<div
|
|
92
|
+
ref={containerRef}
|
|
93
|
+
class={`pyreon-diff-editor ${props.class ?? ''}`}
|
|
94
|
+
style={baseStyle}
|
|
95
|
+
/>
|
|
96
|
+
)
|
|
97
|
+
}
|