【技术实现步骤摘要】
基于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的客户端技术,复杂环境 ...
【技术保护点】
【技术特征摘要】
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的智能代码编辑器的设计方法,其特征在于,所述静态资源服务提供智能编辑器页面显示所需要的资源,其中,智能编辑器页面的加载流程包括:加载界面资源、接口模板、用户模板以及当前文件;加载...
【专利技术属性】
技术研发人员:沈泽凯,陈昊钦,黄知柏,
申请(专利权)人:华东计算技术研究所中国电子科技集团公司第三十二研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。