这是对实时流录制内容的可搜索描述,特别是"Hands-on SAP dev with qmacro"系列中的"第7集–深入了解语言服务器协议、cds lsp和Vim"。视频录制中有直接指向特定亮点的链接。有关其他剧集注释的链接,请参阅该系列博客文章的"捕捉重播"部分。
这一集名为"挖掘语言服务器协议、cds lsp和Vim",于2019年2月27日(星期三)直播,长度约为一小时。YouTube上提供了视频流录制。
下面是一个简短的概要,以及指向特定亮点的链接-使用这些链接可以直接跳到录制中的特定感兴趣的地方,基于"hh:mm:ss"样式的时间戳。
简要概述
我们在上一集中简要介绍的内容之一是在VS代码扩展中针对CDS语言的语言服务器协议(LSP)实现。在本周中,我们将探讨如何让Vim LSP客户端工作并连接到cds LSP服务器。
链接到特定的亮点
00:00:22:与常规的星期五时段相比,讨论偶尔的周中时段。记住–周五是常规时段,我们有时也会在周中安排其他时段。
00:03:08:显示我为直播剧集保留的谷歌日历,您可以订阅该日历并获得即将播出的剧集的通知。更多信息请点击此处:即将推出。
00:04:05:从SAP Development Tools页开始,查看"CDS Language Support for Visual Studio Code"扩展提供的详细信息。
00:04:50:查看扩展下载,重命名文件,大数据工具,将扩展名vsix更改为tgz,因为扩展名文件实际上是gzip tarball。现在我们可以把它放在一个临时文件夹里四处看看。
00:06:00:我们看到有两个节点.js@sap名称空间中的模块–cds编译器和cds lsp.
00:06:40:注意VSIX扩展中这两个模块的版本与最近发布的@sap/cds版本中的版本之间的差异以前。
00:07:50:启动VS代码检查已安装的扩展,包括快速查看变更日志。
00:08:45:注意,为了本集的目的,我使用了@sap/cds lsp模块的稍新版本,因为我们需要一个略高于1.0.36版本的1.4.24版本。扩展即将更新(在直播时)cds编译器和cds lsp模块的新版本。
00:09:42:检查扩展提供的详细信息,看看我们应该寻找什么样的语言服务器功能(注意语法突出显示不是来自cds lsp包,但是从扩展名中的语法文件,云服务器试用,看一看"关联到多个"的配置片段。
00:12:15:看一看语言服务器协议主页,了解它是什么和做什么。
00:13:34:快速看一看当我们在Vim中用语言服务器通过语言服务器协议(lsp)从@sap/cds lsp通过一个非常简单的CAP项目服务.cds以及型号.cds文件:突出显示错误,转到定义,查找引用(并跳转到那些引用)。
00:18:00:查看我的.vim文件夹,注意到我们在第1集中看到的包,包括"languageclient"和"fzf",立返利,它是"languageclient"包的依赖项。
00:19:00:我们用于Vim的语言客户端是languageclient neovim,它也与常规Vim(以及neovim)一起工作。我们查看客户机支持的功能列表、快速入门指南和一些安装文档(我已经安装了这个和"fzf"。
00:20:20:正在加载型号.cds在Vim中,大数据前景怎么样,注意到它最初看起来很无聊,没有语法突出显示或任何错误通知。
00:21:00:开始修改我们的Vim配置,将语言客户端连接到基于@sap/cds lsp的语言服务器,并查看服务器包内部以找到服务器.js入口点
00:23:00:简单启动节点输出/src/服务器.js什么都不做,但是提供--stdio选项会导致语言服务器开始侦听。
00:23:30:与我的邻居快速聊天,我的车暂时停在他的车上。哎呀!
00:24:00:了解如何从客户端调用语言服务器,方法是查看语言客户端安装指南"配置此插件"部分的示例配置。
00:25:50:转到语言客户端包目录(./vim/bundle/languageclient),我已经解包了@sap/cds lsp包(注意,我有旧的1.4.24版本以及我们将要使用的更新的2.0.1版本)。
00:26:50:打开我的Vim config文件(in.vimrc)并添加一些初始配置:
00:31:09:在同一目录中创建startcdslsp,看起来像这样:
这是我们需要启动语言服务器,以便语言客户端可以连接到它并开始使用它的服务。
00:32:25:讨论从Docker容器打开VS代码以编辑其中的文件的问题。
00:33:25:我们在这一集中看到的所有配置都在我的dotvim中存储库。
00:34:15:打开Vim中的simple CAP项目,看看现在发生了什么,我们已经准备好了这个基本配置。会发生什么事吗?对!我们看到一条来自语言客户端包的消息:
"[LC]Project root:/Users/i347491/local/projects/livestream/capm/lsp"
仅此而已。我恢复了我保存的配置,因为我怀疑我输入了错误的东西,然后我们得到了错误突出显示!