您的位置: 游戏资讯 > 手游攻略


Warning: array_search() expects parameter 2 to be array, boolean given in /home/ww

来源:头条 浏览:0 2023-02-01 11:36:58

到上一篇文章为止,我们配置了neovim的很多内容。 具备一些编辑器的常规功能,可以胜任日常的文档编辑工作。 但是,作为信任的代码编辑器,缺少对代码语法部分的支持这一重要环节。 过去的vim配置基于名为you-complete-me的插件配置。 但是,对既不懂c语言也不懂vim的白来说是一场灾难。 各种兼容问题、错误频繁发生,效果不如visual studio code等编辑器好。 可能是我的时候比较过菜,当初针对python配置的补充效果一般只能补充内置函数,自己定义的类和方法不能补充,在跳的时候有好有坏。 在那之后,我放弃了vim很久。 好在微软提供了lsp这个大杀器,大大提高了vim、emacs这样的编辑器的代码编辑体验。 而且配置比较简单。

lsp配置文件传统编辑器包括代码高亮、语法分析和跳转等功能,因此所有编辑器都有自己的查看、跳转等计划。 第三方编辑器几乎不可能达到完全相同的效果。 但微软提出的语言服务协议( LSP )确实改变了这一格局。 lsp最重要的是将语言的核心功能(如语法分析、跳转和自动完成)与最终的呈现效果分开。 这意味着服务器端主要提供语法分析、补充和跳转的核心功能,而客户端则调用并展示服务器端提供的这些功能,或者通过快捷键或其他用户界面供用户使用此外,语言服务作为进程单独运行,不影响客户端执行。 它们之间以本地网络的形式进行信息交换

<br />
<b>Warning</b>:  array_search() expects parameter 2 to be array, boolean given in <b>/home/wwwroot/default/aititle/title.php</b> on line <b>179</b><br />
从零开始配置vim(21)——lsp简介与treesitter 配置

用户用工具打开的文件。 此工具通知语言服务器文档已打开。 “‘文本文档/文档打开’”。 从现在起,文档内容不再位于文件系统上,而是保存在编辑器打开的内容中,供用户进行编辑。 此工具会通知服务器文档更改(“文本文档/did change”),并使用语言服务器更新程序语义信息。 如果出现这种情况,语言服务器将分析此信息并向工具( text document/publish diagnostics ) )通知检测到的错误和警告。 此外,一些可用于补充的内容用户可能会对编辑器中的元件执行“转至定义”。 这个工具有两个参数)发送文本文档的服务器用文档的URI和符号定义文档中的位置来进行响应。 客户端收到回复后,根据服务器标记的位置进行跳转,用户关闭文档(文件)。 工具会发送“文本文档/did close”通知,通知语言服务器文档不再存在于内存中,并且当前内容已保存到文件系统。 我简单介绍了一个名为treesitter配置neovim-treesitter的插件,它可以用于突出显示代码。 使用lsp协议实现,比单纯使用正则表达式具有更好的呈现效果。 那么,体验lsp效果的第一步就是将其配置吧。 因为treesitter想工作,所以需要根据语言下载支持语言的语法分析模块。 可以使用: TSInstallInfo查看当前安装了哪些分析模块。 发现没有安装模块。 在基于当前配置文件的项目中,首先体验一下lua的效果。 我们可以使用: TSInstall命令下载指定语言的模块。 在此,您将使用TSInstall lua下载lua模块。 然后,可以使用TSUpdate lua更新模块。 和packer很相似。 TSUpdate既可用于下载也可用于更新。 这意味着单个命令完成安装后,可以使用TSBufToggle highlight并使用treesitter将其选中

如果我们每次都需要手动调用命令来高亮显示,那就太不聪明了。 可以将配置文件设置为自动加载语法加亮。

require ( nvim-tree sitter.configs ) ).setup支持的语言ensure_installed={&amp; #039; html&amp; #039;&amp; #039; css&amp; #039;&amp; #039; vim&amp; #039;&amp; #039; lua&amp; #039; )。 &amp; #039; python&amp; #039; }&amp; #039;--启用代码高亮显示。 highlight={ enable=true,additional _ vim _ regex _ highlighting=false },--启用增量选项的keymaps={ init \ #039;node_incremental=&amp; #039;node_decremental=&amp; #039;scope_incremental=&amp; #039; &amp; #039; },启用基于Treesitter的代码格式(=) indent={ enable=true },}--代码折叠vim.wo.foldmethod=&amp; #039; expr&amp; #039; vim.wo.foldexpr=&amp; #039; nvim_treesitter#foldexpr( &amp; #039; --缺省情况下,vim.wo.foldlevel=99不折叠。 这些配置ensure_installed指示需要支持的语言。 如果设置了某些语言,则会在启动后自动调用。 TSUpdate下载并更新相应语言的server部分。 下载相应的语言模块后,发现代码的着色功能完成得很好。 增量选择器选择一次可以选择块的代码,然后依次放大或缩小选定的语言块。 使用回车启动和放大增量选择,使用后台空间减少增量选择的代码块。 合作伙伴可以根据自己的习惯定义快捷键

也可以使用=设置代码格式。 为了便于我们定义自动命令,每次执行: w写入前自动格式化代码

local auto _ indent=vim.API.nvim _ create _ augroup ( auto _ indent ),{clear=true} ) vim.API.nvim_creaate #039; } )这里事先使用gg改变了光标位置,格式化后使用``返回上次跳转前的位置。

最后,可以使用zc和zo折叠和展开代码。 但是,我自己很少用。 需要调查文件中的符号,例如函数、变量。 我可以用其他插件解决。 如果要做区块的跳转代码的话,我喜欢用%。

现在,我们已经体验了基于lsp实现的treesitter功能,下面将介绍lsp支持几种语言,敬请期待

你是上帝模拟器(You Are God)「v1.2」手机版下载

你是上帝模拟器(You Are God)「v1.2」手机版下载

  • 分类:网络游戏
  • 大小:39.29MB
  • 语言:简体中文
  • 版本:v1.2