NetEase / tango

A code driven low-code builder, develop low-code app on your codebase.
https://netease.github.io/tango-site/
MIT License
2.12k stars 181 forks source link

IDE 刷新 / AST 同步时机优化(待定) #183

Closed BoBoooooo closed 2 months ago

BoBoooooo commented 3 months ago

问题背景 (临时错误代码不同步引擎,IDE 代码同步 AST 过于高频,且没有必要)

目前 IDE 合法的代码同步至 Workspace 时机:

如果视为纯在线编码的沙箱,应该允许用户任意输入

可能的解决方案(重构 IDE 刷新时机 / AST 解析时机)

Workspace.File 新增 tempCode 字段

AST 同步时机调整

进入 WEBIDE (预览模式)

进入 IDE 时,ast2code 同步一次代码至 IDE 此时保持预览模式,纯 IDE + 沙箱场景,没有引擎 AST 解析干预

退出 IDE (切回设计模式)

离开 IDE 时,code2ast(updateFile) 同步一次 IDE 代码至 Workspace

问题

IDE 模式下,会造成可视化面板跟 IDE 内代码不同步的问题

可能的解决方式:

结论待定

对整体 Tango 设计有较大影响面,如约束用户禁止写错误代码,允许错误代码被回滚的问题,上述均可暂不处理

wwsun commented 3 months ago

比较好的方法是为源码模式提供专门的文件系统能力,这样可以独立出 IDE 部分的状态控制。只在切换模式的时候同步一次 AST。

BoBoooooo commented 2 months ago

https://github.com/NetEase/tango/pull/188

BoBoooooo commented 2 months ago

https://github.com/NetEase/tango/pull/190 已合并