@gdquest/gd-exercise
Version:
Core package that handles logic for the GDExercise project.
63 lines • 2.14 kB
text/typescript
import { EventEmitter } from "eventemitter3";
import { EditorView } from "@codemirror/view";
import { Compartment } from "@codemirror/state";
import { type Diagnostic } from "@codemirror/lint";
import { type ServerResponseCallback } from "@gdquest/codemirror-lsp";
import { type GdExerciseFile } from "../utils.mjs";
export interface CodeControllerFile {
file: GdExerciseFile;
diagnostics: Diagnostic[];
}
export interface CodeControllerEvents {
ready: () => void;
clientLspCommand: (jsonRpc: string) => void;
save: (file: GdExerciseFile) => void;
}
export declare class CodeController extends EventEmitter<CodeControllerEvents> {
projectId: string;
projectUrl: string;
project: string;
parent: HTMLElement | null;
language: Compartment;
lsp: Compartment;
freeze: Compartment;
tabSize: Compartment;
theme: Compartment;
highlight: Compartment;
view: EditorView | null;
emitServerCommand: ServerResponseCallback | null;
loadedFiles: CodeControllerFile[];
currentFile: CodeControllerFile | null;
snippet: string;
get isSnippet(): boolean;
set isSnippet(_: boolean);
_darkMode: boolean;
get darkMode(): boolean;
set darkMode(val: boolean);
get currentDoc(): string;
set currentDoc(doc: string);
get editorDoc(): string;
constructor(projectId: string, project: string, projectUrl: string, files: GdExerciseFile[], darkMode?: boolean, snippet?: string);
_loadFiles(filesToLoad: GdExerciseFile[]): void;
/**
* Load dynamically GDScript to reduce load size
*/
_importGdScript(): Promise<void>;
/**
* Load dynamically LSP to reduce load size
*/
_importLsp(): Promise<void>;
/**
* Load dynamically freeze to reduce load size
*/
_importFreeze(): Promise<void>;
_onClientCommand(jsonRpc: string): void;
init(): Promise<void>;
changeFile(file?: CodeControllerFile | null): void;
saveDoc(doc: string): void;
getOriginalDoc(): string;
revertDoc(): void;
handleError(message: string): Promise<void>;
dispose(): void;
}
//# sourceMappingURL=code.d.mts.map