我默认使用lazyvim,结果发现gohtml不被识别为html,我最终创建了一个filetype.lua文件并将.gohtml设置为.html
这种情况下LSP是通过:LspInfo来识别的
但是保存的时候,甚至出现null-ls正在格式化,但其实并没有格式化。
我已经研究了几天,但还无法让它工作,如果我将其更改为 .html,它会格式化它,但这很痛苦。
这是 filetype.lua 文件的示例:
local ft = vim.api.nvim_create_augroup('filetype_gohtml', { clear = true })
vim.api.nvim_create_autocmd('filetype', { group = ft, pattern = '.gohtml', callback = function()
vim.bo.filetype = 'html'
end })
创建 filetype.lua 文件后,需要将其加载到 Vim 中。您可以通过将以下行添加到 vimrc 文件来完成此操作:
lua require('gohtml-filetype')
加载 filetype.lua 文件后,您应该能够使用 :LspInfo 来查看 LSP 将 .gohtml 文件识别为 HTML。但是,保存文件时您可能仍然会遇到格式问题。
这是因为 null-ls 格式化程序无法在没有额外配置的情况下自动格式化 .gohtml 文件。要解决此问题,您需要手动配置 null-ls 以对 .gohtml 文件使用适当的格式化程序。
以下是如何配置 null-ls 以对 .gohtml 文件使用 prettier 格式化程序的示例:
-- Enable null-ls
lua require('null-ls').setup({
sources = {
{
name = 'prettier',
command = 'prettier',
filetypes = { 'html' },
},
},
})
通过此配置,null-ls 应该能够在保存 .gohtml 文件时自动格式化它们。