Eclipse Orion包含两个部分:在服务器端和浏览器中运行的客户端。
Orion服务器有两个单独的实现,其中一个是用Java编写,另一个是用Node.js编写。针对语言服务器协议(LSP),我们选择使用了Node.js服务器。
Orion中的LSP集成着重在Orion编辑器中获得对Java语言的支持。众所周知,Eclipse平台的JDT插件提供了丰富的功能,使Java开发者能够把Eclipse作为一个Java IDE来使用。JDT是一套插件集合,不仅为Eclipse平台提供了Java编译器、调试器,而且还提供了许多Java特定的用户界面元素,支持Java应用的开发,提供重整、增量编译和只能编辑等支持。
如何开始
首先执行以下步骤来获取最新的Orion LSP代码:
使用Docker
orion.client / modules / orionnode /中有一个docker文件,可以用于创建Docker映像,其中包含Eclipse jdt.ls的最新版本以及lsp支持的最新Orion node.js。
构建映像运行:.
构建完成,可以启动映像:docker run -p 8083:8083 orionlsp
通过打开浏览器连接到http://localhost:8083/。
然后检查Orion服务器和Orion客户端的更改,以便支持Orion编辑器中的Java语言。
选择架构
在开始之前,我们要搞清楚Orion是如何与与语言服务器进行交互的。
LSP服务器和Node.js服务器现在在同一台机器上运行。LSP服务器本地安装在Node.js服务器中名为'server'的文件夹内。这样做的目的是让每个Node.js服务器运行一个LSP服务器。目前,两台Orion服务器之间无法共享LSP服务器。
Orion服务器
在Orion服务器端,无法使语言服务器通信进行。我们定义了一个在服务器代码中注册的扩展名(请参阅中的第100行)。该扩展开始侦听用于启动和初始化LSP服务器的命名套接字。
Orion客户端
语言服务器协议定义了很多,并且可以向LSP服务器发出请求,例如文档生命周期,代码格式化,hover事件,搜索引用,代码补全等等。
目前Orion支持其中的大多数,一旦服务器在工作空间内启动和初始化,用户就可以格式化代码,获取问题和警告,搜索引用,获取Javadoc hover,获取错误警告等。
因为现在不支持代码操作,所以在Orion编辑器中没有可用于报告的错误和警告的快速修复。
使用Orion插件完成编辑器集成。该插件定义了用于启动语言服务器的命名套接字。该插件注册之后,为使用以下内容类型的文件进行初始化:“text / x-java-source”或“application / x-jsp”。这两种文件在Orion插件中注册之后,扩展名为“.java”和“.jsp”。因此,当插件启动和初始化时,它将触发命名套接字的连接并发送'start'事件。然后初始化LSP服务器,并且让两个套接字用于LSP服务器和Orion客户端之间的双向通信。Orion插件也用于通过使用Orion stylers来注册Java语言的语法高亮。
其中mJava和mJSP被定义为:
Orion编辑器的每个功能都已经被更新了,以检查LSP服务器是否已注册并需要处理。
例如,对于格式化程序,在调用的文件中org.ecli,我们检查是否存在为当前文件内容类型注册的LSP服务器。为此,我们将所有LSP服务器注册到一个注册表中,然后加速查找基于特定内容类型的LSP服务器。如果我们找到一个,从协议调用相应的处理程序来使用它。在这种情况下,它是执行文档格式化请求或者文档范围格式化请求,要取决于编辑器中的当前选择。
我们可以这样做:
我们使用同样的原理来实现所有可以利用LSP服务器特性的Orion编辑器特性(事件、搜索引用等)。
未来方向
我们还需要添加LSP中定义的代码操作请求的支持,以便能够在Orion编辑器中添加快速修复。
现在,LSP服务器在Maven和Gradle项目中运行正常。 这是一个快速发展的领域,我们相信未来会有更多的项目可以适用。就像通用Eclipse编辑器一样,不仅可以支持Java,还可以支持其它语言。
运行界面:
1.文章《lsp是什么文件——lsp文件怎么打开!》援引自互联网,为网友投稿收集整理,仅供学习和研究使用,内容仅代表作者本人观点,与本网站无关,侵删请点击页脚联系方式。
2.文章《lsp是什么文件——lsp文件怎么打开!》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
相关推荐
- . 现代买票为什么带上携程保险
- . 潮阳怎么去广州南站
- . 湖南马拉河怎么样
- . 烧纸为什么到三岔路口
- . 百色为什么这么热
- . 神州租车怎么样
- . 芜湖方特哪个适合儿童
- . 护肤品保养液是什么类目
- . 早晚的护肤保养有哪些项目
- . 女孩护肤品怎么保养的最好