diff --git a/nvim/lua/user/extras.lua b/nvim/lua/user/extras.lua index 8a55452..aea3264 100644 --- a/nvim/lua/user/extras.lua +++ b/nvim/lua/user/extras.lua @@ -10,13 +10,13 @@ if user.formatter == nil then user.formatter = [[mfgggqG`f=zz]] end -vim.api.nvim_create_user_command('Format', function() +vim.api.nvim_create_user_command('Format', function(args) if type(user.formatter) == "string" then local cmd = vim.api.nvim_replace_termcodes(user.formatter, true, false, true) vim.api.nvim_feedkeys(cmd, 'n', false) elseif type(user.formatter) == "function" then - user.formatter() + user.formatter(args) else vim.api.nvim_err_writeln("No formatter found") end -end, {}) +end, { range = true }) diff --git a/nvim/lua/user/plugins/editor.lua b/nvim/lua/user/plugins/editor.lua index 9127aa6..2a437de 100644 --- a/nvim/lua/user/plugins/editor.lua +++ b/nvim/lua/user/plugins/editor.lua @@ -105,7 +105,17 @@ return { }, init = function() vim.o.formatexpr = "v:lua.require'conform'.formatexpr()" - user.formatter = ":lua require'conform'.format({ async = true }):" + user.formatter = function (args) + local range = nil + if args.count ~= -1 then + local end_line = vim.api.nvim_buf_get_lines(0, args.line2 - 1, args.line2, true)[1] + range = { + start = { args.line1, 0 }, + ["end"] = { args.line2, end_line:len() }, + } + end + require("conform").format({ async = true, range = range }) + end end }, { import = "user.plugins.editor.fuzzyfinder" },