aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/home/.config/nvim/lua/cfg/utils.lua
diff options
context:
space:
mode:
Diffstat (limited to 'home/.config/nvim/lua/cfg/utils.lua')
-rw-r--r--home/.config/nvim/lua/cfg/utils.lua21
1 files changed, 10 insertions, 11 deletions
diff --git a/home/.config/nvim/lua/cfg/utils.lua b/home/.config/nvim/lua/cfg/utils.lua
index abda35d..7cd172a 100644
--- a/home/.config/nvim/lua/cfg/utils.lua
+++ b/home/.config/nvim/lua/cfg/utils.lua
@@ -1,22 +1,21 @@
local M = {}
local gitsigns = require("gitsigns")
+local conform = require("conform")
function M.format_hunks(options)
- local hunks = require("gitsigns").get_hunks()
+ local hunks = gitsigns.get_hunks()
if not hunks or vim.tbl_isempty(hunks) then
return
end
for _, hunk in ipairs(hunks) do
- local added = hunk.added
- if added then
- local start_line = added.start
- local count = added.count
- if start_line and count and start_line > 0 and count > 0 then
- local end_line = start_line + added.count - 1
- local range = { start = { start_line, 0 }, ["end"] = { end_line, 0 } }
- options = vim.tbl_extend("force", { range = range }, options or {})
- vim.lsp.buf.format(options)
- end
+ if hunk and hunk.added then
+ local start = hunk.added.start
+ local last = start + hunk.added.count
+ -- nvim_buf_get_lines uses zero-based indexing -> subtract from last
+ local last_hunk_line = vim.api.nvim_buf_get_lines(0, last - 2, last - 1, true)[1]
+ local range = { start = { start, 0 }, ["end"] = { last - 1, last_hunk_line:len() } }
+ options = vim.tbl_extend("force", { range = range, lsp_fallback = true, quiet = true }, options or {})
+ conform.format(options)
end
end
end