Code Monkey home page Code Monkey logo

core's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

core's Issues

[讨论] 关于品牌名称更改为 OpenSumi 要做的那些事

自开源起,KAITIAN 作为项目内部代号已完成其历史使命,后续框架名称将以 OpenSumi 代替,Open 代表开放,SUMI就是 “粟米” 粮食,人的生存基座,隐喻我们的框架就像粮食一样,是 IDE 研发的基础依赖。

现在有一些迁移的事情需要各位项目组成员一起来做:

  • 迁移原有配置目录下的 .kaitian, 将默认目录名称改为 .sumi @erha19

  • 框架内硬编码的 kaitianExtensionManagerService 等改为 SumiExtensionManagerService. (不止一个) @Aaaaash

  • 兼容旧版本的 kaitian, kaitian-browser 模块导出 ( 标注为废弃),同时新增 sumi, sumi-browser @Aaaaash

  • 其他 kaitian 硬编码内容改造 @erha19

  • 模块内 repository 更新 @Aaaaash

  • 模块基础依赖,如 common-di, monaco-core@erha19 @Aaaaash

  • 基础包名从 @ide-framework -> @opensumi @erha19

  • 样式文件中硬编码的文本,如 class、图标等 @erha19

  • kaitianContribution 等插件定义改造 @Aaaaash

下面可以补充其他内容或建议~

the left panel tab bar wil hide when set hideSlotTabBar

hideSlotTabBar 这个选项是为了隐藏 bottom slot 的 tabbar 引入的,但是并没有考虑到侧边栏的 TabBar 也会走这个逻辑,需要加一些逻辑来决定哪一部分会被隐藏,哪一部分不会被隐藏。

可以通过配置想来解决,或者只针对 bottom slot 隐藏

Optimize framework dependency structure

潜规则

  1. @opensumi/ide-core-common@opensumi/ide-core-node@opensumi/ide-core-browser@opensumi/ide-electron 的共同依赖

  2. 其他模块不直接依赖 @opensumi/ide-core-common,而是通过 @opensumi/ide-core-node@opensumi/ide-core-browser 间接依赖

  3. 由于前端资源一般有脚本进行打包构建,而 Node 资源一般需要直接依赖 node_modules ,故我们前期设计上期望模块的 Browser 层依赖放在 DevDepedence,而 Node 层依赖放在 Dependence.

  4. 所有模块的构建,统一依赖 @opensumi/ide-dev-tool 方式引入构建依赖,如 typescript, webpack

  5. 基于这种目录结构,如果存在多个 Browser 模块的公共依赖,放在 @opensumi/ide-core-browser 将能减少版本维护的烦恼,一般通过脚本 npm run add:browser {moduleName} {depName} 的方式添加,同理也有 add:node 的脚本。

  6. 原则上如果模块 common 中只能引入 @opensumi/ide-core-common 中的内容,但如果该模块为纯 BrowserNode 模块,则允许从对应的 @opensumi/ide-core-browser@opensumi/ide-core-node 中引入。

图示

截屏2021-12-09 上午11 49 11

Support easy-to-use RecycleTree component

现状

当前的 @opensumi/ide-components 中实现的 RecycleTree 为了更灵活的组装形式,分离了视图及数据,牺牲了一定使用的便捷性,而以目前的情况去看,许多简化场景下可能不希望自己去组装,而是希望获得一个能快速使用的Tree组件,参考 AntDesign Tree组件 tree

期望

这部分组件功能前期希望能尽量收敛,支持的 Tree 种类希望能为一个最简化的版本,后续可能更多的是由业务方遵循相关开发规范自行在 @opensumi/ide-components 中实现相应的 Tree 组件的方式

Move DI test utils into `@opensumi/di`

现状

当前测试中有许多 Mock 方法依赖 tools/dev-tool 目录内的工具方法,这部分方法应当整合到 @opensumi/di

期望

DI 提供测试相关的工具函数

Use @opensumi/ide-components as sumi-browser's components

当前 sumi-kaitian 中依旧使用 @opensumi/ide-core-browser 中导出的部分组件,导致相关依赖划分不清晰,同时也存在一些待废弃的组件未清理

https://github.com/ide-framework/core/blob/84badf188a8526e37c46b0428c3a302a40793acd/packages/extension/src/browser/sumi-browser/components.ts

需要做的事情:

  • 移除框架对 @opensumi/ide-core-browser 中的 RecycleTree 依赖
  • 迁移剩余组件至 @opensumi/ide-core-components
  • 剥离通用的工具函数库 @opensumi/utils,解决重复工具类问题
  • 基础易用的 BasicRecycleTree 组件 #93

支持 Terminal 中更全的 URL 识别

问题如下:
image
使用 http://xxx.xxx.xxx.xxx:port 的方式不能识别,其实还有一些其它情况也不能识别,比如 webdav://host.local 这种

TODO:

  • 识别 Terminal URL

extHostPreferences 初始化错误

对于

image

目前解析会报错,当给 clang-format.executable 赋值为 string 时,其余的属性应该被解析成

clang-format: {
 executable: {
    windows: '',
    osx: '',
    linux: ''
}
}

Support custom `.code-workspace` suffix

支持通过 AppConfig 的方式自定义工作区后缀,目前框架默认的工作区后缀为 .sumi-workspace, 配置定义如下:

export interface AppConfig {
  ...
  workspaceSuffixName: string;
  ...
}

launchs.json 无法识别 ${env: xxxx} 环境变量

e.g:

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "java",
            "name": "Attach to Remote Program",
            "request": "attach",
            "hostName": "localhost",
            "port": "${env:DEBUG_PORT_NUMBER}",
        }
    ]
}

然后报如图错误
image

支持 editor/title/run 的 menu contributes

image

原来的 editor/title 这个 menu contributes 属性你只有将 group 设置为 "navigation@xx" 才会出现在右上角这里,否则就只会出现在 ··· 那儿。

阿 V 提供了一个 editor/title/run 选项就是可以以
image
这个图标展示在右上角,作用与 ··· 类似

image
image

相关 PR: microsoft/vscode@97c7d2a

[BUG]electron版在windows上debug, 无法打断点,toolbar 上的几个控件无法点击

问题描述

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 操作可用

问题截图(Screenshots)
image

环境信息(Environment)

  • OS: Windows10/Windows11
  • OpenSumi Version, 用的是 kaitian 2.12.8

fix the default terminal behavior in Windows

猜测:windows 下如果没有安装 git-bash 并且安装了 powershell,可能会打开 powershell,并且由于设置了 git-bash 的 login 参数导致终端打开异常。

electron 13 兼容

https://github.com/opensumi/core/blob/main/packages/core-electron-main/src/bootstrap/services/ui.ts#L75

electron 13 已经移除了 shell.moveItemToTrash(path); 作为替代,您应当使用异步的 shell.trashItem()。

https://www.electronjs.org/zh/docs/latest/breaking-changes#%E5%B7%B2%E7%A7%BB%E9%99%A4-shellmoveitemtotrash

需要判断一下 electron 版本,然后决定执行哪个

相关 issue:

看第二个链接中的描述,vscode 是自己 patch 了一个 13 的修复。
他们把自己的 patch 在第三个链接中放了出来。

提供 Sumi 简易桌面版

提供一个简单 Sumi 桌面版

  • 添加 tag 自动打包 dmg 格式
  • #222
  • 使用双层 package.json 减少包体积
  • 带 source map 信息

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.