介绍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源创计划”,欢迎正在阅读的你也加入,一块儿分享。