Skip to content

Commit 0a967f7

Browse files
committed
Support default commit message multiple lines
1 parent 30922f7 commit 0a967f7

File tree

2 files changed

+17
-13
lines changed

2 files changed

+17
-13
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -516,7 +516,7 @@ let g:vim_project_config.list_mappings_git_branch = {
516516
| tasks | Tasks to run using vim 'terminal' feature |
517517
| new_project_base | The base directory used for `:ProjectNew path`. |
518518
| project_views | Define project views by `[[show-pattern, hide-pattern?], ...]` |
519-
| commit_message | Default commit message. Can be string or Function reference. |
519+
| commit_message | Default commit message. String or list of string or function that returns it. |
520520
| debug | Show debug messages |
521521

522522
### Config files

autoload/project/git.vim

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1611,9 +1611,9 @@ function! s:Commit() range
16111611
let s:commit_files = uniq(map(copy(commit_files), {idx, file -> s:GetFilename(file)}))
16121612
let show_commit_files = map(copy(commit_files), {idx, file -> '# '.file})
16131613

1614-
let title = s:GetCommitMessage()
1614+
let message = s:GetCommitMessage()
16151615
quit
1616-
call s:ShowCommitMessage(title, show_commit_files)
1616+
call s:ShowCommitMessage(message, show_commit_files)
16171617
endfunction
16181618

16191619
function! s:RemoveFolderNamePrefix(name)
@@ -1625,32 +1625,36 @@ function! s:GetCommitMessage()
16251625
let folder = s:GetBelongFolder(lnum)
16261626
let folder_name = !empty(folder) ? s:RemoveFolderNamePrefix(folder.name) : ''
16271627

1628-
let title = ''
1628+
let message = ''
16291629
let CustomMessage = project#GetVariable('commit_message')
16301630

16311631
if !empty(CustomMessage)
1632-
if type(CustomMessage) == type(function('tr'))
1633-
let title = CustomMessage(folder_name)
1634-
elseif type(CustomMessage) == type('')
1635-
let title = CustomMessage
1632+
if type(CustomMessage) == v:t_func
1633+
let message = CustomMessage(folder_name)
1634+
elseif type(CustomMessage) == v:t_string || type(CustomMessage) == v:t_list
1635+
let message = CustomMessage
16361636
endif
16371637
endif
16381638

1639-
if empty(title) && s:IsUserFolder(folder)
1640-
let title = folder_name
1639+
if empty(message) && s:IsUserFolder(folder)
1640+
let message = folder_name
16411641
endif
1642-
return title
1642+
1643+
if type(message) != v:t_list
1644+
let message = [message]
1645+
endif
1646+
return message
16431647
endfunction
16441648

1645-
function! s:ShowCommitMessage(title, files)
1649+
function! s:ShowCommitMessage(message, files)
16461650
let preset_message = [
16471651
\'# Please enter the commit message for your changes. Lines starting',
16481652
\"# with '#' will be ignored, and an empty message aborts the commit.",
16491653
\'#',
16501654
\'# Changes to be committed:'
16511655
\]
16521656
execute 'new '.s:commit_edit_buffer
1653-
let content = [a:title] + preset_message + a:files
1657+
let content = a:message + preset_message + a:files
16541658
call append(0, content)
16551659
normal! gg
16561660

0 commit comments

Comments
 (0)