Files
dotfiles/roles/nvim/files/lua/config/plugins/lsp/null-ls.lua
2026-03-28 05:45:35 +01:00

62 lines
1.3 KiB
Lua

return {
'nvimtools/none-ls.nvim',
dependencies = {
'nvimtools/none-ls-extras.nvim'
},
config = function()
local null_ls = require('null-ls')
local sources = {
null_ls.builtins.formatting.prettier.with({
filetypes = {
'javascript',
'javascriptreact',
'typescript',
'typescriptreact',
'css',
'html',
'json',
'markdown',
'yaml',
},
}),
-- null_ls.builtins.formatting.black,
-- null_ls.builtins.formatting.djlint,
null_ls.builtins.formatting.isort,
null_ls.builtins.formatting.stylua,
-- require('none-ls.diagnostics.eslint_d'),
}
null_ls.setup({
sources = sources,
})
local keymap = vim.keymap
local fmt_func = function()
local null_ls_active = false
for _, client in ipairs(vim.lsp.get_clients({ bufnr = 0 })) do
if client.name == "null-ls" then
null_ls_active = true
break
end
end
vim.lsp.buf.format({
async = true,
filter = function(client)
if null_ls_active then
return client.name == "null-ls"
end
return true
end,
})
end
keymap.set('n', '<leader>ii', fmt_func, { noremap = true, silent = true })
local wk = require('which-key')
wk.add({
{ '<leader>i', group = 'Formatting' },
{ '<leader>ii', desc = 'Format File' },
})
end,
}