重构 lua table - neovim 配置
Refactor lua table - neovim configuration
大家好,提前感谢您的意见。 formatter插件配置我使用lua,下面的代码是我目前的配置。
require('formatter').setup({
filetype = {
javascript = {
-- prettier
function()
return {
exe = "prettier",
args = {"--stdin-filepath", vim.fn.fnameescape(vim.api.nvim_buf_get_name(0)), '--single-quote'},
stdin = true
}
end
},
typescriptreact = {
-- prettier
function()
return {
exe = "prettier",
args = {"--stdin-filepath", vim.fn.fnameescape(vim.api.nvim_buf_get_name(0)), '--single-quote'},
stdin = true
}
end
},
javascriptreact = {
-- prettier
function()
return {
exe = "prettier",
args = {"--stdin-filepath", vim.fn.fnameescape(vim.api.nvim_buf_get_name(0)), '--single-quote'},
stdin = true
}
end
},
html = {
-- prettier
function()
return {
exe = "prettier",
args = {"--stdin-filepath", vim.fn.fnameescape(vim.api.nvim_buf_get_name(0)), '--single-quote'},
stdin = true
}
end
},
css = {
-- prettier
function()
return {
exe = "prettier",
args = {"--stdin-filepath", vim.fn.fnameescape(vim.api.nvim_buf_get_name(0)), '--single-quote'},
stdin = true
}
end
},
json = {
-- prettier
function()
return {
exe = "prettier",
args = {"--stdin-filepath", vim.fn.fnameescape(vim.api.nvim_buf_get_name(0)), '--single-quote'},
stdin = true
}
end
},
php = {
-- prettier
function()
return {
exe = "prettier",
args = {"--stdin-filepath", vim.fn.fnameescape(vim.api.nvim_buf_get_name(0)), '--single-quote'},
stdin = true
}
end
},
vue = {
-- prettier
function()
return {
exe = "prettier",
args = {"--stdin-filepath", vim.fn.fnameescape(vim.api.nvim_buf_get_name(0)), '--single-quote'},
stdin = true
}
end
},
svelte = {
-- prettier
function()
return {
exe = "prettier",
args = {"--stdin-filepath", vim.fn.fnameescape(vim.api.nvim_buf_get_name(0)), '--single-quote'},
stdin = true
}
end
},
}
})
您会注意到 table 中的函数重复了很多次,要重构此代码,请尝试以下操作:
function config()
return {
exe = "prettier",
args = {"--stdin-filepath", vim.fn.fnameescape(vim.api.nvim_buf_get_name(0)), '--single-quote'},
stdin = true
}
end
require('formatter').setup({
filetype = {
javascript = {
-- prettier
config()
},
}
})
但是,该代码给了我一个错误,我是 lua 的新手。感谢您帮助重构此代码。
似乎每种语言的第一个元素 table 应该是一个函数(或可调用的东西),而不是调用此函数的 table returns.
require('formatter').setup({
filetype = {
javascript = { config },
}
})
大家好,提前感谢您的意见。 formatter插件配置我使用lua,下面的代码是我目前的配置。
require('formatter').setup({
filetype = {
javascript = {
-- prettier
function()
return {
exe = "prettier",
args = {"--stdin-filepath", vim.fn.fnameescape(vim.api.nvim_buf_get_name(0)), '--single-quote'},
stdin = true
}
end
},
typescriptreact = {
-- prettier
function()
return {
exe = "prettier",
args = {"--stdin-filepath", vim.fn.fnameescape(vim.api.nvim_buf_get_name(0)), '--single-quote'},
stdin = true
}
end
},
javascriptreact = {
-- prettier
function()
return {
exe = "prettier",
args = {"--stdin-filepath", vim.fn.fnameescape(vim.api.nvim_buf_get_name(0)), '--single-quote'},
stdin = true
}
end
},
html = {
-- prettier
function()
return {
exe = "prettier",
args = {"--stdin-filepath", vim.fn.fnameescape(vim.api.nvim_buf_get_name(0)), '--single-quote'},
stdin = true
}
end
},
css = {
-- prettier
function()
return {
exe = "prettier",
args = {"--stdin-filepath", vim.fn.fnameescape(vim.api.nvim_buf_get_name(0)), '--single-quote'},
stdin = true
}
end
},
json = {
-- prettier
function()
return {
exe = "prettier",
args = {"--stdin-filepath", vim.fn.fnameescape(vim.api.nvim_buf_get_name(0)), '--single-quote'},
stdin = true
}
end
},
php = {
-- prettier
function()
return {
exe = "prettier",
args = {"--stdin-filepath", vim.fn.fnameescape(vim.api.nvim_buf_get_name(0)), '--single-quote'},
stdin = true
}
end
},
vue = {
-- prettier
function()
return {
exe = "prettier",
args = {"--stdin-filepath", vim.fn.fnameescape(vim.api.nvim_buf_get_name(0)), '--single-quote'},
stdin = true
}
end
},
svelte = {
-- prettier
function()
return {
exe = "prettier",
args = {"--stdin-filepath", vim.fn.fnameescape(vim.api.nvim_buf_get_name(0)), '--single-quote'},
stdin = true
}
end
},
}
})
您会注意到 table 中的函数重复了很多次,要重构此代码,请尝试以下操作:
function config()
return {
exe = "prettier",
args = {"--stdin-filepath", vim.fn.fnameescape(vim.api.nvim_buf_get_name(0)), '--single-quote'},
stdin = true
}
end
require('formatter').setup({
filetype = {
javascript = {
-- prettier
config()
},
}
})
但是,该代码给了我一个错误,我是 lua 的新手。感谢您帮助重构此代码。
似乎每种语言的第一个元素 table 应该是一个函数(或可调用的东西),而不是调用此函数的 table returns.
require('formatter').setup({
filetype = {
javascript = { config },
}
})