react-openqasm-editor
Version:
A powerful, customizable code editor for OpenQASM (Open Quantum Assembly Language) based on Monaco Editor.
33 lines (25 loc) • 874 B
text/typescript
import LanguageService from "./LanguageService"
import { type worker } from "monaco-editor-core"
import { IError } from "./errorListener"
export class OpenQasmWorker {
private _ctx: worker.IWorkerContext
private languageService: LanguageService
constructor(ctx: worker.IWorkerContext) {
this._ctx = ctx
this.languageService = new LanguageService()
}
static getMethodNames() {
return ['doValidation'];
}
doValidation(): Promise<IError[]> {
const code = this.getTextDocument();
return Promise.resolve(this.languageService.validate(code));
}
format(code: string): Promise<string> {
return Promise.resolve(this.languageService.format(code));
}
private getTextDocument(): string {
const model = this._ctx.getMirrorModels()[0];// When there are multiple files open, this will be an array
return model.getValue();
}
}