深度操作系統(tǒng)自研 deepin-IDE 開(kāi)發(fā)工具首次亮相:代碼開(kāi)源,與 VS Code 無(wú)關(guān)
9 月 4 日消息,deepin 深度操作系統(tǒng)今日正式公布了旗下自研 IDE 開(kāi)發(fā)工具,經(jīng)過(guò)多年時(shí)間研發(fā),deepin-IDE 首次亮相,官方稱最終目標(biāo)是將分散的內(nèi)容整合到一起,形成一個(gè)高度統(tǒng)一、開(kāi)放自由、資源豐富的生態(tài)建設(shè)利器。
據(jù)介紹,deepin-IDE 在內(nèi)部已經(jīng)開(kāi)發(fā)了多年時(shí)間,還沒(méi)有達(dá)到非常完善的地步。同時(shí)因?yàn)樵O(shè)計(jì)人員沒(méi)有參與,所以整個(gè)界面由研發(fā)人員“原生”設(shè)計(jì),非常時(shí)(樸)尚(素)。
▲ 語(yǔ)言支持,圖源深度操作系統(tǒng)公眾號(hào),下同
▲ 代碼遷移
▲ 調(diào)試模式
▲ 反向調(diào)試
▲ 版本管理
deepin-IDE 總體采用基于模塊化框架開(kāi)發(fā),支持 C / C++、Java、Python 等多種編程語(yǔ)言,每一種開(kāi)發(fā)語(yǔ)言均是以插件的方式接入。
深度操作系統(tǒng)官方表示,模塊化設(shè)計(jì)一方面可以縮短產(chǎn)品研發(fā)與制造周期,增加產(chǎn)品系列,提高產(chǎn)品質(zhì)量,快速應(yīng)對(duì)市場(chǎng)變化;另一方面,也可以減少或消除對(duì)環(huán)境的不利影響,方便重用、升級(jí)、維修和獨(dú)立卸載。其整體結(jié)構(gòu)設(shè)計(jì)如下圖所示:
圖片
如上圖所示,帶顏色的模塊均和特定的語(yǔ)言相關(guān),對(duì)應(yīng)通信中間件用的是 LSP(Language Server Protocol) 語(yǔ)言服務(wù)協(xié)議,可以基于該協(xié)議實(shí)現(xiàn)語(yǔ)法高亮、符號(hào)樹(shù)、語(yǔ)法樹(shù)等功能;調(diào)試相關(guān)的用的是 DAP(Debug Adapter Protocol) 調(diào)試適配協(xié)議,可以基于該協(xié)議實(shí)現(xiàn)被調(diào)試程序的啟動(dòng)、運(yùn)行、斷點(diǎn)命中、單步跳入、單步跳出等常用調(diào)試功能。通過(guò)中間協(xié)議的適配,解耦了語(yǔ)言業(yè)務(wù)功能與實(shí)際功能提供者的依賴,讓語(yǔ)言擴(kuò)展變得可行。
為了進(jìn)一步提高擴(kuò)展性,前、后端均以插件方式實(shí)現(xiàn)。在前端通過(guò)接入一個(gè)新的語(yǔ)言插件來(lái)實(shí)現(xiàn)新語(yǔ)言的擴(kuò)展,該插件用于實(shí)現(xiàn)語(yǔ)言相關(guān)的、特殊的業(yè)務(wù)邏輯,不用編寫(xiě)全量的代碼,從而減輕了語(yǔ)言插件的代碼負(fù)擔(dān)。
在后端,通過(guò)插件方式可以更容易接入一個(gè)語(yǔ)言服務(wù)提供者。
根據(jù)上述描述,將語(yǔ)言相關(guān)的頂層數(shù)據(jù)流圖繪制如下:
圖片
功能介紹
deepin-IDE 除了包含 IDE 常用功能,如智能編輯器、高度可擴(kuò)展的命令系統(tǒng)、工程管理、構(gòu)建管理系統(tǒng)、插件系統(tǒng)等之外,還支持多種兼容協(xié)議、多種開(kāi)發(fā)語(yǔ)言、代碼版本管理集成、低開(kāi)銷(xiāo)的實(shí)時(shí)性能分析工具等??傮w而言,IDE 常見(jiàn)功能都在表里:
圖片
版本管理
支持主流版本控制系統(tǒng) Git、SVN。
圖片
協(xié)議支持
圖片
語(yǔ)言支持
支持 C++、C、Java、Python、JavaScript 五大類(lèi)常用編輯語(yǔ)言,支持常用構(gòu)建工具 CMake、Maven、Ninja、Gradle 等。
圖片
除了上述常見(jiàn)功能,deepin-IDE 還包含一些特有功能,例如反向調(diào)試、代碼遷移等。
反向調(diào)試
該功能通過(guò)進(jìn)程執(zhí)行歷史回放、事件分類(lèi)管理、時(shí)間軸管理等手段,進(jìn)一步提升應(yīng)用的調(diào)試效率和開(kāi)發(fā)能力。
代碼遷移
代碼遷移分析子系統(tǒng)是 deepin-IDE 的一大亮點(diǎn),可以輔助開(kāi)發(fā)者將 x86 平臺(tái)的 Linux 應(yīng)用遷移到龍芯、飛騰等國(guó)產(chǎn)處理器架構(gòu),及統(tǒng)信 UOS 等國(guó)產(chǎn)操作系統(tǒng)上,使用該功能可以自動(dòng)分析出需修改的代碼內(nèi)容,并給出代碼遷移指導(dǎo),降低遷移難度,提升遷移效率。
據(jù)介紹,自研 IDE 可以提供 DTK、各種二開(kāi)接口的開(kāi)發(fā)支持,開(kāi)發(fā)者可以基于開(kāi)發(fā)庫(kù)開(kāi)發(fā)出對(duì)應(yīng)業(yè)務(wù)功能的應(yīng)用。其次,自研 IDE 可以默認(rèn)提供“玲瓏”打包格式,一次打包即可覆蓋全 Linux 生態(tài)環(huán)境。最后,為了便于開(kāi)發(fā)者交流,增強(qiáng)社區(qū)活性,自研 IDE 可以集成開(kāi)發(fā)者平臺(tái),使開(kāi)發(fā)者匯聚在一起交流開(kāi)發(fā)經(jīng)驗(yàn)。
深度操作系統(tǒng)官方表示,deepin-IDE 自研代碼 14 萬(wàn)余行。為了避免重復(fù)造輪子,deepin-IDE 采用了一些開(kāi)源終端組件、功能組件:
深度操作系統(tǒng)官方還回應(yīng)稱,deepin-IDE 和 VS Code 沒(méi)有關(guān)聯(lián)。
deepin-IDE 代碼現(xiàn)已公開(kāi)地址,IT之家附倉(cāng)庫(kù)和下載地址如下:
倉(cāng)庫(kù)地址:
- GitHub:https://github.com/linuxdeepin/deepin-unioncode
- Gitee:https://gitee.com/deepin-community/deepin-unioncode
下載鏈接: