From c117cfc72ad233ca560336789c95c39dff17ce82 Mon Sep 17 00:00:00 2001 From: Jerome Reybert <jreybert@gmail.com> Date: Tue, 20 Oct 2015 13:14:36 +0200 Subject: [PATCH] plugin/magit.vim: remove signs when they are staged --- autoload/magit/sign.vim | 8 +++++--- plugin/magit.vim | 3 ++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/autoload/magit/sign.vim b/autoload/magit/sign.vim index fd44abd..f979d8b 100644 --- a/autoload/magit/sign.vim +++ b/autoload/magit/sign.vim @@ -15,11 +15,12 @@ let s:supports_star = v:version > 703 || (v:version == 703 && has("patch596")) let s:bufnr = bufnr(g:magit_buffer_name) " magit#sign#remove_signs: unplace a list of signs -" param[in] sign_ids: list of signs ids +" param[in] sign_ids: list of signs dict function! magit#sign#remove_signs(sign_ids) let bufnr = magit#utils#bufnr() - for id in a:sign_ids - execute "sign unplace" id + for sign in values(a:sign_ids) + echom "sign unplace" sign.id + execute "sign unplace" sign.id endfor endfunction @@ -62,6 +63,7 @@ endfunction " magit#sign#find_stage_signs: helper function to get marked lines for stage " param[in] startline,endline: range of lines +" return Dict of marked lines function! magit#sign#find_stage_signs(startline, endline) return magit#sign#find_signs(s:magit_mark_sign, a:startline, a:endline) endfunction diff --git a/plugin/magit.vim b/plugin/magit.vim index 65a5d81..1d1e56e 100644 --- a/plugin/magit.vim +++ b/plugin/magit.vim @@ -780,7 +780,8 @@ function! magit#stage_hunk(discard) let selection = getline(start, end) else let selection = <SID>mg_create_diff_from_select( - \map(keys(marked_lines), 'str2nr(v:val)')) + \ map(keys(marked_lines), 'str2nr(v:val)')) + call magit#sign#remove_signs(marked_lines) endif endtry return magit#stage_block(selection, a:discard) -- GitLab