47 lines
1.2 KiB
Lua
47 lines
1.2 KiB
Lua
local Formatters = {}
|
|
|
|
Formatters.setup = function()
|
|
local formatter = require('formatter')
|
|
local util = require('formatter.util')
|
|
|
|
local js = {
|
|
function ()
|
|
return {
|
|
exe = "npx",
|
|
args = {"prettier", "--stdin-filepath", util.escape_path(util.get_current_buffer_file_name())},
|
|
stdin = true,
|
|
}
|
|
end
|
|
}
|
|
|
|
local ruby = {
|
|
function ()
|
|
return {
|
|
exe = "bundle",
|
|
args = {"exec", "rufo", "-x", "--filename", util.escape_path(util.get_current_buffer_file_name())},
|
|
stdin = true,
|
|
}
|
|
end
|
|
}
|
|
|
|
formatter.setup {
|
|
filetype = {
|
|
javascript = js,
|
|
typescript = js,
|
|
javascriptreact = js,
|
|
typescriptreact = js,
|
|
svelte = js,
|
|
ruby = ruby,
|
|
haml = ruby,
|
|
}
|
|
}
|
|
|
|
vim.api.nvim_create_autocmd("BufWritePost", {
|
|
pattern = { "*.js", "*.ts", "*.jsx", "*.tsx", "*.svelte", "*.rb", "*.haml", "Gemfile", "*.rake" },
|
|
command = "FormatWrite",
|
|
group = vim.api.nvim_create_augroup("FormatAutogroup", { clear = true }),
|
|
})
|
|
end
|
|
|
|
Formatters.setup()
|