我想知道是否有一种方法可以在 vim-dadbod-ui 中进行查询时激活 sql tree-sitter。目前我只得到不同的关键字颜色,但它与打开实际的 .sql 文件时得到的结果仍然有很大不同,如果有人知道与此主题相关的内容,请告诉我。
我尝试阅读文档,但没有任何相关内容可以帮助我。
我以前没有使用过
vim-dadbod-ui
,但我也有过类似的用例。 Treesitter 通过根据文件类型附加解析器来进行操作(根据我的理解)。要将 SQL 解析(和突出显示)应用于这些文件,您需要明确通知 Treesitter 来执行此操作。
:echo &filetype
来确认文件类型。<vim-dadbod-ui-query-filetype>
(如果没有,此方法将不起作用,请继续下一个)。vim.treesitter.language.register("sql", "<vim-dadbod-ui-query-filetype>")
如果前面的方法不起作用,则意味着您没有与这些文件关联的文件类型。因此,您必须显式为其分配 SQL 文件类型。为此,我们使用
vim.filetype.add()
告诉 Neovim 此类文件的文件类型。假设它是一个始终包含 -query-
字段且缺少扩展的模式(基本上是 .
之后的 -query-
),并且我们希望 Neovim(和 Treesitter)将其视为 SQL
:
vim.filetype.add({
pattern = { [".*-query-[^%.]*"] = "sql" },
})
注意: 此方法还会激活任何旨在与 SQL 配合使用的插件,例如在 Neovim 配置中指定的格式化程序和/或 linter。
如果您不想这样做,则必须为此类文件分配自定义文件类型,并告诉 Treesitter 使用
SQL
解析器来解析这些文件。
vim.filetype.add({
pattern = { [".*-query-[^%.]*"] = "dadbod-sql-custom" },
})
vim.treesitter.language.register("dadbod-sql-custom", "<filetype>")
共享模式应与屏幕截图中的文件名匹配,但您可能需要对其进行调整以满足您的确切需求。此外,还存在各种其他方法来指定如何应用文件类型。其中之一可能更适合您的需求。