深度操作系统自研 deepin-IDE 开发工具首次亮相:代码开源,与 VS Code 无关
创始人
2025-06-30 15:41:42
0

9 月 4 日消息,deepin 深度操作系统今日正式公布了旗下自研 IDE 开发工具,经过多年时间研发,deepin-IDE 首次亮相,官方称最终目标是将分散的内容整合到一起,形成一个高度统一、开放自由、资源丰富的生态建设利器。

据介绍,deepin-IDE 在内部已经开发了多年时间,还没有达到非常完善的地步。同时因为设计人员没有参与,所以整个界面由研发人员“原生”设计,非常时(朴)尚(素)。

▲ 语言支持,图源深度操作系统公众号,下同▲ 语言支持,图源深度操作系统公众号,下同


▲ 代码迁移▲ 代码迁移


▲ 调试模式▲ 调试模式


▲ 反向调试▲ 反向调试


▲ 版本管理▲ 版本管理


deepin-IDE 总体采用基于模块化框架开发,支持 C / C++、Java、Python 等多种编程语言,每一种开发语言均是以插件的方式接入。

深度操作系统官方表示,模块化设计一方面可以缩短产品研发与制造周期,增加产品系列,提高产品质量,快速应对市场变化;另一方面,也可以减少或消除对环境的不利影响,方便重用、升级、维修和独立卸载。其整体结构设计如下图所示:

图片图片

如上图所示,带颜色的模块均和特定的语言相关,对应通信中间件用的是 LSP(Language Server Protocol) 语言服务协议,可以基于该协议实现语法高亮、符号树、语法树等功能;调试相关的用的是 DAP(Debug Adapter Protocol) 调试适配协议,可以基于该协议实现被调试程序的启动、运行、断点命中、单步跳入、单步跳出等常用调试功能。通过中间协议的适配,解耦了语言业务功能与实际功能提供者的依赖,让语言扩展变得可行。

为了进一步提高扩展性,前、后端均以插件方式实现。在前端通过接入一个新的语言插件来实现新语言的扩展,该插件用于实现语言相关的、特殊的业务逻辑,不用编写全量的代码,从而减轻了语言插件的代码负担。

在后端,通过插件方式可以更容易接入一个语言服务提供者。

根据上述描述,将语言相关的顶层数据流图绘制如下:

图片图片

功能介绍

deepin-IDE 除了包含 IDE 常用功能,如智能编辑器、高度可扩展的命令系统、工程管理、构建管理系统、插件系统等之外,还支持多种兼容协议、多种开发语言、代码版本管理集成、低开销的实时性能分析工具等。总体而言,IDE 常见功能都在表里:

图片图片

版本管理

支持主流版本控制系统 Git、SVN。

图片图片

协议支持

图片图片

语言支持

支持 C++、C、Java、Python、JavaScript 五大类常用编辑语言,支持常用构建工具 CMake、Maven、Ninja、Gradle 等。

图片图片

除了上述常见功能,deepin-IDE 还包含一些特有功能,例如反向调试、代码迁移等。

反向调试

该功能通过进程执行历史回放、事件分类管理、时间轴管理等手段,进一步提升应用的调试效率和开发能力。

代码迁移

代码迁移分析子系统是 deepin-IDE 的一大亮点,可以辅助开发者将 x86 平台的 Linux 应用迁移到龙芯、飞腾等国产处理器架构,及统信 UOS 等国产操作系统上,使用该功能可以自动分析出需修改的代码内容,并给出代码迁移指导,降低迁移难度,提升迁移效率。

据介绍,自研 IDE 可以提供 DTK、各种二开接口的开发支持,开发者可以基于开发库开发出对应业务功能的应用。其次,自研 IDE 可以默认提供“玲珑”打包格式,一次打包即可覆盖全 Linux 生态环境。最后,为了便于开发者交流,增强社区活性,自研 IDE 可以集成开发者平台,使开发者汇聚在一起交流开发经验。

深度操作系统官方表示,deepin-IDE 自研代码 14 万余行。为了避免重复造轮子,deepin-IDE 采用了一些开源终端组件、功能组件:

图片

深度操作系统官方还回应称,deepin-IDE 和 VS Code 没有关联。

deepin-IDE 代码现已公开地址,IT之家附仓库和下载地址如下:

仓库地址:

  • GitHub:https://github.com/linuxdeepin/deepin-unioncode
  • Gitee:https://gitee.com/deepin-community/deepin-unioncode

下载链接:

  • https://github.com/linuxdeepin/deepin-unioncode/releases

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
Intel将Moblin社区控... 本周二,非营利机构Linux基金会宣布,他们将担负起Moblin社区的管理工作,而这之前,Mobli...