<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 業(yè)界動(dòng)態(tài) > 深度操作系統自研 deepin-IDE 開(kāi)發(fā)工具首次亮相:代碼開(kāi)源,與 VS Code 無(wú)關(guān)

深度操作系統自研 deepin-IDE 開(kāi)發(fā)工具首次亮相:代碼開(kāi)源,與 VS Code 無(wú)關(guān)

作者: 時(shí)間:2023-09-04 來(lái)源:IT之家 收藏

IT之家 9 月 4 日消息,deepin 深度今日正式公布了旗下自研 IDE 開(kāi)發(fā)工具,經(jīng)過(guò)多年時(shí)間研發(fā),deepin-IDE 首次亮相,官方稱(chēng)最終目標是將分散的內容整合到一起,形成一個(gè)高度統一、開(kāi)放自由、資源豐富的生態(tài)建設利器。

本文引用地址:http://dyxdggzs.com/article/202309/450223.htm

據介紹,deepin-IDE 在內部已經(jīng)開(kāi)發(fā)了多年時(shí)間,還沒(méi)有達到非常完善的地步。同時(shí)因為設計人員沒(méi)有參與,所以整個(gè)界面由研發(fā)人員“原生”設計,非常時(shí)(樸)尚(素)。

圖片

▲ 語(yǔ)言支持,圖源深度公眾號,下同

圖片

▲ 代碼遷移

圖片

▲ 調試模式

圖片

▲ 反向調試

圖片

▲ 版本管理

deepin-IDE 總體采用基于模塊化框架開(kāi)發(fā),支持 C / C++、Java、Python 等多種編程語(yǔ)言,每一種開(kāi)發(fā)語(yǔ)言均是以插件的方式接入。

深度官方表示,模塊化設計一方面可以縮短產(chǎn)品研發(fā)與制造周期,增加產(chǎn)品系列,提高產(chǎn)品質(zhì)量,快速應對市場(chǎng)變化;另一方面,也可以減少或消除對環(huán)境的不利影響,方便重用、升級、維修和獨立卸載。其整體結構設計如下圖所示:

圖片

如上圖所示,帶顏色的模塊均和特定的語(yǔ)言相關(guān),對應通信中間件用的是 LSP(Language Server Protocol) 語(yǔ)言服務(wù)協(xié)議,可以基于該協(xié)議實(shí)現語(yǔ)法高亮、符號樹(shù)、語(yǔ)法樹(shù)等功能;調試相關(guān)的用的是 DAP(Debug Adapter Protocol) 調試適配協(xié)議,可以基于該協(xié)議實(shí)現被調試程序的啟動(dòng)、運行、斷點(diǎn)命中、單步跳入、單步跳出等常用調試功能。通過(guò)中間協(xié)議的適配,解耦了語(yǔ)言業(yè)務(wù)功能與實(shí)際功能提供者的依賴(lài),讓語(yǔ)言擴展變得可行。

為了進(jìn)一步提高擴展性,前、后端均以插件方式實(shí)現。在前端通過(guò)接入一個(gè)新的語(yǔ)言插件來(lái)實(shí)現新語(yǔ)言的擴展,該插件用于實(shí)現語(yǔ)言相關(guān)的、特殊的業(yè)務(wù)邏輯,不用編寫(xiě)全量的代碼,從而減輕了語(yǔ)言插件的代碼負擔。

在后端,通過(guò)插件方式可以更容易接入一個(gè)語(yǔ)言服務(wù)提供者。

根據上述描述,將語(yǔ)言相關(guān)的頂層數據流圖繪制如下:

圖片

功能介紹

deepin-IDE 除了包含 IDE 常用功能,如智能編輯器、高度可擴展的命令系統、工程管理、構建管理系統、插件系統等之外,還支持多種兼容協(xié)議、多種開(kāi)發(fā)語(yǔ)言、代碼版本管理集成、低開(kāi)銷(xiāo)的實(shí)時(shí)性能分析工具等??傮w而言,IDE 常見(jiàn)功能都在表里:

圖片

版本管理

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

圖片

協(xié)議支持

圖片

語(yǔ)言支持

支持 C++、C、Java、Python、JavaScript 五大類(lèi)常用編輯語(yǔ)言,支持常用構建工具 CMake、Maven、Ninja、Gradle 等。

圖片

除了上述常見(jiàn)功能,deepin-IDE 還包含一些特有功能,例如反向調試、代碼遷移等。

反向調試

該功能通過(guò)進(jìn)程執行歷史回放、事件分類(lèi)管理、時(shí)間軸管理等手段,進(jìn)一步提升應用的調試效率和開(kāi)發(fā)能力。

代碼遷移

代碼遷移分析子系統是 deepin-IDE 的一大亮點(diǎn),可以輔助開(kāi)發(fā)者將 x86 平臺的 Linux 應用遷移到龍芯、飛騰等國產(chǎn)處理器架構,及統信 UOS 等國產(chǎn)操作系統上,使用該功能可以自動(dòng)分析出需修改的代碼內容,并給出代碼遷移指導,降低遷移難度,提升遷移效率。

據介紹,自研 IDE 可以提供 DTK、各種二開(kāi)接口的開(kāi)發(fā)支持,開(kāi)發(fā)者可以基于開(kāi)發(fā)庫開(kāi)發(fā)出對應業(yè)務(wù)功能的應用。其次,自研 IDE 可以默認提供“玲瓏”打包格式,一次打包即可覆蓋全 Linux 生態(tài)環(huán)境。最后,為了便于開(kāi)發(fā)者交流,增強社區活性,自研 IDE 可以集成開(kāi)發(fā)者平臺,使開(kāi)發(fā)者匯聚在一起交流開(kāi)發(fā)經(jīng)驗。

深度操作系統官方表示,deepin-IDE 自研代碼 14 萬(wàn)余行。為了避免重復造輪子,deepin-IDE 采用了一些開(kāi)源終端組件、功能組件:

圖片

深度操作系統官方還回應稱(chēng),deepin-IDE 和 VS Code 沒(méi)有關(guān)聯(lián)。

deepin-IDE 代碼現已公開(kāi)地址,IT之家附倉庫和下載地址如下:

倉庫地址:

下載鏈接:




關(guān)鍵詞: 操作系統

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>