circular deps

This commit is contained in:
Andrew Varga
2025-06-17 20:06:46 +02:00
parent 29d16d1df6
commit 1fb3e373f2
2 changed files with 7 additions and 5 deletions

View File

@ -34,8 +34,8 @@ import type {
ModelingMachineEvent, ModelingMachineEvent,
modelingMachine, modelingMachine,
} from '@src/machines/modelingMachine' } from '@src/machines/modelingMachine'
import type CodeManager from '@src/lang/codeManager'
import { codeManagerHistoryCompartment } from '@src/lang/codeManager' import { codeManagerHistoryCompartment } from '@src/lang/codeManager'
import { codeManager, kclManager } from '@src/lib/singletons'
declare global { declare global {
interface Window { interface Window {
@ -82,6 +82,7 @@ export default class EditorManager {
private _editorState: EditorState private _editorState: EditorState
private _editorView: EditorView | null = null private _editorView: EditorView | null = null
public kclManager?: KclManager public kclManager?: KclManager
public codeManager?: CodeManager
constructor(engineCommandManager: EngineCommandManager) { constructor(engineCommandManager: EngineCommandManager) {
this.engineCommandManager = engineCommandManager this.engineCommandManager = engineCommandManager
@ -325,8 +326,8 @@ export default class EditorManager {
console.log('before', state.doc.length, state.doc.toString()) console.log('before', state.doc.length, state.doc.toString())
const undoPerformed = undo(this) const undoPerformed = undo(this)
if (undoPerformed) { if (undoPerformed) {
codeManager.code = state.doc.toString() this.codeManager!.code = state.doc.toString()
void kclManager.executeCode() void this.kclManager!.executeCode()
} }
console.log(state.doc.length, state.doc.toString()) console.log(state.doc.length, state.doc.toString())
} }
@ -341,8 +342,8 @@ export default class EditorManager {
console.log('before', state.doc.length, state.doc.toString()) console.log('before', state.doc.length, state.doc.toString())
const redoPerformed = redo(this) const redoPerformed = redo(this)
if (redoPerformed) { if (redoPerformed) {
codeManager.code = state.doc.toString() this.codeManager!.code = state.doc.toString()
void kclManager.executeCode() void this.kclManager!.executeCode()
} }
console.log(state.doc.length, state.doc.toString()) console.log(state.doc.length, state.doc.toString())
} }

View File

@ -69,6 +69,7 @@ export const kclManager = new KclManager(engineCommandManager, {
// method requires it for the current ast. // method requires it for the current ast.
// CYCLIC REF // CYCLIC REF
editorManager.kclManager = kclManager editorManager.kclManager = kclManager
editorManager.codeManager = codeManager
// These are all late binding because of their circular dependency. // These are all late binding because of their circular dependency.
// TODO: proper dependency injection. // TODO: proper dependency injection.