From d5e8a8afcd5ff66f50cbded40ba550ee4d50978b Mon Sep 17 00:00:00 2001
From: Jerome Reybert <jreybert@gmail.com>
Date: Tue, 31 Oct 2017 13:56:30 +0100
Subject: [PATCH] WIP: discard visual selection

it does not work as is...

ref #148
---
 autoload/magit/mapping.vim | 6 ++++--
 plugin/magit.vim           | 4 ++--
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/autoload/magit/mapping.vim b/autoload/magit/mapping.vim
index 6bffbf8..2407dd9 100644
--- a/autoload/magit/mapping.vim
+++ b/autoload/magit/mapping.vim
@@ -117,9 +117,11 @@ function! magit#mapping#set_default()
 	call s:mg_set_mapping('n', g:magit_discard_hunk_mapping,
 				\ "magit#stage_hunk(1)", '\<\%(un\)\?staged\>')
 	call s:mg_set_mapping('n', g:magit_stage_line_mapping,
-				\ "magit#stage_vselect()", '\<\%(un\)\?staged\>')
+				\ "magit#stage_vselect(0)", '\<\%(un\)\?staged\>')
 	call s:mg_set_mapping('x', g:magit_stage_hunk_mapping,
-				\ "magit#stage_vselect()", '\<\%(un\)\?staged\>')
+				\ "magit#stage_vselect(0)", '\<\%(un\)\?staged\>')
+	call s:mg_set_mapping('x', g:magit_discard_hunk_mapping,
+				\ "magit#stage_vselect(1)", '\<\%(un\)\?staged\>')
 	call s:mg_set_mapping('n', g:magit_mark_line_mapping,
 				\ "magit#mark_vselect()", '\<\%(un\)\?staged\>')
 	call s:mg_set_mapping('x', g:magit_mark_line_mapping,
diff --git a/plugin/magit.vim b/plugin/magit.vim
index 0f1a975..638873e 100644
--- a/plugin/magit.vim
+++ b/plugin/magit.vim
@@ -1042,7 +1042,7 @@ endfunction
 " INFO: in unstaged section, it stages the file, and in staged section, it
 " unstages the file
 " return: no
-function! magit#stage_vselect() range
+function! magit#stage_vselect(discard) range
 	" func-range a:firstline a:lastline seems to work at least from vim 7.2
 	let lines = []
 	let curline = a:firstline
@@ -1063,7 +1063,7 @@ function! magit#stage_vselect() range
 		echomsg "https://github.com/jreybert/vimagit/issues/new"
 		return
 	endtry
-	return magit#stage_block(selection, 0)
+	return magit#stage_block(selection, a:discard)
 endfunction
 
 " magit#mark_vselect: wrapper function to mark selected lines (see
-- 
GitLab