mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-01-23 10:30:05 +08:00
refactor(format): enable format function
This commit is contained in:
parent
5b3b5886d4
commit
a7fbe2415b
@ -24,11 +24,19 @@ function M.format(bang, user_input, start_line, end_line)
|
||||
end
|
||||
|
||||
if not formatter then
|
||||
ok, formatter = pcall(require, 'format.ft.' .. filetype)
|
||||
ok = pcall(function()
|
||||
local default = require('format.ft.' .. filetype)
|
||||
local formatname = default.enabled()[1]
|
||||
formatter = default[formatname]({
|
||||
filepath = vim.fn.expand('%:p'),
|
||||
start_line = start_line,
|
||||
end_line = end_line,
|
||||
})
|
||||
util.info('using default formatter:' .. formatname)
|
||||
end)
|
||||
if not ok then
|
||||
return util.msg('no formatter for ' .. filetype)
|
||||
end
|
||||
util.info('using default formatter:' .. formatter.exe)
|
||||
end
|
||||
|
||||
task.run({
|
||||
|
15
bundle/format.nvim/lua/format/ft/json.lua
Normal file
15
bundle/format.nvim/lua/format/ft/json.lua
Normal file
@ -0,0 +1,15 @@
|
||||
local M = {}
|
||||
|
||||
function M.enabled()
|
||||
return {'prettier'}
|
||||
end
|
||||
|
||||
function M.prettier(opt)
|
||||
return {
|
||||
exe = 'prettier',
|
||||
args = {'--stdin-filepath', opt.filepath},
|
||||
stdin = true,
|
||||
}
|
||||
end
|
||||
|
||||
return M
|
@ -1,5 +1,15 @@
|
||||
return {
|
||||
exe = 'stylua',
|
||||
args = {'-'},
|
||||
stdin = true
|
||||
}
|
||||
local M = {}
|
||||
|
||||
function M.enabled()
|
||||
return { 'stylua' }
|
||||
end
|
||||
|
||||
function M.stylua(opt)
|
||||
return {
|
||||
exe = 'stylua',
|
||||
args = { '-' },
|
||||
stdin = true,
|
||||
}
|
||||
end
|
||||
|
||||
return M
|
||||
|
@ -1,8 +1,16 @@
|
||||
if vim.fn.executable('prettier') == 1 then
|
||||
local M = {}
|
||||
|
||||
function M.enabled()
|
||||
return { 'prettier' }
|
||||
end
|
||||
|
||||
function M.prettier(opt)
|
||||
return {
|
||||
exe = vim.fn.exepath('prettier'),
|
||||
name = 'prettier',
|
||||
args = {'--stdin-filepath', 't.md'},
|
||||
args = {'--stdin-filepath', opt.filepath},
|
||||
stdin = true
|
||||
}
|
||||
end
|
||||
|
||||
return M
|
||||
|
@ -4,5 +4,16 @@ end, {
|
||||
nargs = '*',
|
||||
range = '%',
|
||||
bang = true,
|
||||
bar = true
|
||||
bar = true,
|
||||
complete = function(_, line)
|
||||
local ft = vim.o.filetype
|
||||
local l = vim.split(line, '%s+')
|
||||
local ok, default = pcall(require, 'format.ft.' .. ft)
|
||||
if ok then
|
||||
return vim.tbl_filter(function(val)
|
||||
return vim.startswith(val, l[#l])
|
||||
end, default.enabled())
|
||||
else
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
Loading…
Reference in New Issue
Block a user