集成开发系统、代码处理方法、电子设备和存储介质技术方案

技术编号:38906249 阅读:13 留言:0更新日期:2023-09-22 14:24
本公开提供了一种集成开发系统、代码处理方法、电子设备和存储介质,涉及计算机技术领域,具体涉及应用开发、在线开发等技术领域。集成开发系统包括:编辑组件,用于获取开发者编写的目标代码;语言服务代理组件,用于在预先安装的多种候选语言服务中,启动与所述目标代码对应的目标语言服务,并通过所述目标语言服务为所述目标代码提供语言特性服务;服务组件,用于在多个候选执行组件中确定目标执行组件,并向所述目标执行器发送代码执行消息;目标执行组件,用于响应于所述代码执行消息,启动目标进程;以及,为所述目标进程分配目标沙箱,并在所述目标沙箱内运行所述目标进程。本公开可以简洁高效地实现集成开发系统。公开可以简洁高效地实现集成开发系统。公开可以简洁高效地实现集成开发系统。

【技术实现步骤摘要】
集成开发系统、代码处理方法、电子设备和存储介质


[0001]本公开涉及计算机
,具体涉及应用开发、在线开发等
,尤其涉及一种集成开发系统、代码处理方法、电子设备和存储介质。

技术介绍

[0002]云端集成开发环境(IntegratedDevelopmentEnvironment,IDE)是基于浏览器的集成式开发环境,为开发者提供了一个稳定的云端工作站。
[0003]云端IDE可以分为全量IDE(FullIDE)和代码片段(CodeSnippets),FullIDE功能齐全但学习使用成本高,CodeSnippets功能不齐全,特别是安全性较差。
[0004]为此,如何实现一种简洁高效的云端IDE是亟需解决的问题。

技术实现思路

[0005]本公开提供了一种集成开发系统、代码处理方法、电子设备和存储介质。
[0006]根据本公开的一方面,提供了一种集成开发系统,包括:编辑组件,用于获取开发者编写的目标代码;语言服务代理组件,用于在预先安装的多种候选语言服务中,启动与所述目标代码对应的目标语言服务,并通过所述目标语言服务为所述目标代码提供语言特性服务;服务组件,用于在多个候选执行组件中确定目标执行组件,并向所述目标执行器发送代码执行消息,所述代码执行消息中包含所述目标代码;目标执行组件,用于响应于所述代码执行消息,启动目标进程,所述目标进程用于执行所述目标代码;以及,为所述目标进程分配目标沙箱,并在所述目标沙箱内运行所述目标进程。
[0007]根据本公开的另一方面,提供了一种代码处理方法,包括:获取开发者编写的目标代码;在预先安装的多种候选语言服务中,启动与所述目标代码对应的目标语言服务,并通过所述目标语言服务为所述目标代码提供语言特性服务;在多个候选执行组件中确定目标执行组件,并向所述目标执行器发送代码执行消息,所述代码执行消息中包含所述目标代码;响应于所述代码执行消息,启动目标进程,所述目标进程用于执行所述目标代码;以及,为所述目标进程分配目标沙箱,并在所述目标沙箱内运行所述目标进程。
[0008]根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述任一方面的任一项所述的方法。
[0009]根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据上述任一方面的任一项所述的方法。
[0010]根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据上述任一方面的任一项所述的方法。
[0011]根据本公开的技术方案,可以简洁高效地实现集成开发系统。
[0012]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0013]附图用于更好地理解本方案,不构成对本公开的限定。其中:
[0014]图1是根据本公开第一实施例的示意图;
[0015]图2是根据本公开实施例提供的应用场景的示意图;
[0016]图3是根据本公开第二实施例的示意图;
[0017]图4是根据本公开实施例提供的编辑组件的示意图;
[0018]图5是根据本公开实施例提供的服务组件的示意图;
[0019]图6是根据本公开实施例提供的执行组件的示意图;
[0020]图7是根据本公开实施例提供的语言服务代理组件的示意图;
[0021]图8是根据本公开第三实施例的示意图;
[0022]图9是根据本公开第四实施例的示意图;
[0023]图10是用来实现本公开实施例的代码处理方法的电子设备的示意图。
具体实施方式
[0024]以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0025]图1是根据本公开第一实施例的示意图,本实施例提供一种集成开发系统。如图1所示,该系统100包括:编辑组件101、语言服务代理组件102、服务组件103和目标执行组件104。
[0026]编辑组件101用于获取开发者编写的目标代码;语言服务代理组件102用于在预先安装的多种候选语言服务中,启动与所述目标代码对应的目标语言服务,并通过所述目标语言服务为所述目标代码提供语言特性服务;服务组件103用于在多个候选执行组件中确定目标执行组件,并向所述目标执行器发送代码执行消息,所述代码执行消息中包含所述目标代码;目标执行组件104用于响应于所述代码执行消息,启动目标进程,所述目标进程用于执行所述目标代码;以及,为所述目标进程分配目标沙箱,并在所述目标沙箱内运行所述目标进程。
[0027]该系统可以位于云端,因此也可以称为云端IDE。
[0028]以云端IDE为例,开发者可以使用浏览器,在浏览器中输入统一资源定位器(UniformResourceLocator,URL),以在线接入该云端IDE。
[0029]编辑组件(Editor)是整个系统的入口,提供前端界面,开发者在编辑组件内编写代码。
[0030]语言服务代理组件(LSPhub),与编辑组件通信,为多种语言服务(languageserver)提供统一的集中代理服务。即,每种语言服务对应一个进程,多个进程可以并行运行在语言服务代理组件中。
[0031]语言服务协议(LanguageServerProtocol,LSP)是一种通信协议。语言服务(languageserver)用于提供语言特性,例如包括:自动补全、查找定义、引用跳转等。
[0032]基于编译组件

