基于LSP的智能代码编辑器的设计方法及系统技术方案

技术编号:35904174 阅读:24 留言:0更新日期:2022-12-10 10:41
本发明专利技术提供一种基于LSP的智能代码编辑器的设计方法及系统,涉及计算机技术领域,包括:步骤S1:启动资源服务器,提供界面静态资源服务、文件管理服务以及语言服务器功能初始化以提供语言服务;步骤S2:初始化前端WEB页面环境,加载WEB相关功能以及设定URL,从静态资源服务器加载用户界面所需的渲染资源;步骤S3:连接文件管理服务和语言服务器,完成用户端语言服务,文件管理服务功能的初始化;步骤S4:加载本地用户模板,提供额外的接口标准支持以及用户自定义模板支持;步骤S5:用户编辑过程中,动态加载语言服务器相关功能。本发明专利技术能够解决LSP协议与智能代码编辑器在复杂环境下的部署困难,并提供一个轻量级远程的代码智能编辑方案。案。案。

【技术实现步骤摘要】
基于LSP的智能代码编辑器的设计方法及系统


[0001]本专利技术涉及计算机
,具体地,涉及一种基于LSP的智能代码编辑器的设计方法及系统。

技术介绍

[0002]每个开发IDE,都要为语言实现类如自动补全,转动定义,悬停在单词上提供文档的功能;传统上,需要个IDE根据自己的API实现上述工作,即使是相同的功能,也要根据不同IDE实现一遍重复的功能,代码却不同。LSP设计的目标是使该语言服务器和开发工具进行标准化的通信,这个语言服务可以在多个开发工具中重复使用,从而以最小的改动支持多种语言。语言服务器后端可以用PHP,Python或Java编写,LSP可以轻松地将其集成到各种工具中,该协议提供通用抽象级别的协议,以便工具可以提供丰富的语言服务,从而无需完全理解特定于底层域模型的细微差别。
[0003]Visual Studio Code是一个轻量级但功能强大的源代码编辑器,可在桌面上运行,适用于Windows、macOS和Linux。它内置了对JavaScript、TypeScript和Node的支持。js并为其他语言和运行时(如C++、C#、Java、Python、PHP、Go、.NET)提供了丰富的扩展生态系统。
[0004]VSCode采用了LSP作为提供各项开发编码过程中常用功能的协议,采用插件体系提供不同语言的扩展功能,目前主要提供本地的编辑环境,远程开发需要使用SSH连接服务器,因此无法充分利用云能力,并且服务端缺少透明性。同时VSCode是基于Electron的客户端技术,复杂环境下并不适用,并且需要下载安装流程。
[0005]综上,现有技术中存在以下问题:1)复杂环境下语言服务协议与智能代码编辑器配置部署困难。2)无法充分利用云能力。3)受限于本地环境,代码编辑不够灵活。

技术实现思路

[0006]针对现有技术中的缺陷,本专利技术提供一种基于LSP的智能代码编辑器的设计方法及系统。
[0007]根据本专利技术提供的一种基于LSP的智能代码编辑器的设计方法及系统,所述方案如下:
[0008]第一方面,提供了一种基于LSP的智能代码编辑器的设计方法,所述方法包括:
[0009]步骤S1:启动资源服务器,提供界面静态资源服务、文件管理服务以及语言服务器功能初始化以提供语言服务;
[0010]步骤S2:初始化前端WEB页面环境,加载WEB相关功能以及设定URL,从静态资源服务器加载用户界面所需的渲染资源;
[0011]步骤S3:界面渲染完成后连接所述文件管理服务和语言服务器,完成用户端语言服务,文件管理服务功能的初始化;
[0012]步骤S4:利用所述文件管理服务加载本地用户模板,提供额外的接口标准支持以
及用户自定义模板支持;
[0013]步骤S5:用户编辑过程中利用初始化完成的语言服务功能,动态加载所述语言服务器相关功能。
[0014]优选地,所述静态资源服务提供智能编辑器页面显示所需要的资源;
[0015]所述文件管理服务提供文件的修改、保存、删除、新建在内的相关智能编辑器无法直接提供的功能;
[0016]所述语言服务器需要加载对应编程语言所需要的语言服务器,并进行IO重定向,JSON

PRC封装,提供Websockeet服务以实现编辑器与服务器的必要操作。
[0017]优选地,所述启动资源服务包括:
[0018]步骤S1.1:初始化所述文件服务器与资源服务器;
[0019]步骤S1.2:文件服务器判断是否存在标准接口配置;若是,则加载并提供外部接口;
[0020]步骤S1.3:判断是否存在用户模板配置;若是,则加载并提供外部接口;
[0021]步骤S1.4:初始化语言服务器;
[0022]步骤S1.5:语言服务器IO重定向;
[0023]步骤S1.6:循环等待资源服务器请求;
[0024]步骤S1.7:判断是否主动关闭;若否,则返回上一步骤。
[0025]优选地,所述服务器请求处理包括:静态资源服务请求、文件操作服务请求与语言服务请求;按照协议划分为HTTP请求与Websocket请求。
[0026]优选地,接收所述HTTP请求,所述HTTP请求中包括静态资源服务和文件操作服务;
[0027]若为静态资源服务,则判断是否存在缓存;若否,则加载磁盘资源,返回所需静态资源;若是,则直接读取缓存,返回所需静态资源;
[0028]若为文件操作服务,则判断是否有相关权限;若是,则执行对应操作并返回操作结果,若否,则返回错误信息。
[0029]优选地,接收用户代码编辑操作对应的Websocket请求,则进行语言服务;
[0030]所述语言服务器解析用户请求,并将Websocket请求转至语言服务器,获取语言服务器的响应,利用JSON

