介紹git
Eclipse Theia 是開源的、可擴展的平臺,經過使用最早進的web技術開發支持多語言的雲端和桌面端IDE。目前在Github上有6k+顆星,700+次fork。貢獻者和支持者都是來自Google、IBM、SAP、RedHat、TypeFox、ERICSSON、ARDUINO等廠商。基於LSP(Language Server Protocol)構建的Theia,目前支持JavaScript、Java、Python等60多種語言。Theia,經過語言和調試服務器協議支持多種語言,同時支持雲端IDE和桌面IDE,使用Javascript的UI庫打造現代的GUI界面,它爲終端用戶提供一個成熟的多語言IDE,從而打造一款相似IDE的產品平臺。github
特性web
Eclipse Theia 具備如下特性:正則表達式
一、雲端&桌面。不論是須要Web版仍是桌面版,或者二者都須要。使用theia,能夠開發一個定製化的IDE,便可以在瀏覽器裏,也能夠在本地以桌面應用程序啓動。json
二、廠商中立。Theia項目是由Eclipse基金會(Eclipse Foundation)託管,該基金會是一家非盈利公司,由不一樣的社區開發。與其餘「開源」項目不一樣,在開放源代碼基金會託管的項目會受到保護,不受單個廠商決策的影響。瀏覽器
三、可擴展。Theia以模塊化的方式設計,容許擴展者或採用者定製化和擴展它的各個方面。在package.json文件裏列出了全部須要的擴展,這樣就能夠輕鬆的編寫一個個性化的IDE產品。經過實現本身的擴展來添加新功能,提供了很是好的靈活性。安全
試用服務器
能夠在Gitpod裏試用Theia,以下界面是工做空間,這裏能夠搜索Gitpod裏的代碼庫,會顯示代碼庫的基本信息,好比:代碼庫名稱和地址、版本控制信息、最近運行時間等。點擊「open」便可打開代碼空間。微信
概覽編輯器
Theia工做臺是由任意數量的打開的視圖和編輯器組成,這些視圖和編輯器能夠經過拖拽的形式任意排列。下面是Theia的主界面,任意一個面板均可以自由拖拽。這個佈局和本地IDE差異不大,左側是項目列表,中間是代碼編輯區,右側是預覽區,這個佈局我的感受仍是不錯。
搜索功能
爲了提升檢索效率,Theia提供了強大的搜索功能。
代碼搜索
打開左側面板中的搜索框,輸入關鍵字後會當即顯示檢索結果並高亮顯示。搜索能夠限制大小寫、徹底匹配和正則表達式。搜索結果以文件分組並顯示匹配關鍵字的數量。單擊匹配行會在編輯器顯示。點擊...顯示高級搜索。
文件搜索
快捷鍵Ctrl+P會打開文件檢索框,按文件名檢索,默認狀況下,隱藏文件和ignored文件不顯示。
類型搜索
快捷鍵Ctrl+O會打開類型檢索框,按類型名進行檢索。
導航器搜索
當選中項目的文件導航器後,直接輸入要檢索的關鍵字,就會高亮顯示符合關鍵字的文件名。這裏有個不足是,只能在當前展開的文件中檢索。若是要搜索文件,最好使用文件搜索功能。
文件內搜索
文件內的搜索和替換也是使用快捷鍵Ctrl+F,打開搜索和替換框,與其餘工具的使用方式同樣。
代碼補全
Theia也具體代碼智能提示的功能。
Git集成
Theia集成了Git並提供了方便的UI界面供開發人員查看,好比做者的提交信息、Git的狀態欄、分支和標籤、變動指示、Blame Annotations、合併衝突、查看Diff以及Git的歷史記錄等。
提交信息
Git視圖自動添加到左側面板中,包括三個主要的區域,最上面是輸入commit 信息,也提個了好多基本的Git命令。下面是提交文件部分,列出了變動的文件,包含兩個部分:Staged Changed和 Changed,下面顯示的是未暫存的文件。
在Git視圖的下面顯示着最近提交的信息。在最下面的藍色的狀態欄顯示Git的狀態,包含:代碼庫、當前分支以及這個分支的狀態(+*!),經過點擊分支名,能夠執行git checkout命令。若是當前分支有遠端分支,能夠執行刷新按鈕進行同步操做。
分支管理
能夠直接在命令行面板裏建立或檢出分支。以下圖所示。若是新建一個分支,輸入一個分支名稱,按回車鍵便可。
變動指示
當打開一個處於版本控制中的文件,對該文件進行修改,變動指示器會顯示變動的狀態。
紅色表示該行已經被刪除。綠色表示新增行。藍色表示修改行。
合併衝突
Theia會識別合併衝突,並高亮顯示這些差別並提供內聯操做來接受本地或引入的變動,一旦解決了衝突,就能夠準備暫存和提交這些變動。
查看Diff
雙擊修改的文件便可打開diff查看視圖,左側編輯器是處於索引狀態,右側編輯器是工做空間的狀態。
提交歷史
Theia裏提供了多種查看歷史的方式,能夠查看單個文件的提交歷史,也能夠查看當前代碼庫的提交歷史。
Pull Request
在Gitpod裏用的是標準的Github開發流,每一個任務都是以一個Github issue開始,在issue裏描述這個任務、缺陷或特性,而且記錄全部的討論和相關的提交。
要啓動一個Gitpod空間,在issue頁面,點擊「Gitpod」按鈕,會打開一個開發空間。在底部狀態欄會顯示建立的一個本地分支GH-{issue-number}.,若是打開Git視圖,在提交信息框中已經有"Fixes...."內容,這樣當這個提交合並後就會自動關閉這個Issue。
接下來在這個分支上,能夠編寫代碼,解決問題,而後就將變動做爲一個pull request進行提交。在Theia裏,有Pull Request視圖,能夠更改標題、描述,甚至不一樣的目標分支,一塊兒準備就緒後,點擊 Create Pull Request。
建立完後,在Pull Request視圖會提供評審功能,能夠給評審人留言,打開須要評審的文件,在代碼行左側須要添加評論的地方單擊,便可添加評論。
這些評論會在會話視圖顯示,一旦同步到github,這些評論也會在Pull Request視圖裏顯示。
Code Review
Gitpod基於Theia實現了Code Review的功能,當提交了PR後,會在Pull Request視圖打開PR變動文件列表,雙擊文件名稱會顯示Diff視圖,在Diff編輯器中瀏覽變動文件和審覈代碼。
還能夠添加行間評論,添加的評論會在會話視圖裏顯示,點擊評論可以定位到代碼行。
總結
對於開發人員來講,IDE是開發人員完成開發的場所。經過IDE可以集成與需求管理、代碼評審、版本控制、甚至觸發CICD構建,以及構建的狀態,可以大大的提升開發人員的效率。
DevOps的目的就是提升效率和代碼質量,IDE是一個很是好的,提升開發人員的效率和代碼質量的地方。Cloud IDE確定是將來的趨勢,開發人員的不會再由於IDE環境的配置花費時間,也會由於IDE環境配置得不一樣致使開發運行出現問題。DevOps項目組能夠針對Cloud IDE進行統一設置,統一控制,真正實現開發態的管控和提效。
Cloud IDE也能很好的解決代碼必須下載到本地才能開發的問題,從而解決了代碼泄露問題,對於對代碼安全要求較高的企業,這個或許是個不錯的選擇。
本文分享自微信公衆號 - DevOps探索者(devopsagile)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。