UNPKG

@gdquest/gd-exercise

Version:

Core package that handles logic for the GDExercise project.

63 lines 2.14 kB
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