Neovim sign gutter, designed to be mostly VCS agnostic
at experimental_diffthis 31 lines 704 B view raw
1local M = {} 2 3local hunkops = require "vcsigns.hunkops" 4local state = require "vcsigns.state" 5 6function M.select_hunk(bufnr) 7 local lnum = vim.fn.line "." 8 local hunks = state.get(bufnr).diff.hunks 9 local hunk = hunkops.cur_hunk(lnum, hunks) 10 if not hunk then 11 vim.notify( 12 "No hunk under cursor", 13 vim.log.levels.WARN, 14 { title = "VCSigns" } 15 ) 16 return 17 end 18 if hunk.plus_count == 0 then 19 vim.notify( 20 "No lines in this hunk", 21 vim.log.levels.WARN, 22 { title = "VCSigns" } 23 ) 24 return 25 end 26 local start = hunk.plus_start 27 local finish = start + hunk.plus_count - 1 28 vim.cmd(string.format("normal! %dG%d|V%dG", start, start, finish)) 29end 30 31return M