# HG changeset patch # User Christian Brabandt # Date 1704667503 -3600 # Node ID d6b9d567433fd79789beb58b028932ff235a6650 # Parent 8241df3e6dc1a93496735495276657ac47b54086 patch 9.1.0016: default diff highlighting is too noisy Commit: https://github.com/vim/vim/commit/124371c5a149a8c0c75c04b6c90ac11e71a0aa97 Author: Romain Lafourcade Date: Sun Jan 7 15:08:31 2024 +0100 patch 9.1.0016: default diff highlighting is too noisy Problem: default diff highlighting is too noisy Solution: Link diff highlighting groups to new Added/Removed/Changed, revert previous change (Romain Lafourcade) Remove diff* links added in #13776 and doc added in commit b1392be The links added in #13776 are way too noisy for the contexts in which the `diff` syntax is applied (git commits, patches, etc.). This commit: - removes those links - adds new default highlighting groups Added, Changed and Removed - links the diff highlighting groups to those new defaults - removes the doc changes - adjusts the syntax_completion test for those newly added group names Note: Changes to the default color schemes will be handled separately, by adding links to those newly created Added/Removed/Changed highlighting groups. related: #13776 closes #13825 Signed-off-by: Romain Lafourcade Signed-off-by: Christian Brabandt diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt --- a/runtime/doc/syntax.txt +++ b/runtime/doc/syntax.txt @@ -1,4 +1,4 @@ -*syntax.txt* For Vim version 9.1. Last change: 2024 Jan 03 +*syntax.txt* For Vim version 9.1. Last change: 2024 Jan 06 VIM REFERENCE MANUAL by Bram Moolenaar @@ -271,6 +271,10 @@ you can see the actual color, except for *Todo anything that needs extra attention; mostly the keywords TODO FIXME and XXX + *Added added line in a diff + *Changed changed line in a diff + *Removed removed line in a diff + The names marked with * are the preferred groups; the others are minor groups. For the preferred groups, the "syntax.vim" file contains default highlighting. The minor groups are linked to the preferred groups, so they get the same @@ -1261,7 +1265,7 @@ To highlight KDE-reserved features, set g:desktop_enable_kde follows g:desktop_enable_nonstd if not supplied -DIFF *diff.vim* *ft-diff-syntax* +DIFF *diff.vim* The diff highlighting normally finds translated headers. This can be slow if there are very long lines in the file. To disable translations: > @@ -1270,15 +1274,6 @@ there are very long lines in the file. Also see |diff-slow|. -Since the Vim 9.1 release |version-9.1| the diff filetype links the diffAdded, -diffRemoved and diffChanged highlighting groups to |hl-DiffAdd|, -|hl-DiffDelete| and |hl-DiffChange| by default. If you do not want this, you -can change it to the previous groups like this in your |.vimrc| > - - hi link diffRemoved Special - hi link diffChanged PreProc - hi link diffAdded Identifier -< DIRCOLORS *dircolors.vim* *ft-dircolors-syntax* The dircolors utility highlighting definition has one option. It exists to diff --git a/runtime/doc/tags b/runtime/doc/tags --- a/runtime/doc/tags +++ b/runtime/doc/tags @@ -7207,7 +7207,6 @@ ft-cynlib-syntax syntax.txt /*ft-cynlib- ft-dart-syntax syntax.txt /*ft-dart-syntax* ft-dash-syntax syntax.txt /*ft-dash-syntax* ft-desktop-syntax syntax.txt /*ft-desktop-syntax* -ft-diff-syntax syntax.txt /*ft-diff-syntax* ft-dircolors-syntax syntax.txt /*ft-dircolors-syntax* ft-docbk-syntax syntax.txt /*ft-docbk-syntax* ft-docbksgml-syntax syntax.txt /*ft-docbksgml-syntax* diff --git a/runtime/syntax/diff.vim b/runtime/syntax/diff.vim --- a/runtime/syntax/diff.vim +++ b/runtime/syntax/diff.vim @@ -378,9 +378,9 @@ hi def link diffBDiffer Constant hi def link diffIsA Constant hi def link diffNoEOL Constant hi def link diffCommon Constant -hi def link diffRemoved DiffDelete -hi def link diffChanged DiffChange -hi def link diffAdded DiffAdd +hi def link diffRemoved Removed +hi def link diffChanged Changed +hi def link diffAdded Added hi def link diffLine Statement hi def link diffSubname PreProc hi def link diffComment Comment diff --git a/runtime/syntax/help.vim b/runtime/syntax/help.vim --- a/runtime/syntax/help.vim +++ b/runtime/syntax/help.vim @@ -141,6 +141,10 @@ syn match helpTodo "\t[* ]Todo\t\+[a-z] syn match helpURL `\v<(((https?|ftp|gopher)://|(mailto|file|news):)[^' <>"]+|(www|web|w3)[a-z0-9_-]*\.[a-z0-9._-]+\.[^' <>"]+)[a-zA-Z0-9/]` +syn match helpDiffAdded "\t[* ]Added\t\+[a-z].*" +syn match helpDiffChanged "\t[* ]Changed\t\+[a-z].*" +syn match helpDiffRemoved "\t[* ]Removed\t\+[a-z].*" + " Additionally load a language-specific syntax file "help_ab.vim". let s:i = match(expand("%"), '\.\a\ax$') if s:i > 0 @@ -216,6 +220,9 @@ hi def link helpUnderlined Underlined hi def link helpError Error hi def link helpTodo Todo hi def link helpURL String +hi def link helpDiffAdded Added +hi def link helpDiffChanged Changed +hi def link helpDiffRemoved Removed if has('textprop') && expand('%:p') =~ '[/\\]doc[/\\]syntax.txt' " highlight groups with their respective color diff --git a/runtime/syntax/syncolor.vim b/runtime/syntax/syncolor.vim --- a/runtime/syntax/syncolor.vim +++ b/runtime/syntax/syncolor.vim @@ -41,6 +41,9 @@ if &background == "dark" SynColor Type term=underline cterm=NONE ctermfg=LightGreen ctermbg=NONE gui=bold guifg=#60ff60 guibg=NONE SynColor Underlined term=underline cterm=underline ctermfg=LightBlue gui=underline guifg=#80a0ff SynColor Ignore term=NONE cterm=NONE ctermfg=black ctermbg=NONE gui=NONE guifg=bg guibg=NONE + SynColor Added term=NONE cterm=NONE ctermfg=Green ctermbg=NONE gui=NONE guifg=LimeGreen guibg=NONE + SynColor Changed term=NONE cterm=NONE ctermfg=Blue ctermbg=NONE gui=NONE guifg=DodgerBlue guibg=NONE + SynColor Removed term=NONE cterm=NONE ctermfg=Red ctermbg=NONE gui=NONE guifg=Red guibg=NONE else SynColor Comment term=bold cterm=NONE ctermfg=DarkBlue ctermbg=NONE gui=NONE guifg=Blue guibg=NONE SynColor Constant term=underline cterm=NONE ctermfg=DarkRed ctermbg=NONE gui=NONE guifg=Magenta guibg=NONE @@ -53,6 +56,9 @@ else SynColor Type term=underline cterm=NONE ctermfg=DarkGreen ctermbg=NONE gui=bold guifg=SeaGreen guibg=NONE SynColor Underlined term=underline cterm=underline ctermfg=DarkMagenta gui=underline guifg=SlateBlue SynColor Ignore term=NONE cterm=NONE ctermfg=white ctermbg=NONE gui=NONE guifg=bg guibg=NONE + SynColor Added term=NONE cterm=NONE ctermfg=DarkGreen ctermbg=NONE gui=NONE guifg=SeaGreen guibg=NONE + SynColor Changed term=NONE cterm=NONE ctermfg=Blue ctermbg=NONE gui=NONE guifg=DodgerBlue guibg=NONE + SynColor Removed term=NONE cterm=NONE ctermfg=Red ctermbg=NONE gui=NONE guifg=Red guibg=NONE endif SynColor Error term=reverse cterm=NONE ctermfg=White ctermbg=Red gui=NONE guifg=White guibg=Red SynColor Todo term=standout cterm=NONE ctermfg=Black ctermbg=Yellow gui=NONE guifg=Blue guibg=Yellow diff --git a/src/testdir/test_syntax.vim b/src/testdir/test_syntax.vim --- a/src/testdir/test_syntax.vim +++ b/src/testdir/test_syntax.vim @@ -193,14 +193,14 @@ func Test_syntax_completion() " Check that clearing "Aap" avoids it showing up before Boolean. hi Aap ctermfg=blue call feedkeys(":syn list \\\"\", 'tx') - call assert_match('^"syn list Aap Boolean Character ', @:) + call assert_match('^"syn list Aap Added Boolean Changed Character ', @:) hi clear Aap call feedkeys(":syn list \\\"\", 'tx') - call assert_match('^"syn list Boolean Character ', @:) + call assert_match('^"syn list Added Boolean Changed Character ', @:) call feedkeys(":syn match \\\"\", 'tx') - call assert_match('^"syn match Boolean Character ', @:) + call assert_match('^"syn match Added Boolean Changed Character ', @:) syn cluster Aax contains=Aap call feedkeys(":syn list @A\\\"\", 'tx') diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -705,6 +705,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 16, +/**/ 15, /**/ 14,