honour sketch mode after execute (#885)
* enable stay in sketch mode after execute * clean up
This commit is contained in:
@ -425,6 +425,12 @@ export const ModelingMachineProvider = ({
|
|||||||
})
|
})
|
||||||
}, [modelingSend, modelingState.nextEvents])
|
}, [modelingSend, modelingState.nextEvents])
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
kclManager.registerExecuteCallback(() => {
|
||||||
|
modelingSend({ type: 'Re-execute' })
|
||||||
|
})
|
||||||
|
}, [modelingSend])
|
||||||
|
|
||||||
// useStateMachineCommands({
|
// useStateMachineCommands({
|
||||||
// state: settingsState,
|
// state: settingsState,
|
||||||
// send: settingsSend,
|
// send: settingsSend,
|
||||||
|
@ -20,7 +20,6 @@ import kclLanguage from 'editor/lsp/language'
|
|||||||
import { isTauri } from 'lib/isTauri'
|
import { isTauri } from 'lib/isTauri'
|
||||||
import { useParams } from 'react-router-dom'
|
import { useParams } from 'react-router-dom'
|
||||||
import { writeTextFile } from '@tauri-apps/api/fs'
|
import { writeTextFile } from '@tauri-apps/api/fs'
|
||||||
import { PROJECT_ENTRYPOINT } from 'lib/tauriFS'
|
|
||||||
import { toast } from 'react-hot-toast'
|
import { toast } from 'react-hot-toast'
|
||||||
import {
|
import {
|
||||||
EditorView,
|
EditorView,
|
||||||
@ -112,7 +111,7 @@ export const TextEditor = ({
|
|||||||
}, [lspClient, isLSPServerReady])
|
}, [lspClient, isLSPServerReady])
|
||||||
|
|
||||||
// const onChange = React.useCallback((value: string, viewUpdate: ViewUpdate) => {
|
// const onChange = React.useCallback((value: string, viewUpdate: ViewUpdate) => {
|
||||||
const onChange = (newCode: string, viewUpdate: ViewUpdate) => {
|
const onChange = (newCode: string) => {
|
||||||
kclManager.setCodeAndExecute(newCode)
|
kclManager.setCodeAndExecute(newCode)
|
||||||
if (isTauri() && pathParams.id) {
|
if (isTauri() && pathParams.id) {
|
||||||
// Save the file to disk
|
// Save the file to disk
|
||||||
|
@ -55,6 +55,7 @@ class KclManager {
|
|||||||
private _logsCallBack: (arg: string[]) => void = () => {}
|
private _logsCallBack: (arg: string[]) => void = () => {}
|
||||||
private _kclErrorsCallBack: (arg: KCLError[]) => void = () => {}
|
private _kclErrorsCallBack: (arg: KCLError[]) => void = () => {}
|
||||||
private _wasmInitFailedCallback: (arg: boolean) => void = () => {}
|
private _wasmInitFailedCallback: (arg: boolean) => void = () => {}
|
||||||
|
private _executeCallback: () => void = () => {}
|
||||||
|
|
||||||
get ast() {
|
get ast() {
|
||||||
return this._ast
|
return this._ast
|
||||||
@ -159,6 +160,9 @@ class KclManager {
|
|||||||
this._isExecutingCallback = setIsExecuting
|
this._isExecutingCallback = setIsExecuting
|
||||||
this._wasmInitFailedCallback = setWasmInitFailed
|
this._wasmInitFailedCallback = setWasmInitFailed
|
||||||
}
|
}
|
||||||
|
registerExecuteCallback(callback: () => void) {
|
||||||
|
this._executeCallback = callback
|
||||||
|
}
|
||||||
|
|
||||||
async ensureWasmInit() {
|
async ensureWasmInit() {
|
||||||
try {
|
try {
|
||||||
@ -188,6 +192,7 @@ class KclManager {
|
|||||||
this._code = recast(ast)
|
this._code = recast(ast)
|
||||||
this._codeCallBack(this._code)
|
this._codeCallBack(this._code)
|
||||||
}
|
}
|
||||||
|
this._executeCallback()
|
||||||
}
|
}
|
||||||
async executeAstMock(ast: Program = this._ast, updateCode = false) {
|
async executeAstMock(ast: Program = this._ast, updateCode = false) {
|
||||||
await this.ensureWasmInit()
|
await this.ensureWasmInit()
|
||||||
|
File diff suppressed because one or more lines are too long
@ -52,19 +52,20 @@
|
|||||||
"Update code selection cursors": "Complete line" | "Deselect all" | "Deselect axis" | "Deselect edge" | "Deselect face" | "Deselect point" | "Deselect segment" | "Select edge" | "Select face" | "Select point" | "Select segment";
|
"Update code selection cursors": "Complete line" | "Deselect all" | "Deselect axis" | "Deselect edge" | "Deselect face" | "Deselect point" | "Deselect segment" | "Select edge" | "Select face" | "Select point" | "Select segment";
|
||||||
"create path": "Select default plane";
|
"create path": "Select default plane";
|
||||||
"default_camera_disable_sketch_mode": "Cancel";
|
"default_camera_disable_sketch_mode": "Cancel";
|
||||||
"edit mode enter": "Enter sketch";
|
"edit mode enter": "Enter sketch" | "Re-execute";
|
||||||
"edit_mode_exit": "Cancel";
|
"edit_mode_exit": "Cancel";
|
||||||
"equip select": "CancelSketch" | "Constrain equal length" | "Constrain horizontally align" | "Constrain parallel" | "Constrain remove constraints" | "Constrain vertically align" | "Deselect point" | "Deselect segment" | "Enter sketch" | "Make segment horizontal" | "Make segment vertical" | "Select default plane" | "Select point" | "Select segment" | "Set selection" | "done.invoke.get-angle-info" | "done.invoke.get-horizontal-info" | "done.invoke.get-length-info" | "done.invoke.get-perpendicular-distance-info" | "done.invoke.get-vertical-info" | "error.platform.get-angle-info" | "error.platform.get-horizontal-info" | "error.platform.get-length-info" | "error.platform.get-perpendicular-distance-info" | "error.platform.get-vertical-info";
|
"equip select": "CancelSketch" | "Constrain equal length" | "Constrain horizontally align" | "Constrain parallel" | "Constrain remove constraints" | "Constrain vertically align" | "Deselect point" | "Deselect segment" | "Enter sketch" | "Make segment horizontal" | "Make segment vertical" | "Re-execute" | "Select default plane" | "Select point" | "Select segment" | "Set selection" | "done.invoke.get-angle-info" | "done.invoke.get-horizontal-info" | "done.invoke.get-length-info" | "done.invoke.get-perpendicular-distance-info" | "done.invoke.get-vertical-info" | "error.platform.get-angle-info" | "error.platform.get-horizontal-info" | "error.platform.get-length-info" | "error.platform.get-perpendicular-distance-info" | "error.platform.get-vertical-info";
|
||||||
"hide default planes": "Cancel" | "Select default plane" | "xstate.stop";
|
"hide default planes": "Cancel" | "Select default plane" | "xstate.stop";
|
||||||
"reset sketch metadata": "Cancel" | "Select default plane";
|
"reset sketch metadata": "Cancel" | "Select default plane";
|
||||||
"set default plane id": "Select default plane";
|
"set default plane id": "Select default plane";
|
||||||
"set sketch metadata": "Enter sketch";
|
"set sketch metadata": "Enter sketch";
|
||||||
|
"set sketchMetadata from pathToNode": "Re-execute";
|
||||||
"set tool": "Equip new tool";
|
"set tool": "Equip new tool";
|
||||||
"set tool line": "Equip tool";
|
"set tool line": "Equip tool";
|
||||||
"set tool move": "Equip move tool" | "Set selection";
|
"set tool move": "Equip move tool" | "Re-execute" | "Set selection";
|
||||||
"show default planes": "Enter sketch";
|
"show default planes": "Enter sketch";
|
||||||
"sketch exit execute": "Cancel" | "Complete line" | "xstate.stop";
|
"sketch exit execute": "Cancel" | "Complete line" | "xstate.stop";
|
||||||
"sketch mode enabled": "Enter sketch" | "Select default plane";
|
"sketch mode enabled": "Enter sketch" | "Re-execute" | "Select default plane";
|
||||||
"toast extrude failed": "";
|
"toast extrude failed": "";
|
||||||
};
|
};
|
||||||
eventsCausingDelays: {
|
eventsCausingDelays: {
|
||||||
|
Reference in New Issue
Block a user