mirror of https://github.com/LazyVim/starter
74 lines
2.7 KiB
Lua
74 lines
2.7 KiB
Lua
vim.api.nvim_create_autocmd("BufWritePre", {
|
|
pattern = "*",
|
|
callback = function()
|
|
vim.lsp.buf.format({ async = false })
|
|
end,
|
|
})
|
|
|
|
return {
|
|
{
|
|
"stevearc/conform.nvim",
|
|
opts = {
|
|
formatters_by_ft = {
|
|
nix = { "nixfmt" },
|
|
lua = { "stylua" },
|
|
javascript = { { "prettierd" } },
|
|
javascriptreact = { { "prettierd" } },
|
|
typescript = { { "prettierd" } },
|
|
typescriptreact = { { "prettierd" } },
|
|
json = { "prettierd" },
|
|
jsonc = { "prettierd" },
|
|
yaml = { "prettierd" },
|
|
markdown = { "prettierd" },
|
|
["markdown.mdx"] = { "prettierd" },
|
|
css = { "prettierd" },
|
|
scss = { "prettierd" },
|
|
html = { "prettierd" },
|
|
},
|
|
-- Configure formatters
|
|
formatters = {
|
|
eslint_d = {
|
|
-- Only run eslint if we find a config file in the project
|
|
condition = function(ctx)
|
|
return vim.fs.find({
|
|
".eslintrc.js",
|
|
".eslintrc.cjs",
|
|
".eslintrc.yaml",
|
|
".eslintrc.yml",
|
|
".eslintrc.json",
|
|
"eslint.config.js",
|
|
"package.json",
|
|
}, { path = ctx.filename, upward = true })[1] ~= nil
|
|
end,
|
|
},
|
|
nixfmt = {
|
|
command = "nixfmt",
|
|
args = {},
|
|
},
|
|
prettierd = {
|
|
-- This tells conform to only run prettier when it finds a config file
|
|
condition = function(ctx)
|
|
return vim.fs.find({
|
|
".prettierrc",
|
|
".prettierrc.js",
|
|
".prettierrc.json",
|
|
".prettierrc.yml",
|
|
".prettierrc.yaml",
|
|
".prettierrc.json5",
|
|
".prettierrc.cjs",
|
|
"prettier.config.js",
|
|
"prettier.config.cjs",
|
|
"prettier.config.mjs",
|
|
"package.json",
|
|
}, { path = ctx.filename, upward = true })[1] ~= nil
|
|
end,
|
|
},
|
|
stylua = {
|
|
command = "stylua",
|
|
args = { "--search-parent-directories", "--stdin-filepath", "$FILENAME", "-" },
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|