From 09935b389d8a73937c3b19eb8aafe8dc5cd05306 Mon Sep 17 00:00:00 2001
From: Florent Bouchez Tichadou <florent.bouchez-tichadou@imag.fr>
Date: Wed, 27 Mar 2024 14:45:02 +0100
Subject: [PATCH] Added option to choose between vertical, horizontal, and
 centered magit display. New option can be set by user as follows (in .vimrc)
 > let g:magit_show_magit_display='v'

---
 README.md        | 9 +++++++++
 doc/vimagit.txt  | 8 ++++++++
 plugin/magit.vim | 6 ++++--
 3 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index cf3eaa2..c723003 100644
--- a/README.md
+++ b/README.md
@@ -435,6 +435,15 @@ example to your vimrc.
 
 User can define in its prefered vimrc some options.
 
+#### g:magit_show_magit_display
+Choose display setup for magit (default: 'v')
+Possible values:
+     'v': vertical split
+     'h': horizontal split
+     'c': current buffer
+> let g:magit_show_magit_display='v'
+
+
 #### g:magit_enabled
 
 To enable or disable vimagit plugin.
diff --git a/doc/vimagit.txt b/doc/vimagit.txt
index cb2fbfb..1f17719 100644
--- a/doc/vimagit.txt
+++ b/doc/vimagit.txt
@@ -454,6 +454,14 @@ example to your vimrc.
 
 User can define in its prefered |vimrc| some options.
 
+                                            *vimagit-g:magit_show_magit_display*
+Choose display setup for magit (default: 'v')
+Possible values:
+     'v': vertical split
+     'h': horizontal split
+     'c': current buffer
+let g:magit_show_magit_display='v'
+
                                                        *vimagit-g:magit_enabled*
 To enable or disable vimagit plugin.
 Default value is 1.
diff --git a/plugin/magit.vim b/plugin/magit.vim
index c99fb51..9321789 100644
--- a/plugin/magit.vim
+++ b/plugin/magit.vim
@@ -23,6 +23,8 @@ execute 'source ' . g:vimagit_path . '/../common/magit_common.vim'
 let g:magit_show_magit_mapping     = get(g:, 'magit_show_magit_mapping',        '<leader>M' )
 
 " user options
+" default display: vertical split.
+let g:magit_show_magit_display     = get(g:, 'magit_show_magit_display',       'v')
 let g:magit_enabled                = get(g:, 'magit_enabled',                   1)
 let g:magit_show_help              = get(g:, 'magit_show_help',                 0)
 let g:magit_default_show_all_files = get(g:, 'magit_default_show_all_files',    1)
@@ -48,7 +50,7 @@ let g:magit_warning_max_lines      = get(g:, 'magit_warning_max_lines',
 
 let g:magit_git_cmd                = get(g:, 'magit_git_cmd'          ,         "git")
 
-execute "nnoremap <silent> " . g:magit_show_magit_mapping . " :call magit#show_magit('v')<cr>"
+execute "nnoremap <silent> " . g:magit_show_magit_mapping . " :call magit#show_magit('" . g:magit_show_magit_display . "')<cr>"
 
 if (g:magit_refresh_gutter == 1 || g:magit_refresh_gitgutter == 1)
   autocmd User VimagitUpdateFile
@@ -1409,7 +1411,7 @@ function! magit#get_current_mode()
 	endif
 endfunction
 
-command! Magit call magit#show_magit('v')
+command! Magit call magit#show_magit(g:magit_show_magit_display)
 command! MagitOnly call magit#show_magit('c')
 
 " }}}
-- 
GitLab