自研 IDE — 深度 deepin-IDE 正式亮相

图片

一、简介

deepin 社区正式官宣 deepin-IDE(深度集成开发环境)— 由深度公司自主研发,具有多语言、跨平台兼容特性的轻量级集成开发环境。deepin-IDE 除了包含 IDE 常用功能,如智能编辑器、高度可扩展的命令系统、工程管理、构建管理系统、插件系统等之外,还支持多种兼容协议、多种开发语言、代码版本管理集成、低开销的实时性能分析工具等。

二、架构介绍

总体采用基于模块化框架开发,支持 C/C++、Java、Python等多种编程语言,每一种开发语言均是以插件的方式接入。模块化设计一方面可以缩短产品研发与制造周期,增加产品系列,提高产品质量,快速应对市场变化;另一方面,也可以减少或消除对环境的不利影响,方便重用、升级、维修和独立卸载。其整体结构设计如下图所示:

图片

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

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

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

图片

三、功能介绍

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

图片

deepin-IDE 目前支持 C++、C、Java、Python、JavasSript 五种主流编程语言;内置语言服务器协议(LSP)、调试适配器协议(DAP);支持主流版本控制系统 Git、SVN;支持常用构建工具 Cmake、Maven、Ninja、Gradle 等。

四、版本管理

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

图片

五、协议支持

图片

六、语言支持

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

语言工程类型
C/C++CMake、Ninja
JavaGradle、Maven
Python工程目录
JavaScript工程目录

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

七、反向调试

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

八、代码迁移

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

九、功能界面预览

语言支持

图片

  • 代码迁移

图片

  • 调试模式

图片

  • 反向调试

图片

  • 版本管理

图片

十、相关资料

目前,deepin-IDE 已全面开源:

仓库地址:

GitHub: https://github.com/linuxdeepin/deepin-unioncode

Gitee: https://gitee.com/deepin-community/deepin-unioncode

deepin-unioncode 用户使用手册:https://bbs.deepin.org/post/261338

图片

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值