编程世界的编辑器就像编程语言一样,百花争放,百家争鸣,有的有着出色的速度,有的有着高冷的颜值,有的有着强大的功能性,有的则有着丰富的插件,然而对于开发人员来说,拥有者自动完成功能的编辑器才是开发者最喜爱的。
很久之前,每当出现一个编程语言,就需要各个编辑器来重新实现自动提示功能,这不仅浪费人力物力,最重要的是严重影响一门开发语言的普及,而LSP的出现改变了一切,通过定义一个统一的接口,现在人们只需要为一种语言编写一个自动完成服务器,然后各个编辑器实现自动完成客户端就可以,也就说一个自动完成服务器可以服务所有的编辑器,当前前提是你得实现人家定义的接口规范。
语言服务协议lsp的全称是language server protocol,它是红帽和微软等公司提出来的开源的语言服务器协定,可以让不同的编辑器实现自动补全,代码跳转,这样每个人都可以用自己喜爱的编辑器进行代码编辑,而这些在很早之前完全是不能够想象的事情。
有了语言服务器,编辑器可以像IDE一样可以自动跳转补全,这对于不喜欢IDE的人来说是让人值得兴奋的,而且目前,很多编辑器比如,vim,sublime,atom等都开始支持lsp了,未来当新发明一种语言的时候,也许官方都会给出这种语言的服务器。
CS模式LSP遵循的是client-server模式,就是需要一个语言服务器提供自动补全和跳转的功能,需要编辑器充当客户端对服务器进行接口请求,这种cs模型对于熟悉编程的人来说再熟悉不过了,因为我们平时不是在进行bs的开发就是在进行cs的开发。
未来
我们都知道规范的制定需要有人去遵守,而目前的现状是,很多编辑器都开始支持了LSP协议,毕竟没有人不喜欢自动补全,没有人不喜欢代码跳转,没有人不喜欢符号查询,LSP带来的好处太大了。
然而LSP的发展还任重道远,我们发现现在虽然有很多语言提供了LSP,但是这些大部分都是民间个人开发的,性能方面还有很多问题,如果有更多的大公司能够参与到这方面来,我相信LSP的未来会变得更加美好。
虽然使用统一的编辑器会让这些问题变得简单,但是这个世界不是非此即彼,正是因为存在各种各样的编辑器,存在各种各样的编程语言,存在各种各样的开发人员,这个世界才变得丰富多彩。
,