]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
runtime(gitcommit): Updates to ftplugin and syntax
authorTim Pope <code@tpope.net>
Thu, 28 Dec 2023 17:48:27 +0000 (12:48 -0500)
committerChristian Brabandt <cb@256bit.org>
Thu, 28 Dec 2023 22:17:54 +0000 (23:17 +0100)
runtime/ftplugin/gitcommit.vim
runtime/syntax/gitcommit.vim

index 9342799b5667584b535ee9c54c90116e185192e2..3749328595aaaee1e8741ed6b69b113cd06505de 100644 (file)
@@ -1,7 +1,7 @@
 " Vim filetype plugin
 " Language:    git commit file
 " Maintainer:  Tim Pope <vimNOSPAM@tpope.org>
-" Last Change: 2022 Jan 05
+" Last Change: 2023 Dec 28
 
 " Only do this when not done yet for this buffer
 if (exists("b:did_ftplugin"))
@@ -12,7 +12,7 @@ let b:did_ftplugin = 1
 
 setlocal nomodeline tabstop=8 formatoptions+=tl textwidth=72
 setlocal formatoptions-=c formatoptions-=r formatoptions-=o formatoptions-=q formatoptions+=n
-setlocal formatlistpat+=\\\|^\\s*[-*+]\\s\\+
+setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}]\\s\\+\\\|^\\s*[-*+]\\s\\+
 setlocal include=^+++
 setlocal includeexpr=substitute(v:fname,'^[bi]/','','')
 
@@ -42,6 +42,11 @@ function! s:diffcomplete(A, L, P) abort
   return args
 endfunction
 
+function! s:setupdiff() abort
+  command! -bang -bar -buffer -complete=custom,s:diffcomplete -nargs=* DiffGitCached :call s:gitdiffcached(<bang>0, <f-args>)
+  setlocal buftype=nowrite nobuflisted noswapfile nomodifiable filetype=git
+endfunction
+
 function! s:gitdiffcached(bang, ...) abort
   let name = tempname()
   if a:0
@@ -50,8 +55,6 @@ function! s:gitdiffcached(bang, ...) abort
     let extra = "-p --stat=".&columns
   endif
   call system("git diff --cached --no-color --no-ext-diff ".extra." > ".shellescape(name))
-  exe "pedit " . fnameescape(name)
-  wincmd P
-  command! -bang -bar -buffer -complete=custom,s:diffcomplete -nargs=* DiffGitCached :call s:gitdiffcached(<bang>0, <f-args>)
-  setlocal buftype=nowrite nobuflisted noswapfile nomodifiable filetype=git
+  exe 'pedit +call\ s:setupdiff()' fnameescape(name)
+  silent! wincmd P
 endfunction
index 42c8d4414f0f0f05a1061113726d5cca1d4218df..bce6772762d9a568db0171cdb09c8b23ffcbf70c 100644 (file)
@@ -2,7 +2,7 @@
 " Language:    git commit file
 " Maintainer:  Tim Pope <vimNOSPAM@tpope.org>
 " Filenames:   *.git/COMMIT_EDITMSG
-" Last Change: 2022 Jan 05
+" Last Change: 2023 Dec 28
 
 if exists("b:current_syntax")
   finish
@@ -21,7 +21,11 @@ endif
 syn include @gitcommitDiff syntax/diff.vim
 syn region gitcommitDiff start=/\%(^diff --\%(git\|cc\|combined\) \)\@=/ end=/^\%(diff --\|$\|@@\@!\|[^[:alnum:]\ +-]\S\@!\)\@=/ fold contains=@gitcommitDiff
 
-syn match   gitcommitSummary   "^.*\%<51v." contained containedin=gitcommitFirstLine nextgroup=gitcommitOverflow contains=@Spell
+if get(g:, 'gitcommit_summary_length') < 0
+  syn match   gitcommitSummary "^.*$" contained containedin=gitcommitFirstLine nextgroup=gitcommitOverflow contains=@Spell
+elseif get(g:, 'gitcommit_summary_length', 1) > 0
+  exe 'syn match   gitcommitSummary    "^.*\%<' . (get(g:, 'gitcommit_summary_length', 50) + 1) . 'v." contained containedin=gitcommitFirstLine nextgroup=gitcommitOverflow contains=@Spell'
+endif
 syn match   gitcommitOverflow  ".*" contained contains=@Spell
 syn match   gitcommitBlank     "^.\+" contained contains=@Spell
 syn match   gitcommitFirstLine "\%^.*" nextgroup=gitcommitBlank,gitcommitComment skipnl