一、简介
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 |
Java | Gradle、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