vim-dadbod-ui 树管理员配置

问题描述 投票:0回答:1

我想知道是否有一种方法可以在 vim-dadbod-ui 中进行查询时激活 sql tree-sitter。目前我只得到不同的关键字颜色,但它与打开实际的 .sql 文件时得到的结果仍然有很大不同,如果有人知道与此主题相关的内容,请告诉我。

我尝试阅读文档,但没有任何相关内容可以帮助我。

sql lua neovim treesitter
1个回答
0
投票

我以前没有使用过

vim-dadbod-ui
,但我也有过类似的用例。 Treesitter 通过根据文件类型附加解析器来进行操作(根据我的理解)。要将 SQL 解析(和突出显示)应用于这些文件,您需要明确通知 Treesitter 来执行此操作。

先用最简单的方法

  1. 在缓冲区打开并聚焦的情况下执行
    :echo &filetype
    来确认文件类型。
  2. 假设它返回一个值,我们将其表示为
    <vim-dadbod-ui-query-filetype>
    如果没有,此方法将不起作用,请继续下一个)。
  3. 将以下行添加到您的脚本中:
vim.treesitter.language.register("sql", "<vim-dadbod-ui-query-filetype>")

Neovim 应该将其视为 SQL

如果前面的方法不起作用,则意味着您没有与这些文件关联的文件类型。因此,您必须显式为其分配 SQL 文件类型。为此,我们使用

vim.filetype.add()
告诉 Neovim 此类文件的文件类型。假设它是一个始终包含
-query-
字段且缺少扩展的模式(基本上是
.
之后的
-query-
),并且我们希望 Neovim(和 Treesitter)将其视为
SQL

vim.filetype.add({
    pattern = { [".*-query-[^%.]*"] = "sql" },
})

注意: 此方法还会激活任何旨在与 SQL 配合使用的插件,例如在 Neovim 配置中指定的格式化程序和/或 linter。

只有 Tree-sitter 才应将其视为 SQL

如果您不想这样做,则必须为此类文件分配自定义文件类型,并告诉 Treesitter 使用

SQL
解析器来解析这些文件。

vim.filetype.add({
    pattern = { [".*-query-[^%.]*"] = "dadbod-sql-custom" },
})
vim.treesitter.language.register("dadbod-sql-custom", "<filetype>")

共享模式应与屏幕截图中的文件名匹配,但您可能需要对其进行调整以满足您的确切需求。此外,还存在各种其他方法来指定如何应用文件类型。其中之一可能更适合您的需求。

© www.soinside.com 2019 - 2024. All rights reserved.