feat(cfg): add prettierd formatting on save
parent
e1eb599844
commit
b5e14de307
@ -0,0 +1,43 @@
|
||||
return {
|
||||
'jose-elias-alvarez/null-ls.nvim',
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim",
|
||||
},
|
||||
|
||||
config = function()
|
||||
|
||||
local null_ls = require("null-ls")
|
||||
|
||||
local group = vim.api.nvim_create_augroup("lsp_format_on_save", { clear = false })
|
||||
local event = "BufWritePre" -- or "BufWritePost"
|
||||
local async = event == "BufWritePost"
|
||||
|
||||
null_ls.setup({
|
||||
on_attach = function(client, bufnr)
|
||||
if client.supports_method("textDocument/formatting") then
|
||||
vim.keymap.set("n", "<Leader>f", function()
|
||||
vim.lsp.buf.format({ bufnr = vim.api.nvim_get_current_buf() })
|
||||
end, { buffer = bufnr, desc = "[lsp] format" })
|
||||
|
||||
-- format on save
|
||||
vim.api.nvim_clear_autocmds({ buffer = bufnr, group = group })
|
||||
vim.api.nvim_create_autocmd(event, {
|
||||
buffer = bufnr,
|
||||
group = group,
|
||||
callback = function()
|
||||
vim.lsp.buf.format({ bufnr = bufnr, async = async })
|
||||
end,
|
||||
desc = "[lsp] format on save",
|
||||
})
|
||||
end
|
||||
|
||||
if client.supports_method("textDocument/rangeFormatting") then
|
||||
vim.keymap.set("x", "<Leader>f", function()
|
||||
vim.lsp.buf.format({ bufnr = vim.api.nvim_get_current_buf() })
|
||||
end, { buffer = bufnr, desc = "[lsp] format" })
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
end,
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
return {
|
||||
'MunifTanjim/prettier.nvim',
|
||||
|
||||
config = function()
|
||||
|
||||
local prettier = require("prettier")
|
||||
|
||||
prettier.setup({
|
||||
bin = 'prettier', -- or `'prettierd'` (v0.23.3+)
|
||||
filetypes = {
|
||||
"css",
|
||||
"graphql",
|
||||
"html",
|
||||
"javascript",
|
||||
"javascriptreact",
|
||||
"json",
|
||||
"less",
|
||||
"markdown",
|
||||
"scss",
|
||||
"typescript",
|
||||
"typescriptreact",
|
||||
"yaml",
|
||||
},
|
||||
})
|
||||
|
||||
prettier.setup({
|
||||
["null-ls"] = {
|
||||
condition = function()
|
||||
return prettier.config_exists({
|
||||
-- if `false`, skips checking `package.json` for `"prettier"` key
|
||||
check_package_json = true,
|
||||
})
|
||||
end,
|
||||
runtime_condition = function(params)
|
||||
-- return false to skip running prettier
|
||||
return true
|
||||
end,
|
||||
timeout = 5000,
|
||||
}
|
||||
})
|
||||
|
||||
end,
|
||||
}
|
Loading…
Reference in New Issue