语言服务代理组件这条链路,可以对开发者编写的目标代码提供语言特性(或者说IDE特性),语言特性例如包括:自动补全、查找定义、引用跳转等。
[0033]相关技术中,如FullIDE中,多种语言服务通常是以插件的方式集成在每种编辑器内,假设有M中编辑器和N种语言,则需要开发M*N种。
[0034]而本实施例中,通过LSPhub,可以实现编辑器与语言服务的解耦,基于上述示例,只需要开发M+N种。因此,可以实现轻量化的云端IDE。
[0035]为了实现负载均衡,执行组件可以设置为多个,这多个执行组件可以称为候选执行组件。服务组件基于负载均衡原则确定的最终执行代码的执行组件可以称为目标执行组件。
[0036]编辑组件

服务组件(Server)

目本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种集成开发系统,包括:编辑组件,用于获取开发者编写的目标代码;语言服务代理组件,用于在预先安装的多种候选语言服务中,启动与所述目标代码对应的目标语言服务,并通过所述目标语言服务为所述目标代码提供语言特性服务;服务组件,用于在多个候选执行组件中确定目标执行组件,并向所述目标执行器发送代码执行消息,所述代码执行消息中包含所述目标代码;目标执行组件,用于响应于所述代码执行消息,启动目标进程,所述目标进程用于执行所述目标代码;以及,为所述目标进程分配目标沙箱,并在所述目标沙箱内运行所述目标进程。2.根据权利要求1所述的系统,其中,所述目标执行组件包括:目标沙箱,用于运行所述目标进程;执行服务器,用于与所述服务组件建立通信连接,并通过所述通信连接接收所述代码执行消息;以及,响应于所述代码执行消息,启动所述目标进程,以及调用所述目标沙箱。3.根据权利要求2所述的系统,其中,所述目标执行组件还包括:心跳服务器,用于向所述服务组件发送心跳消息,所述心跳消息中包含资源占用信息,以使所述服务组件基于所述资源占用信息在多个候选执行组件中确定目标执行组件。4.根据权利要求2所述的系统,其中,所述执行服务器与所述服务组件之间的所述通信连接为WebSocket连接。5.根据权利要求2所述的系统,其中,所述语言服务代理组件进一步用于:响应于与所述编辑组件的通信连接,在预先安装的多种候选语言服务中,启动与所述目标代码对应的目标语言服务,并通过所述目标语言服务为所述目标代码提供语言特性服务。6.根据权利要求5所述的系统,其中,所述语言服务代理组件与所述编辑组件之间的通信连接包括如下项中的任一项:WebSocket连接、标准输入输出连接、命名管道连接。7.根据权利要求5所述的系统,其中,若启动所述目标语言服务之前已启动其他语言服务,则所述目标语言服务与所述其他语言服务在所述语言服务代理组件内并行运行。8.根据权利要求1

7任一项所述的系统,还包括:数据库,用于存储所述服务组件发送的目标数据,所述目标数据包括:所述目标代码,和/或,所述目标代码的运行结果。9.一种代码处理方法,包括:获取开发者编写的目标代码;在预先安装的多种候选语言服务中,启动与所述目标代码对应的目标语言服务,并通过所述目标语言服务为所述目标代码提供语言特性服务;在多个候选执行组件中确定目标执行组件,并向所述目标执行器发送代码执行消息,所述代码执行消息中包含所述目标代码;响应于所述代码执行...

【专利技术属性】
技术研发人员:楼昌焘贺鹤
申请(专利权)人:百度国际科技深圳有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1