opensumi / core Goto Github PK
View Code? Open in Web Editor NEW🚀 A framework helps you quickly build Cloud or Desktop IDE products.
Home Page: https://opensumi.com
License: MIT License
🚀 A framework helps you quickly build Cloud or Desktop IDE products.
Home Page: https://opensumi.com
License: MIT License
自开源起,KAITIAN 作为项目内部代号已完成其历史使命,后续框架名称将以 OpenSumi
代替,Open 代表开放,SUMI就是 “粟米” 粮食,人的生存基座,隐喻我们的框架就像粮食一样,是 IDE 研发的基础依赖。
现在有一些迁移的事情需要各位项目组成员一起来做:
迁移原有配置目录下的 .kaitian
, 将默认目录名称改为 .sumi
@erha19
框架内硬编码的 kaitianExtensionManagerService
等改为 SumiExtensionManagerService
. (不止一个) @Aaaaash
兼容旧版本的 kaitian
, kaitian-browser
模块导出 ( 标注为废弃),同时新增 sumi
, sumi-browser
@Aaaaash
其他 kaitian
硬编码内容改造 @erha19
模块内 repository
更新 @Aaaaash
基础包名从 @ide-framework
-> @opensumi
@erha19
样式文件中硬编码的文本,如 class、图标等 @erha19
kaitianContribution 等插件定义改造 @Aaaaash
下面可以补充其他内容或建议~
hideSlotTabBar 这个选项是为了隐藏 bottom slot 的 tabbar 引入的,但是并没有考虑到侧边栏的 TabBar 也会走这个逻辑,需要加一些逻辑来决定哪一部分会被隐藏,哪一部分不会被隐藏。
可以通过配置想来解决,或者只针对 bottom slot 隐藏
@opensumi/ide-core-common
为 @opensumi/ide-core-node
, @opensumi/ide-core-browser
和 @opensumi/ide-electron
的共同依赖
其他模块不直接依赖 @opensumi/ide-core-common
,而是通过 @opensumi/ide-core-node
和 @opensumi/ide-core-browser
间接依赖
由于前端资源一般有脚本进行打包构建,而 Node 资源一般需要直接依赖 node_modules
,故我们前期设计上期望模块的 Browser 层依赖放在 DevDepedence
,而 Node 层依赖放在 Dependence
.
所有模块的构建,统一依赖 @opensumi/ide-dev-tool
方式引入构建依赖,如 typescript
, webpack
等
基于这种目录结构,如果存在多个 Browser 模块的公共依赖,放在 @opensumi/ide-core-browser
将能减少版本维护的烦恼,一般通过脚本 npm run add:browser {moduleName} {depName}
的方式添加,同理也有 add:node
的脚本。
原则上如果模块 common
中只能引入 @opensumi/ide-core-common
中的内容,但如果该模块为纯 Browser
或 Node
模块,则允许从对应的 @opensumi/ide-core-browser
和 @opensumi/ide-core-node
中引入。
当前测试中有许多 Mock 方法依赖 tools/dev-tool
目录内的工具方法,这部分方法应当整合到 @opensumi/di
中
DI 提供测试相关的工具函数
当前 sumi-kaitian
中依旧使用 @opensumi/ide-core-browser
中导出的部分组件,导致相关依赖划分不清晰,同时也存在一些待废弃的组件未清理
需要做的事情:
@opensumi/ide-core-browser
中的 RecycleTree
依赖@opensumi/ide-core-components
中@opensumi/utils
,解决重复工具类问题BasicRecycleTree
组件 #93TerminalProfile/TerminalProfileProvider/registerTerminalProfileProvider
#105 会出现鼠标无法移动到 hover 的 widget 上,microsoft/monaco-editor#2156 这个 issue 解释了为什么。
related:
支持通过 AppConfig
的方式自定义工作区后缀,目前框架默认的工作区后缀为 .sumi-workspace
, 配置定义如下:
export interface AppConfig {
...
workspaceSuffixName: string;
...
}
typescript-language-feature 1.62.x
插件依赖
正常使用
原来的 editor/title 这个 menu contributes 属性你只有将 group 设置为 "navigation@xx" 才会出现在右上角这里,否则就只会出现在 ··· 那儿。
阿 V 提供了一个 editor/title/run 选项就是可以以
这个图标展示在右上角,作用与 ··· 类似
相关 PR: microsoft/vscode@97c7d2a
问题描述
opensumi electron版在windows上debug, 无法打断点,toolbar 上的几个控件无法点击, 可以用这个 mock debug demo 来调试
复现路径(To Reproduce)
clone 下来 debug 的插件 demo, [email protected]:longyan.zly/mock-debug-demo.git, 在 opensumi 中启动 electron, 将插件 link 到 extensions 目录, 打开 sampleWorkspace 进行调试。
预期表现(Expected behavior)
能够打断点, toolbar 操作可用
环境信息(Environment)
猜测:windows 下如果没有安装 git-bash 并且安装了 powershell,可能会打开 powershell,并且由于设置了 git-bash 的 login 参数导致终端打开异常。
.d.ts中通过 export { URI } from '@opensumi/ide-core-browser'; 来导出 URI 的类型,但 package.json 中并没有依赖 @opensumi/ide-core-browser
electron 13 已经移除了 shell.moveItemToTrash(path); 作为替代,您应当使用异步的 shell.trashItem()。
需要判断一下 electron 版本,然后决定执行哪个
相关 issue:
看第二个链接中的描述,vscode 是自己 patch 了一个 13 的修复。
他们把自己的 patch 在第三个链接中放了出来。
自动根据最新的两个 tag
对比生成 Changelog
信息
提供一个简单 Sumi 桌面版
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.