@dodona/papyros 3.0.2 → 4.0.0-beta.2
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 +133 -72
- package/dist/Components.d.ts +4 -0
- package/dist/Components.js +5 -0
- package/dist/Components.js.map +1 -0
- package/dist/Papyros.d.ts +18 -127
- package/dist/Papyros.js +39 -211
- package/dist/Papyros.js.map +1 -1
- package/dist/{Backend.d.ts → backend/Backend.d.ts} +3 -12
- package/dist/{Backend.js → backend/Backend.js} +4 -17
- package/dist/backend/Backend.js.map +1 -0
- package/dist/{workers → backend/workers}/javascript/JavaScriptWorker.js +1 -1
- package/dist/backend/workers/javascript/JavaScriptWorker.js.map +1 -0
- package/dist/backend/workers/javascript/worker.js.map +1 -0
- package/dist/{workers → backend/workers}/python/PythonWorker.d.ts +2 -2
- package/dist/{workers → backend/workers}/python/PythonWorker.js +2 -2
- package/dist/backend/workers/python/PythonWorker.js.map +1 -0
- package/dist/backend/workers/python/python_package.tar.gz.load_by_url +0 -0
- package/dist/backend/workers/python/worker.js.map +1 -0
- package/dist/communication/BackendEvent.js.map +1 -0
- package/dist/{BackendEventQueue.d.ts → communication/BackendEventQueue.d.ts} +1 -36
- package/dist/{BackendEventQueue.js → communication/BackendEventQueue.js} +2 -45
- package/dist/communication/BackendEventQueue.js.map +1 -0
- package/dist/{BackendManager.d.ts → communication/BackendManager.d.ts} +2 -2
- package/dist/{BackendManager.js → communication/BackendManager.js} +4 -4
- package/dist/communication/BackendManager.js.map +1 -0
- package/dist/communication/InputServiceWorker.js +37 -0
- package/dist/communication/InputServiceWorker.js.map +1 -0
- package/dist/communication/InputWorker.js.map +1 -0
- package/dist/frontend/components/CodeRunner.d.ts +9 -0
- package/dist/frontend/components/CodeRunner.js +60 -0
- package/dist/frontend/components/CodeRunner.js.map +1 -0
- package/dist/frontend/components/Debugger.d.ts +7 -0
- package/dist/frontend/components/Debugger.js +62 -0
- package/dist/frontend/components/Debugger.js.map +1 -0
- package/dist/frontend/components/Input.d.ts +17 -0
- package/dist/frontend/components/Input.js +73 -0
- package/dist/frontend/components/Input.js.map +1 -0
- package/dist/frontend/components/Output.d.ts +14 -0
- package/dist/frontend/components/Output.js +154 -0
- package/dist/frontend/components/Output.js.map +1 -0
- package/dist/frontend/components/PapyrosElement.d.ts +8 -0
- package/dist/frontend/components/PapyrosElement.js +24 -0
- package/dist/frontend/components/PapyrosElement.js.map +1 -0
- package/dist/frontend/components/app/App.d.ts +24 -0
- package/dist/frontend/components/app/App.js +204 -0
- package/dist/frontend/components/app/App.js.map +1 -0
- package/dist/frontend/components/app/ExamplePicker.d.ts +7 -0
- package/dist/frontend/components/app/ExamplePicker.js +35 -0
- package/dist/frontend/components/app/ExamplePicker.js.map +1 -0
- package/dist/frontend/components/app/LanguagePicker.d.ts +7 -0
- package/dist/frontend/components/app/LanguagePicker.js +35 -0
- package/dist/frontend/components/app/LanguagePicker.js.map +1 -0
- package/dist/frontend/components/app/ProgrammingLanguagePicker.d.ts +7 -0
- package/dist/frontend/components/app/ProgrammingLanguagePicker.js +39 -0
- package/dist/frontend/components/app/ProgrammingLanguagePicker.js.map +1 -0
- package/dist/frontend/components/app/examples/JavaScriptExamples.js.map +1 -0
- package/dist/frontend/components/app/examples/PythonExamples.js.map +1 -0
- package/dist/frontend/components/app/themes/ThemePicker.d.ts +11 -0
- package/dist/frontend/components/app/themes/ThemePicker.js +47 -0
- package/dist/frontend/components/app/themes/ThemePicker.js.map +1 -0
- package/dist/frontend/components/app/themes/ThemedButton.d.ts +9 -0
- package/dist/frontend/components/app/themes/ThemedButton.js +43 -0
- package/dist/frontend/components/app/themes/ThemedButton.js.map +1 -0
- package/dist/frontend/components/code_mirror/BatchInputEditor.d.ts +8 -0
- package/dist/frontend/components/code_mirror/BatchInputEditor.js +54 -0
- package/dist/frontend/components/code_mirror/BatchInputEditor.js.map +1 -0
- package/dist/frontend/components/code_mirror/CodeEditor.d.ts +24 -0
- package/dist/frontend/components/code_mirror/CodeEditor.js +206 -0
- package/dist/frontend/components/code_mirror/CodeEditor.js.map +1 -0
- package/dist/frontend/components/code_mirror/CodeMirrorEditor.d.ts +20 -0
- package/dist/frontend/components/code_mirror/CodeMirrorEditor.js +99 -0
- package/dist/frontend/components/code_mirror/CodeMirrorEditor.js.map +1 -0
- package/dist/frontend/components/code_mirror/Extensions.d.ts +15 -0
- package/dist/frontend/components/code_mirror/Extensions.js +169 -0
- package/dist/frontend/components/code_mirror/Extensions.js.map +1 -0
- package/dist/frontend/components/code_mirror/MaterialTheme.d.ts +5 -0
- package/dist/frontend/components/code_mirror/MaterialTheme.js +109 -0
- package/dist/frontend/components/code_mirror/MaterialTheme.js.map +1 -0
- package/dist/frontend/components/code_runner/ButtonLint.d.ts +9 -0
- package/dist/frontend/components/code_runner/ButtonLint.js +76 -0
- package/dist/frontend/components/code_runner/ButtonLint.js.map +1 -0
- package/dist/frontend/components/code_runner/Code.d.ts +7 -0
- package/dist/frontend/components/code_runner/Code.js +46 -0
- package/dist/frontend/components/code_runner/Code.js.map +1 -0
- package/dist/frontend/components/code_runner/RunState.d.ts +7 -0
- package/dist/frontend/components/code_runner/RunState.js +41 -0
- package/dist/frontend/components/code_runner/RunState.js.map +1 -0
- package/dist/frontend/components/input/BatchInput.d.ts +19 -0
- package/dist/frontend/components/input/BatchInput.js +92 -0
- package/dist/frontend/components/input/BatchInput.js.map +1 -0
- package/dist/frontend/components/input/InteractiveInput.d.ts +13 -0
- package/dist/frontend/components/input/InteractiveInput.js +73 -0
- package/dist/frontend/components/input/InteractiveInput.js.map +1 -0
- package/dist/frontend/state/Constants.d.ts +38 -0
- package/dist/frontend/state/Constants.js +108 -0
- package/dist/frontend/state/Constants.js.map +1 -0
- package/dist/frontend/state/Debugger.d.ts +23 -0
- package/dist/frontend/state/Debugger.js +80 -0
- package/dist/frontend/state/Debugger.js.map +1 -0
- package/dist/frontend/state/Examples.d.ts +11 -0
- package/dist/frontend/state/Examples.js +36 -0
- package/dist/frontend/state/Examples.js.map +1 -0
- package/dist/frontend/state/I18n.d.ts +16 -0
- package/dist/frontend/state/I18n.js +75 -0
- package/dist/frontend/state/I18n.js.map +1 -0
- package/dist/frontend/state/InputOutput.d.ts +55 -0
- package/dist/frontend/state/InputOutput.js +93 -0
- package/dist/frontend/state/InputOutput.js.map +1 -0
- package/dist/frontend/state/Runner.d.ts +118 -0
- package/dist/frontend/state/Runner.js +334 -0
- package/dist/frontend/state/Runner.js.map +1 -0
- package/dist/frontend/state/Test.d.ts +11 -0
- package/dist/frontend/state/Test.js +59 -0
- package/dist/frontend/state/Test.js.map +1 -0
- package/dist/frontend/state/Translations.d.ts +178 -0
- package/dist/frontend/state/Translations.js +188 -0
- package/dist/frontend/state/Translations.js.map +1 -0
- package/dist/frontend/state/themes/blue-dark.d.ts +2 -0
- package/dist/frontend/state/themes/blue-dark.js +55 -0
- package/dist/frontend/state/themes/blue-dark.js.map +1 -0
- package/dist/frontend/state/themes/blue-light.d.ts +2 -0
- package/dist/frontend/state/themes/blue-light.js +55 -0
- package/dist/frontend/state/themes/blue-light.js.map +1 -0
- package/dist/frontend/state/themes/green-dark.d.ts +2 -0
- package/dist/frontend/state/themes/green-dark.js +55 -0
- package/dist/frontend/state/themes/green-dark.js.map +1 -0
- package/dist/frontend/state/themes/green-light.d.ts +2 -0
- package/dist/frontend/state/themes/green-light.js +55 -0
- package/dist/frontend/state/themes/green-light.js.map +1 -0
- package/dist/frontend/state/themes/red-dark.d.ts +2 -0
- package/dist/frontend/state/themes/red-dark.js +55 -0
- package/dist/frontend/state/themes/red-dark.js.map +1 -0
- package/dist/frontend/state/themes/red-light.d.ts +2 -0
- package/dist/frontend/state/themes/red-light.js +55 -0
- package/dist/frontend/state/themes/red-light.js.map +1 -0
- package/dist/util/Util.d.ts +1 -4
- package/dist/util/Util.js +7 -8
- package/dist/util/Util.js.map +1 -1
- package/package.json +13 -21
- package/dist/App.d.ts +0 -1
- package/dist/App.js +0 -76
- package/dist/App.js.map +0 -1
- package/dist/Backend.js.map +0 -1
- package/dist/BackendEvent.js.map +0 -1
- package/dist/BackendEventQueue.js.map +0 -1
- package/dist/BackendManager.js.map +0 -1
- package/dist/CodeRunner.d.ts +0 -188
- package/dist/CodeRunner.js +0 -548
- package/dist/CodeRunner.js.map +0 -1
- package/dist/Constants.d.ts +0 -31
- package/dist/Constants.js +0 -36
- package/dist/Constants.js.map +0 -1
- package/dist/Debugger.d.ts +0 -18
- package/dist/Debugger.js +0 -86
- package/dist/Debugger.js.map +0 -1
- package/dist/InputManager.d.ts +0 -38
- package/dist/InputManager.js +0 -101
- package/dist/InputManager.js.map +0 -1
- package/dist/InputServiceWorker.js.map +0 -1
- package/dist/Library.d.ts +0 -12
- package/dist/Library.js +0 -9
- package/dist/Library.js.map +0 -1
- package/dist/OutputManager.d.ts +0 -90
- package/dist/OutputManager.js +0 -172
- package/dist/OutputManager.js.map +0 -1
- package/dist/Papyros.css +0 -657
- package/dist/Translations.d.ts +0 -180
- package/dist/Translations.js +0 -191
- package/dist/Translations.js.map +0 -1
- package/dist/editor/BatchInputEditor.d.ts +0 -41
- package/dist/editor/BatchInputEditor.js +0 -80
- package/dist/editor/BatchInputEditor.js.map +0 -1
- package/dist/editor/CodeEditor.d.ts +0 -81
- package/dist/editor/CodeEditor.js +0 -213
- package/dist/editor/CodeEditor.js.map +0 -1
- package/dist/editor/CodeMirrorEditor.d.ts +0 -133
- package/dist/editor/CodeMirrorEditor.js +0 -169
- package/dist/editor/CodeMirrorEditor.js.map +0 -1
- package/dist/editor/DarkTheme.d.ts +0 -1
- package/dist/editor/DarkTheme.js +0 -72
- package/dist/editor/DarkTheme.js.map +0 -1
- package/dist/editor/DebugExtension.d.ts +0 -11
- package/dist/editor/DebugExtension.js +0 -70
- package/dist/editor/DebugExtension.js.map +0 -1
- package/dist/editor/Gutters.d.ts +0 -109
- package/dist/editor/Gutters.js +0 -201
- package/dist/editor/Gutters.js.map +0 -1
- package/dist/editor/LineEffectExtension.d.ts +0 -13
- package/dist/editor/LineEffectExtension.js +0 -48
- package/dist/editor/LineEffectExtension.js.map +0 -1
- package/dist/editor/TestCodeExtension.d.ts +0 -21
- package/dist/editor/TestCodeExtension.js +0 -134
- package/dist/editor/TestCodeExtension.js.map +0 -1
- package/dist/examples/Examples.d.ts +0 -6
- package/dist/examples/Examples.js +0 -23
- package/dist/examples/Examples.js.map +0 -1
- package/dist/examples/JavaScriptExamples.js.map +0 -1
- package/dist/examples/PythonExamples.js.map +0 -1
- package/dist/input/BatchInputHandler.d.ts +0 -55
- package/dist/input/BatchInputHandler.js +0 -131
- package/dist/input/BatchInputHandler.js.map +0 -1
- package/dist/input/InteractiveInputHandler.d.ts +0 -27
- package/dist/input/InteractiveInputHandler.js +0 -89
- package/dist/input/InteractiveInputHandler.js.map +0 -1
- package/dist/input/UserInputHandler.d.ts +0 -68
- package/dist/input/UserInputHandler.js +0 -39
- package/dist/input/UserInputHandler.js.map +0 -1
- package/dist/util/HTMLShapes.d.ts +0 -15
- package/dist/util/HTMLShapes.js +0 -25
- package/dist/util/HTMLShapes.js.map +0 -1
- package/dist/util/Rendering.d.ts +0 -120
- package/dist/util/Rendering.js +0 -142
- package/dist/util/Rendering.js.map +0 -1
- package/dist/workers/input/InputWorker.js.map +0 -1
- package/dist/workers/javascript/JavaScriptWorker.js.map +0 -1
- package/dist/workers/javascript/worker.js.map +0 -1
- package/dist/workers/python/PythonWorker.js.map +0 -1
- package/dist/workers/python/python_package.tar.gz.load_by_url +0 -0
- package/dist/workers/python/worker.js.map +0 -1
- /package/dist/{workers → backend/workers}/javascript/JavaScriptWorker.d.ts +0 -0
- /package/dist/{workers → backend/workers}/javascript/worker.d.ts +0 -0
- /package/dist/{workers → backend/workers}/javascript/worker.js +0 -0
- /package/dist/{workers → backend/workers}/python/worker.d.ts +0 -0
- /package/dist/{workers → backend/workers}/python/worker.js +0 -0
- /package/dist/{BackendEvent.d.ts → communication/BackendEvent.d.ts} +0 -0
- /package/dist/{BackendEvent.js → communication/BackendEvent.js} +0 -0
- /package/dist/{InputServiceWorker.d.ts → communication/InputServiceWorker.d.ts} +0 -0
- /package/dist/{workers/input → communication}/InputWorker.d.ts +0 -0
- /package/dist/{workers/input → communication}/InputWorker.js +0 -0
- /package/dist/{examples → frontend/components/app/examples}/JavaScriptExamples.d.ts +0 -0
- /package/dist/{examples → frontend/components/app/examples}/JavaScriptExamples.js +0 -0
- /package/dist/{examples → frontend/components/app/examples}/PythonExamples.d.ts +0 -0
- /package/dist/{examples → frontend/components/app/examples}/PythonExamples.js +0 -0
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { Decoration, EditorView, gutterLineClass, GutterMarker } from "@codemirror/view";
|
|
2
|
-
import { LineEffectExtension } from "./LineEffectExtension";
|
|
3
|
-
import { DebugLineGutter } from "./Gutters";
|
|
4
|
-
import { RangeSet, StateEffect, StateField } from "@codemirror/state";
|
|
5
|
-
import { BackendManager } from "../BackendManager";
|
|
6
|
-
import { BackendEventType } from "../BackendEvent";
|
|
7
|
-
const activeLineDecoration = Decoration.line({ class: "cm-activeLine" });
|
|
8
|
-
const activeLineGutterMarker = new class extends GutterMarker {
|
|
9
|
-
constructor() {
|
|
10
|
-
super(...arguments);
|
|
11
|
-
this.elementClass = "cm-activeLineGutter";
|
|
12
|
-
}
|
|
13
|
-
};
|
|
14
|
-
const markLine = StateEffect.define();
|
|
15
|
-
const markedLine = StateField.define({
|
|
16
|
-
create: () => undefined,
|
|
17
|
-
update(value, tr) {
|
|
18
|
-
for (const effect of tr.effects) {
|
|
19
|
-
if (effect.is(markLine)) {
|
|
20
|
-
return effect.value;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
return value;
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
const markedLineGutterHighlighter = gutterLineClass.compute([markedLine], state => {
|
|
27
|
-
if (state.field(markedLine) === undefined) {
|
|
28
|
-
return RangeSet.empty;
|
|
29
|
-
}
|
|
30
|
-
const linePos = state.doc.line(state.field(markedLine)).from;
|
|
31
|
-
return RangeSet.of([activeLineGutterMarker.range(linePos)]);
|
|
32
|
-
});
|
|
33
|
-
export class DebugExtension {
|
|
34
|
-
constructor(view) {
|
|
35
|
-
this.view = view;
|
|
36
|
-
this.gutter = new DebugLineGutter();
|
|
37
|
-
this.lineEffect = new LineEffectExtension(view);
|
|
38
|
-
BackendManager.subscribe(BackendEventType.FrameChange, e => {
|
|
39
|
-
const line = e.data.line;
|
|
40
|
-
this.markLine(line);
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
reset() {
|
|
44
|
-
this.markLine(1);
|
|
45
|
-
}
|
|
46
|
-
markLine(lineNr) {
|
|
47
|
-
if (lineNr === undefined) {
|
|
48
|
-
this.gutter.markLine(this.view, lineNr);
|
|
49
|
-
this.lineEffect.set([]);
|
|
50
|
-
this.view.dispatch({ effects: [markLine.of(undefined)] });
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
this.gutter.markLine(this.view, lineNr);
|
|
54
|
-
this.lineEffect.set([activeLineDecoration.range(this.view.state.doc.line(lineNr).from)]);
|
|
55
|
-
this.view.dispatch({ effects: [
|
|
56
|
-
markLine.of(lineNr),
|
|
57
|
-
EditorView.scrollIntoView(this.view.state.doc.line(lineNr).from)
|
|
58
|
-
] });
|
|
59
|
-
}
|
|
60
|
-
toExtension() {
|
|
61
|
-
return [
|
|
62
|
-
this.lineEffect.toExtension(),
|
|
63
|
-
this.gutter.toExtension(),
|
|
64
|
-
markedLine,
|
|
65
|
-
markedLineGutterHighlighter,
|
|
66
|
-
EditorView.editable.of(false)
|
|
67
|
-
];
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
//# sourceMappingURL=DebugExtension.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DebugExtension.js","sourceRoot":"","sources":["../../src/editor/DebugExtension.ts"],"names":[],"mappings":"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"}
|
package/dist/editor/Gutters.d.ts
DELETED
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import { StateEffectType, StateField } from "@codemirror/state";
|
|
2
|
-
import { Extension } from "@codemirror/state";
|
|
3
|
-
import { GutterMarker } from "@codemirror/view";
|
|
4
|
-
import { EditorView } from "@codemirror/view";
|
|
5
|
-
/**
|
|
6
|
-
* Data used in Gutter elements
|
|
7
|
-
*/
|
|
8
|
-
export interface GutterInfo {
|
|
9
|
-
/**
|
|
10
|
-
* The number of the line (1-based)
|
|
11
|
-
*/
|
|
12
|
-
lineNr: number;
|
|
13
|
-
/**
|
|
14
|
-
* Whether the Gutter element should be shown
|
|
15
|
-
*/
|
|
16
|
-
on: boolean;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Configuration for Gutters
|
|
20
|
-
*/
|
|
21
|
-
export interface IGutterConfig<Info extends GutterInfo> {
|
|
22
|
-
/**
|
|
23
|
-
* Name of this Gutter
|
|
24
|
-
*/
|
|
25
|
-
name: string;
|
|
26
|
-
/**
|
|
27
|
-
* HTML class names for the marker icons
|
|
28
|
-
*/
|
|
29
|
-
markerClasses?: string;
|
|
30
|
-
/**
|
|
31
|
-
* Handler for when a Gutter element is clicked
|
|
32
|
-
*/
|
|
33
|
-
onClick?: (view: EditorView, info: Info) => void;
|
|
34
|
-
/**
|
|
35
|
-
* Extra extensions to use for the Gutters
|
|
36
|
-
*/
|
|
37
|
-
extraExtensions?: Extension;
|
|
38
|
-
}
|
|
39
|
-
export declare abstract class Gutters<Info extends GutterInfo = GutterInfo, Config extends IGutterConfig<Info> = IGutterConfig<Info>> {
|
|
40
|
-
/**
|
|
41
|
-
* Config used to initialize the Gutters
|
|
42
|
-
*/
|
|
43
|
-
protected config: Config;
|
|
44
|
-
/**
|
|
45
|
-
* Effect to signal changes in the Gutters
|
|
46
|
-
*/
|
|
47
|
-
protected effect: StateEffectType<Info>;
|
|
48
|
-
/**
|
|
49
|
-
* Current state of the Gutters
|
|
50
|
-
* Consists of a mapping for line numbers to Info objects
|
|
51
|
-
*/
|
|
52
|
-
protected state: StateField<Map<number, Info>>;
|
|
53
|
-
constructor(config: Config);
|
|
54
|
-
/**
|
|
55
|
-
* Render a marker with the given info
|
|
56
|
-
* @param {Info} info Info used to render the marker
|
|
57
|
-
* Will only be called when info.on is True
|
|
58
|
-
*/
|
|
59
|
-
protected abstract marker(info: Info): GutterMarker;
|
|
60
|
-
private applyClasses;
|
|
61
|
-
hasMarker(view: EditorView, lineNr: number): boolean;
|
|
62
|
-
/**
|
|
63
|
-
* Set a marker with the given info
|
|
64
|
-
* @param {EditorView} view View in which the Gutters live
|
|
65
|
-
* @param {Info} info Info used to render the marker
|
|
66
|
-
*/
|
|
67
|
-
setMarker(view: EditorView, info: Info): void;
|
|
68
|
-
/**
|
|
69
|
-
* @param {EditorView} view The view in which the Gutters live
|
|
70
|
-
* @return {Set<number>} The 1-based line numbers with a breakpoint
|
|
71
|
-
*/
|
|
72
|
-
getMarkedLines(view: EditorView): Set<number>;
|
|
73
|
-
/**
|
|
74
|
-
* @return {Extension} The Gutters as a CodeMirror Extension
|
|
75
|
-
*/
|
|
76
|
-
toExtension(): Extension;
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Gutters to show and allow toggling of breakpoints
|
|
80
|
-
*/
|
|
81
|
-
export declare class BreakpointsGutter extends Gutters {
|
|
82
|
-
constructor();
|
|
83
|
-
protected marker(): GutterMarker;
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Extra data used to represent input gutters
|
|
87
|
-
*/
|
|
88
|
-
export interface UsedInputGutterInfo extends GutterInfo {
|
|
89
|
-
/**
|
|
90
|
-
* Text value to display when hovering over the Gutter element
|
|
91
|
-
*/
|
|
92
|
-
title: string;
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Gutters to show a checkmark for used input
|
|
96
|
-
*/
|
|
97
|
-
export declare class UsedInputGutters extends Gutters<UsedInputGutterInfo> {
|
|
98
|
-
constructor();
|
|
99
|
-
protected marker(info: UsedInputGutterInfo): GutterMarker;
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* shows the debugged line
|
|
103
|
-
*/
|
|
104
|
-
export declare class DebugLineGutter extends Gutters<GutterInfo> {
|
|
105
|
-
private activeLine;
|
|
106
|
-
constructor();
|
|
107
|
-
protected marker(): GutterMarker;
|
|
108
|
-
markLine(view: EditorView, lineNr: number | undefined): void;
|
|
109
|
-
}
|
package/dist/editor/Gutters.js
DELETED
|
@@ -1,201 +0,0 @@
|
|
|
1
|
-
import { StateField } from "@codemirror/state";
|
|
2
|
-
import { StateEffect } from "@codemirror/state";
|
|
3
|
-
import { gutter, GutterMarker } from "@codemirror/view";
|
|
4
|
-
import { EditorView } from "@codemirror/view";
|
|
5
|
-
import { appendClasses } from "../util/Rendering";
|
|
6
|
-
/**
|
|
7
|
-
* Helper class to create markers in the gutter
|
|
8
|
-
*/
|
|
9
|
-
class SimpleMarker extends GutterMarker {
|
|
10
|
-
constructor(
|
|
11
|
-
// Function to create the DOM element
|
|
12
|
-
createMarker) {
|
|
13
|
-
super();
|
|
14
|
-
this.createMarker = createMarker;
|
|
15
|
-
}
|
|
16
|
-
toDOM() {
|
|
17
|
-
return this.createMarker();
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
export class Gutters {
|
|
21
|
-
constructor(config) {
|
|
22
|
-
this.config = config;
|
|
23
|
-
this.effect = StateEffect.define();
|
|
24
|
-
this.state = StateField.define({
|
|
25
|
-
create: () => {
|
|
26
|
-
return new Map();
|
|
27
|
-
},
|
|
28
|
-
update: (current, transaction) => {
|
|
29
|
-
const updatedMap = new Map(current);
|
|
30
|
-
for (const e of transaction.effects) {
|
|
31
|
-
if (e.is(this.effect)) {
|
|
32
|
-
updatedMap.set(e.value.lineNr, e.value);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
return updatedMap;
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
applyClasses(marker) {
|
|
40
|
-
const classes = { classNames: this.config.markerClasses };
|
|
41
|
-
appendClasses(classes, "_tw-px-1 papyros-gutter-marker");
|
|
42
|
-
marker.elementClass += classes.classNames;
|
|
43
|
-
return marker;
|
|
44
|
-
}
|
|
45
|
-
hasMarker(view, lineNr) {
|
|
46
|
-
const guttersInfo = view.state.field(this.state);
|
|
47
|
-
return guttersInfo.has(lineNr) && guttersInfo.get(lineNr).on;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Set a marker with the given info
|
|
51
|
-
* @param {EditorView} view View in which the Gutters live
|
|
52
|
-
* @param {Info} info Info used to render the marker
|
|
53
|
-
*/
|
|
54
|
-
setMarker(view, info) {
|
|
55
|
-
if (this.hasMarker(view, info.lineNr) !== info.on) {
|
|
56
|
-
view.dispatch({
|
|
57
|
-
effects: this.effect.of(info)
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* @param {EditorView} view The view in which the Gutters live
|
|
63
|
-
* @return {Set<number>} The 1-based line numbers with a breakpoint
|
|
64
|
-
*/
|
|
65
|
-
getMarkedLines(view) {
|
|
66
|
-
const markedLines = new Set();
|
|
67
|
-
const guttersInfo = view.state.field(this.state);
|
|
68
|
-
guttersInfo.forEach((info, lineNr) => {
|
|
69
|
-
if (info.on) {
|
|
70
|
-
markedLines.add(lineNr);
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
return markedLines;
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* @return {Extension} The Gutters as a CodeMirror Extension
|
|
77
|
-
*/
|
|
78
|
-
toExtension() {
|
|
79
|
-
// TODO correct type: https://github.com/codemirror/codemirror.next/issues/839
|
|
80
|
-
const handlers = {};
|
|
81
|
-
if (this.config.onClick) {
|
|
82
|
-
handlers["mousedown"] = (view, line) => {
|
|
83
|
-
const markings = view.state.field(this.state);
|
|
84
|
-
const lineNr = view.state.doc.lineAt(line.from).number;
|
|
85
|
-
const markerInfo = markings.get(lineNr);
|
|
86
|
-
// Line numbers start at 1
|
|
87
|
-
this.config.onClick(view, markerInfo);
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
return [
|
|
91
|
-
this.state,
|
|
92
|
-
gutter({
|
|
93
|
-
class: `cm-${this.config.name}-gutter`,
|
|
94
|
-
lineMarker: (view, line) => {
|
|
95
|
-
// Lookup whether the element should be drawn
|
|
96
|
-
const guttersInfo = view.state.field(this.state);
|
|
97
|
-
const lineNr = view.state.doc.lineAt(line.from).number;
|
|
98
|
-
if (guttersInfo.has(lineNr) && guttersInfo.get(lineNr).on) {
|
|
99
|
-
return this.applyClasses(this.marker(guttersInfo.get(lineNr)));
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
return null;
|
|
103
|
-
}
|
|
104
|
-
},
|
|
105
|
-
lineMarkerChange: update => {
|
|
106
|
-
return update.startState.field(this.state) !== update.state.field(this.state);
|
|
107
|
-
},
|
|
108
|
-
initialSpacer: () => {
|
|
109
|
-
return this.applyClasses(this.marker({ lineNr: -1, on: true }));
|
|
110
|
-
},
|
|
111
|
-
domEventHandlers: handlers
|
|
112
|
-
}),
|
|
113
|
-
this.config.extraExtensions || []
|
|
114
|
-
];
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Gutters to show and allow toggling of breakpoints
|
|
119
|
-
*/
|
|
120
|
-
export class BreakpointsGutter extends Gutters {
|
|
121
|
-
constructor() {
|
|
122
|
-
super({
|
|
123
|
-
name: "breakpoint",
|
|
124
|
-
onClick: (view, info) => {
|
|
125
|
-
info.on = !info.on;
|
|
126
|
-
this.setMarker(view, info);
|
|
127
|
-
},
|
|
128
|
-
extraExtensions: [
|
|
129
|
-
EditorView.baseTheme({
|
|
130
|
-
".cm-breakpoint-gutter .cm-gutterElement": {
|
|
131
|
-
color: "red",
|
|
132
|
-
paddingLeft: "5px",
|
|
133
|
-
cursor: "default"
|
|
134
|
-
}
|
|
135
|
-
})
|
|
136
|
-
]
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
marker() {
|
|
140
|
-
return new SimpleMarker(() => document.createTextNode("🔴"));
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Gutters to show a checkmark for used input
|
|
145
|
-
*/
|
|
146
|
-
export class UsedInputGutters extends Gutters {
|
|
147
|
-
constructor() {
|
|
148
|
-
super({
|
|
149
|
-
name: "input"
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
marker(info) {
|
|
153
|
-
return new SimpleMarker(() => {
|
|
154
|
-
const node = document.createElement("div");
|
|
155
|
-
node.replaceChildren(document.createTextNode("✔"));
|
|
156
|
-
node.setAttribute("title", info.title);
|
|
157
|
-
// Text interface tells us that more complex node will be processed into Text nodes
|
|
158
|
-
return node;
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
class DebugMarker extends GutterMarker {
|
|
163
|
-
toDOM() {
|
|
164
|
-
const icon = document.createElement("i");
|
|
165
|
-
icon.classList.add("mdi", "mdi-arrow-right-bold", "mdi-18");
|
|
166
|
-
return icon;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
/**
|
|
170
|
-
* shows the debugged line
|
|
171
|
-
*/
|
|
172
|
-
export class DebugLineGutter extends Gutters {
|
|
173
|
-
constructor() {
|
|
174
|
-
super({
|
|
175
|
-
name: "debugline",
|
|
176
|
-
extraExtensions: [
|
|
177
|
-
EditorView.baseTheme({
|
|
178
|
-
".cm-debugline-gutter .cm-gutterElement": {
|
|
179
|
-
lineHeight: "20px",
|
|
180
|
-
marginRight: "-5px",
|
|
181
|
-
fontSize: "18px"
|
|
182
|
-
}
|
|
183
|
-
})
|
|
184
|
-
]
|
|
185
|
-
});
|
|
186
|
-
this.activeLine = 1;
|
|
187
|
-
}
|
|
188
|
-
marker() {
|
|
189
|
-
return new DebugMarker();
|
|
190
|
-
}
|
|
191
|
-
markLine(view, lineNr) {
|
|
192
|
-
if (this.activeLine !== undefined) {
|
|
193
|
-
this.setMarker(view, { lineNr: this.activeLine, on: false });
|
|
194
|
-
}
|
|
195
|
-
if (lineNr !== undefined) {
|
|
196
|
-
this.setMarker(view, { lineNr, on: true });
|
|
197
|
-
}
|
|
198
|
-
this.activeLine = lineNr;
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
//# sourceMappingURL=Gutters.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Gutters.js","sourceRoot":"","sources":["../../src/editor/Gutters.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Extension, Range } from "@codemirror/state";
|
|
2
|
-
import { Decoration, EditorView } from "@codemirror/view";
|
|
3
|
-
export declare class LineEffectExtension {
|
|
4
|
-
private readonly addEffect;
|
|
5
|
-
private readonly clearEffect;
|
|
6
|
-
private readonly setEffect;
|
|
7
|
-
private editorView;
|
|
8
|
-
constructor(view: EditorView);
|
|
9
|
-
add(range: Range<Decoration>[]): void;
|
|
10
|
-
clear(): void;
|
|
11
|
-
set(range: Range<Decoration>[]): void;
|
|
12
|
-
toExtension(): Extension;
|
|
13
|
-
}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { StateEffect, StateField } from "@codemirror/state";
|
|
2
|
-
import { Decoration, EditorView } from "@codemirror/view";
|
|
3
|
-
export class LineEffectExtension {
|
|
4
|
-
constructor(view) {
|
|
5
|
-
this.addEffect = StateEffect.define();
|
|
6
|
-
this.clearEffect = StateEffect.define();
|
|
7
|
-
this.setEffect = StateEffect.define();
|
|
8
|
-
this.editorView = view;
|
|
9
|
-
}
|
|
10
|
-
add(range) {
|
|
11
|
-
this.editorView.dispatch({
|
|
12
|
-
effects: this.addEffect.of(range)
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
clear() {
|
|
16
|
-
this.editorView.dispatch({
|
|
17
|
-
effects: this.clearEffect.of(null)
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
set(range) {
|
|
21
|
-
this.editorView.dispatch({
|
|
22
|
-
effects: this.setEffect.of(range)
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
toExtension() {
|
|
26
|
-
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
27
|
-
const self = this;
|
|
28
|
-
return StateField.define({
|
|
29
|
-
create() {
|
|
30
|
-
return Decoration.none;
|
|
31
|
-
},
|
|
32
|
-
update(value, transaction) {
|
|
33
|
-
let v = value.map(transaction.changes);
|
|
34
|
-
for (const effect of transaction.effects) {
|
|
35
|
-
if (effect.is(self.clearEffect) || effect.is(self.setEffect)) {
|
|
36
|
-
v = Decoration.none;
|
|
37
|
-
}
|
|
38
|
-
if (effect.is(self.addEffect) || effect.is(self.setEffect)) {
|
|
39
|
-
v = v.update({ add: effect.value });
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
return v;
|
|
43
|
-
},
|
|
44
|
-
provide: f => EditorView.decorations.from(f)
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=LineEffectExtension.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LineEffectExtension.js","sourceRoot":"","sources":["../../src/editor/LineEffectExtension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG1D,MAAM,OAAO,mBAAmB;IAM5B,YAAY,IAAgB;QALX,cAAS,GAAG,WAAW,CAAC,MAAM,EAAuB,CAAC;QACtD,gBAAW,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;QACnC,cAAS,GAAG,WAAW,CAAC,MAAM,EAAuB,CAAC;QAInE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IAC3B,CAAC;IAEM,GAAG,CAAC,KAA0B;QACjC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YACrB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC;SACpC,CAAC,CAAC;IACP,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YACrB,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC;SACrC,CAAC,CAAC;IACP,CAAC;IAEM,GAAG,CAAC,KAA0B;QACjC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YACrB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC;SACpC,CAAC,CAAC;IACP,CAAC;IAEM,WAAW;QACd,4DAA4D;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,OAAO,UAAU,CAAC,MAAM,CAAC;YACrB,MAAM;gBACF,OAAO,UAAU,CAAC,IAAI,CAAC;YAC3B,CAAC;YACD,MAAM,CAAC,KAAK,EAAE,WAAW;gBACrB,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAEvC,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;oBACvC,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC3D,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC;oBACxB,CAAC;oBACD,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;wBACzD,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;oBACxC,CAAC;gBACL,CAAC;gBAED,OAAO,CAAC,CAAC;YACb,CAAC;YACD,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;SAC/C,CAAC,CAAC;IACP,CAAC;CACJ"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { Extension } from "@codemirror/state";
|
|
2
|
-
import { EditorView } from "@codemirror/view";
|
|
3
|
-
export declare class TestCodeExtension {
|
|
4
|
-
private readonly view;
|
|
5
|
-
private readonly widget;
|
|
6
|
-
private readonly lineEffect;
|
|
7
|
-
private lines;
|
|
8
|
-
private allowEdit;
|
|
9
|
-
constructor(view: EditorView);
|
|
10
|
-
private get numberOfTestLines();
|
|
11
|
-
private lineFromEnd;
|
|
12
|
-
private highlightLines;
|
|
13
|
-
private addWidget;
|
|
14
|
-
private clearAllLineEffects;
|
|
15
|
-
private getReadOnlyRanges;
|
|
16
|
-
private insertTestCode;
|
|
17
|
-
reset(keepCode?: boolean): void;
|
|
18
|
-
set testCode(code: string);
|
|
19
|
-
getNonTestCode(): string;
|
|
20
|
-
toExtension(): Extension;
|
|
21
|
-
}
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
import { Decoration, WidgetType } from "@codemirror/view";
|
|
2
|
-
import readOnlyRangesExtension from "codemirror-readonly-ranges";
|
|
3
|
-
import { t } from "../util/Util";
|
|
4
|
-
import { LineEffectExtension } from "./LineEffectExtension";
|
|
5
|
-
const highlightDecoration = Decoration.line({ class: "papyros-test-code" });
|
|
6
|
-
// Widget to manage the test code
|
|
7
|
-
class TestCodeWidget extends WidgetType {
|
|
8
|
-
constructor(testCodeExtension) {
|
|
9
|
-
super();
|
|
10
|
-
this.testCodeExtension = testCodeExtension;
|
|
11
|
-
}
|
|
12
|
-
toDOM() {
|
|
13
|
-
const element = document.createElement("div");
|
|
14
|
-
element.classList.add("papyros-test-code-widget");
|
|
15
|
-
const span = document.createElement("span");
|
|
16
|
-
span.innerText = t("Papyros.editor.test_code.description");
|
|
17
|
-
element.appendChild(span);
|
|
18
|
-
const buttons = document.createElement("div");
|
|
19
|
-
buttons.classList.add("papyros-test-code-buttons");
|
|
20
|
-
const editButton = document.createElement("a");
|
|
21
|
-
editButton.classList.add("papyros-icon-link");
|
|
22
|
-
editButton.innerHTML = "<i class=\"mdi mdi-pencil\"></i>";
|
|
23
|
-
editButton.addEventListener("click", () => {
|
|
24
|
-
console.log("edit test code");
|
|
25
|
-
this.testCodeExtension.reset(true);
|
|
26
|
-
});
|
|
27
|
-
editButton.title = t("Papyros.editor.test_code.edit");
|
|
28
|
-
buttons.appendChild(editButton);
|
|
29
|
-
const deleteButton = document.createElement("a");
|
|
30
|
-
deleteButton.classList.add("papyros-icon-link");
|
|
31
|
-
deleteButton.innerHTML = "<i class=\"mdi mdi-close\"></i>";
|
|
32
|
-
deleteButton.addEventListener("click", () => {
|
|
33
|
-
console.log("remove test code");
|
|
34
|
-
this.testCodeExtension.reset();
|
|
35
|
-
});
|
|
36
|
-
deleteButton.title = t("Papyros.editor.test_code.remove");
|
|
37
|
-
buttons.appendChild(deleteButton);
|
|
38
|
-
element.appendChild(buttons);
|
|
39
|
-
return element;
|
|
40
|
-
}
|
|
41
|
-
ignoreEvent() {
|
|
42
|
-
return false;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
class BottomPaddingWidget extends WidgetType {
|
|
46
|
-
toDOM() {
|
|
47
|
-
const element = document.createElement("div");
|
|
48
|
-
element.classList.add("papyros-bottom-padding-widget");
|
|
49
|
-
element.appendChild(document.createElement("div"));
|
|
50
|
-
return element;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
const bottomPaddingDecoration = Decoration.widget({ widget: new BottomPaddingWidget(), side: 1, block: true });
|
|
54
|
-
export class TestCodeExtension {
|
|
55
|
-
constructor(view) {
|
|
56
|
-
this.lines = "";
|
|
57
|
-
this.allowEdit = true;
|
|
58
|
-
this.view = view;
|
|
59
|
-
this.widget = Decoration.widget({ widget: new TestCodeWidget(this), block: true, side: 1 });
|
|
60
|
-
this.lineEffect = new LineEffectExtension(view);
|
|
61
|
-
}
|
|
62
|
-
get numberOfTestLines() {
|
|
63
|
-
return this.lines.split("\n").length;
|
|
64
|
-
}
|
|
65
|
-
lineFromEnd(line, state = undefined) {
|
|
66
|
-
const currentState = state || this.view.state;
|
|
67
|
-
const lineFromEnd = currentState.doc.lines - line;
|
|
68
|
-
return currentState.doc.line(lineFromEnd);
|
|
69
|
-
}
|
|
70
|
-
highlightLines() {
|
|
71
|
-
for (let i = 0; i < this.numberOfTestLines; i++) {
|
|
72
|
-
this.lineEffect.add([highlightDecoration.range(this.lineFromEnd(i).from)]);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
addWidget() {
|
|
76
|
-
this.lineEffect.add([
|
|
77
|
-
this.widget.range(this.lineFromEnd(this.numberOfTestLines).to),
|
|
78
|
-
bottomPaddingDecoration.range(this.lineFromEnd(0).to)
|
|
79
|
-
]);
|
|
80
|
-
}
|
|
81
|
-
clearAllLineEffects() {
|
|
82
|
-
this.lineEffect.clear();
|
|
83
|
-
}
|
|
84
|
-
getReadOnlyRanges(state) {
|
|
85
|
-
if (this.allowEdit) {
|
|
86
|
-
return [];
|
|
87
|
-
}
|
|
88
|
-
return [{
|
|
89
|
-
from: this.lineFromEnd(this.numberOfTestLines - 1, state).from,
|
|
90
|
-
to: undefined // until last line
|
|
91
|
-
}];
|
|
92
|
-
}
|
|
93
|
-
insertTestCode(code) {
|
|
94
|
-
var _a;
|
|
95
|
-
// insert up to two new lines to separate the test code from the user code
|
|
96
|
-
// but only if they are not already there
|
|
97
|
-
const finalNewLineCount = ((_a = this.view.state.doc.toString().match(/\n*$/)) === null || _a === void 0 ? void 0 : _a[0].length) || 0;
|
|
98
|
-
const newLinesToInsert = Math.max(0, 2 - finalNewLineCount);
|
|
99
|
-
this.view.dispatch({ changes: { from: this.lineFromEnd(0).to, insert: "\n".repeat(newLinesToInsert) } });
|
|
100
|
-
this.view.dispatch({ changes: { from: this.lineFromEnd(0).to, insert: code } });
|
|
101
|
-
this.lines = code;
|
|
102
|
-
}
|
|
103
|
-
reset(keepCode = false) {
|
|
104
|
-
this.allowEdit = true;
|
|
105
|
-
this.clearAllLineEffects();
|
|
106
|
-
if (this.lines === "") {
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
if (!keepCode) {
|
|
110
|
-
this.view.dispatch({ changes: { from: this.lineFromEnd(this.numberOfTestLines).to, to: this.lineFromEnd(0).to, insert: "" } });
|
|
111
|
-
}
|
|
112
|
-
this.lines = "";
|
|
113
|
-
}
|
|
114
|
-
set testCode(code) {
|
|
115
|
-
this.reset();
|
|
116
|
-
if (code === "") {
|
|
117
|
-
return;
|
|
118
|
-
}
|
|
119
|
-
this.insertTestCode(code);
|
|
120
|
-
this.allowEdit = false;
|
|
121
|
-
this.highlightLines();
|
|
122
|
-
this.addWidget();
|
|
123
|
-
}
|
|
124
|
-
getNonTestCode() {
|
|
125
|
-
if (this.allowEdit) {
|
|
126
|
-
return this.view.state.doc.toString();
|
|
127
|
-
}
|
|
128
|
-
return this.view.state.doc.sliceString(0, this.lineFromEnd(this.numberOfTestLines).to);
|
|
129
|
-
}
|
|
130
|
-
toExtension() {
|
|
131
|
-
return [this.lineEffect.toExtension(), readOnlyRangesExtension(this.getReadOnlyRanges.bind(this))];
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
//# sourceMappingURL=TestCodeExtension.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TestCodeExtension.js","sourceRoot":"","sources":["../../src/editor/TestCodeExtension.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { ProgrammingLanguage } from "../ProgrammingLanguage";
|
|
2
|
-
export declare function getExamples(language: ProgrammingLanguage): {
|
|
3
|
-
[key: string]: string;
|
|
4
|
-
};
|
|
5
|
-
export declare function getExampleNames(language: ProgrammingLanguage): Array<string>;
|
|
6
|
-
export declare function getCodeForExample(language: ProgrammingLanguage, name: string): string;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { ProgrammingLanguage } from "../ProgrammingLanguage";
|
|
2
|
-
import { JAVASCRIPT_EXAMPLES } from "./JavaScriptExamples";
|
|
3
|
-
import { PYTHON_EXAMPLES } from "./PythonExamples";
|
|
4
|
-
const EXAMPLES_MAP = new Map([
|
|
5
|
-
[ProgrammingLanguage.JavaScript, JAVASCRIPT_EXAMPLES],
|
|
6
|
-
// Hello, World! as key seems to cause issues for TypeScript
|
|
7
|
-
[ProgrammingLanguage.Python, PYTHON_EXAMPLES]
|
|
8
|
-
]);
|
|
9
|
-
export function getExamples(language) {
|
|
10
|
-
if (EXAMPLES_MAP.has(language)) {
|
|
11
|
-
return EXAMPLES_MAP.get(language);
|
|
12
|
-
}
|
|
13
|
-
else {
|
|
14
|
-
return {};
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
export function getExampleNames(language) {
|
|
18
|
-
return Object.keys(getExamples(language));
|
|
19
|
-
}
|
|
20
|
-
export function getCodeForExample(language, name) {
|
|
21
|
-
return getExamples(language)[name];
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=Examples.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Examples.js","sourceRoot":"","sources":["../../src/examples/Examples.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAMnD,MAAM,YAAY,GAAuC,IAAI,GAAG,CAAC;IAC7D,CAAC,mBAAmB,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACrD,4DAA4D;IAC5D,CAAC,mBAAmB,CAAC,MAAM,EAAE,eAA2B,CAAC;CAC5D,CAAC,CAAC;AAEH,MAAM,UAAU,WAAW,CAAC,QAA6B;IACrD,IAAI,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;IACvC,CAAC;SAAM,CAAC;QACJ,OAAO,EAAE,CAAC;IACd,CAAC;AACL,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAA6B;IACzD,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,QAA6B,EAAE,IAAY;IACzE,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC"}
|