当前文件只包含 1.x 及以上版本的更新日志,因为在 1.x 版本dt-react-monaco-editor 进行了大范围重构,随之而来的是许多破坏性变更。
去 CHANGELOG.md 查看更多更新日志。
2024-04-17
- 🚫 移除
MonacoDiffEditor的readOnly选项,因为它与options.readOnly冲突 (c953ea5)
2024-01-11
- 🐞 不再手动销毁 model (486092d)
2023-11-10
- 🆕 新增
editorWillMount、editorDidMount、editorWillUnMount三个生命周期钩子,MonacoEditor与MonacoDiffEditor均支持。(57ca6ff) - 🚫 废弃
MonacoEditor的editorInstanceRef属性和MonacoDiffEditor的diffEditorInstanceRef属性,并计划在未来版本移除,对应可以使用editorDidMount声明周期钩子替代。(57ca6ff)
2023-7-13
2023-06-14
- 🗑 移除内置的自定义 languages 相关功能,包括:
dtsqldtflinkdtPython2dtPython3dtlog
- 🗑 移除所有与自动补全和语法解析相关的
utils。 - 🛠 不再默认导出
Editor组件,取而代之的是具名导出MonacoEditor和MonacoDiffEditor组件。
- 🗑 移除所有与自动补全和语法解析相关的属性。
- 🗑 移除组件的
isLog属性。 - 🗑 移除
cursorPosition属性。 - 🛠 内置 dom container 的
className从code-editor变更为react-monaco-editor-container。 - 🐞 修复 当
sync属性为true时,value的更新会触发onChange事件回调的 bug, 在1.x版本中,开启了 sync 标识后,组件即变成受控状态,并且支持撤销操作。
- 🛠
original属性类型变更为string,对应 originalEditor 的value。 - 🛠
modified属性更名为value, 其类型变更为string,对应 modifiedEditor 的value。 - 🗑 移除
editorInstanceRef属性,仍可以使用diffEditorInstanceRef对应的 ref 获取到对应的originEditor和modifiedEditor。 - 🗑 移除组件顶部显示的 当前版本 和 历史版本 title。
- 🗑 移除
onBlur、onFocus、onCursorSelection,但仍然支持onChange。 - 🆕 新增
readOnly属性,控制modifiedEditor是否为只读模式。 - 🛠 内置 dom container 的
className从code-editor变更为react-monaco-diff-editor-container。 - 🗑 不再在组件挂载时动态改变
theme。
- 🛠
commonFileEditDelegator已经重命名为commandDelegator。
在 0.x 版本,dt-react-monaco-editor 内置了一些自定义的 languages,但是由于 MonacoEditor language 功能注册方式限制,当项目中引入 dt-react-monaco-editor 时,总是间接的引入了 dt-react-monaco-editor 内置的所有 languages,即使其中某些 languages 功能是项目不需要的。并且没有被使用的 languages 功能无法被打包工具 treeShaking,这毫无疑问增加了项目的打包体积。
所以在 1.x 版本,dt-react-monaco-editor 移除了所有内置的 languages 功能,这对于 dt-react-monaco-editor 来说实际上是一种解耦操作。开发者仍然可以通过引入 monaco-sql-languages,来使用多种 sql languages 的高亮、自动错误提示以及自动补全功能。另外 monaco-sql-languages 支持按需引入,因此不再需要担心在 0.x 版本中遇到的问题。