aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNuno David <74260683+ndavd@users.noreply.github.com>2024-01-08 23:44:12 +0000
committerGitHub <noreply@github.com>2024-01-08 15:44:12 -0800
commit47ceff644e9d00872f410be374cc973eefa20ba9 (patch)
tree93ab57d185e343d45745b7a03d8ee48040b2ae7e
parent0e61fc88f725b4411e63b43470a397c6102534c7 (diff)
feat(formatexpr): don't require LSP range formatting if operating on whole file (#272)
solves: https://github.com/stevearc/conform.nvim/issues/271
-rw-r--r--lua/conform/init.lua15
1 files changed, 11 insertions, 4 deletions
diff --git a/lua/conform/init.lua b/lua/conform/init.lua
index f6ffe38..35ffb6e 100644
--- a/lua/conform/init.lua
+++ b/lua/conform/init.lua
@@ -721,10 +721,17 @@ M.formatexpr = function(opts)
end
local end_line = vim.fn.getline(end_lnum)
local end_col = end_line:len()
- opts.range = {
- start = { start_lnum, 0 },
- ["end"] = { end_lnum, end_col },
- }
+
+ if vim.v.count == vim.fn.line("$") then
+ -- Whole buffer is selected; use buffer formatting
+ opts.range = nil
+ else
+ opts.range = {
+ start = { start_lnum, 0 },
+ ["end"] = { end_lnum, end_col },
+ }
+ end
+
if M.format(opts) then
return 0
elseif opts.lsp_fallback and not vim.tbl_isempty(lsp_format.get_format_clients(opts)) then