diff --git a/autoload/magit/sign.vim b/autoload/magit/sign.vim index fd44abd407d4c83f8b502adb73fe1dd57c347d19..f979d8b118fc60176d35121f6f4fcc94f06ad0bb 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 65a5d81f5fc9b21961993bfe229f8491f90a31c8..1d1e56ecf61c60d10918f725659ef9f8dbb810f9 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)