PRC封装返回响应。
[0031]优选地,所述静态资源服务提供智能编辑器页面显示所需要的资源,其中,智能编辑器页面的加载流程包括:
[0032]加载界面资源、接口模板、用户模板以及当前文件;
[0033]加载完成后,建立Websocket连接;
[0034]判断Websocket连接是否建立;若是,则提供语言服务支持进行用户操作,若否,则只提供基本的语言服务。
[0035]第二方面,提供了一种基于LSP的智能代码编辑器的设计方法,所述系统包括:
[0036]模块M1:启动资源服务器,提供界面静态资源服务、文件管理服务以及语言服务器功能初始化以提供语言服务;
[0037]模块M2:初始化前端WEB页面环境,加载WEB相关功能以及设定URL,从静态资源服务器加载用户界面所需的渲染资源;
[0038]模块M3:界面渲染完成后连接所述文件管理服务和语言服务器,完成用户端语言
服务,文件管理服务功能的初始化;
[0039]模块M4:利用所述文件管理服务加载本地用户模板,提供额外的接口标准支持以及用户自定义模板支持;
[0040]模块M5:用户编辑过程中利用初始化完成的语言服务功能,动态加载所述语言服务器相关功能。
[0041]优选地,所述静态资源服务提供智能编辑器页面显示所需要的资源;
[0042]所述文件管理服务提供文件的修改、保存、删除、新建在内的相关智能编辑器无法直接提供的功能;
[0043]所述语言服务器需要加载对应编程语言所需要的语言服务器,并进行IO重定向,JSON

PRC封装,提供Websockeet服务以实现编辑器与服务器的必要操作。
[0044]优选地,所述启动资源服务包括:
[0045]步骤S1.1:初始化所述文件服务器与资源服务器;
[0046]步骤S1.2:文件服务器判断是否存在标准接口配置;若是,则加载并提供外部接口;
[0047]步骤S1.3:判断是否存在用户模板配置本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于LSP的智能代码编辑器的设计方法,其特征在于,包括:步骤S1:启动资源服务器,提供界面静态资源服务、文件管理服务以及语言服务器功能初始化以提供语言服务;步骤S2:初始化前端WEB页面环境,加载WEB相关功能以及设定URL,从静态资源服务器加载用户界面所需的渲染资源;步骤S3:界面渲染完成后连接所述文件管理服务和语言服务器,完成用户端语言服务,文件管理服务功能的初始化;步骤S4:利用所述文件管理服务加载本地用户模板,提供额外的接口标准支持以及用户自定义模板支持;步骤S5:用户编辑过程中利用初始化完成的语言服务功能,动态加载所述语言服务器相关功能。2.根据权利要求1所述的基于LSP的智能代码编辑器的设计方法,其特征在于,所述静态资源服务提供智能编辑器页面显示所需要的资源;所述文件管理服务提供文件的修改、保存、删除、新建在内的相关智能编辑器无法直接提供的功能;所述语言服务器需要加载对应编程语言所需要的语言服务器,并进行IO重定向,JSON

PRC封装,提供Websockeet服务以实现编辑器与服务器的必要操作。3.根据权利要求1所述的基于LSP的智能代码编辑器的设计方法,其特征在于,所述启动资源服务包括:步骤S1.1:初始化所述文件服务器与资源服务器;步骤S1.2:文件服务器判断是否存在标准接口配置;若是,则加载并提供外部接口;步骤S1.3:判断是否存在用户模板配置;若是,则加载并提供外部接口;步骤S1.4:初始化语言服务器;步骤S1.5:语言服务器IO重定向;步骤S1.6:循环等待资源服务器请求;步骤S1.7:判断是否主动关闭;若否,则返回上一步骤。4.根据权利要求3所述的基于LSP的智能代码编辑器的设计方法,其特征在于,所述服务器请求处理包括:静态资源服务请求、文件操作服务请求与语言服务请求;按照协议划分为HTTP请求与Websocket请求。5.根据权利要求4所述的基于LSP的智能代码编辑器的设计方法,其特征在于,接收所述HTTP请求,所述HTTP请求中包括静态资源服务和文件操作服务;若为静态资源服务,则判断是否存在缓存;若否,则加载磁盘资源,返回所需静态资源;若是,则直接读取缓存,返回所需静态资源;若为文件操作服务,则判断是否有相关权限;若是,则执行对应操作并返回操作结果,若否,则返回错误信息。6.根据权利要求4所述的基于LSP的智能代码编辑器的设计方法,其特征在于,接收用户代码编辑操作对应的Websocket请求,则进行语言服务;所述语言服务器解析用户请求,并将Websocket请求转至语言服务器,获取语言服务器的响应,利用JSON

PRC封装返回响应。
7.根据权利要求1所述的基于LSP的智能代码编辑器的设计方法,其特征在于,所述静态资源服务提供智能编辑器页面显示所需要的资源,其中,智能编辑器页面的加载流程包括:加载界面资源、接口模板、用户模板以及当前文件;加载...

【专利技术属性】
技术研发人员:沈泽凯陈昊钦黄知柏
申请(专利权)人:华东计算技术研究所中国电子科技集团公司第三十二研究所
类型:发明
国别省市:

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

1