mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	fix(folds): show Folded highlight in Visual selection (#23741)
Note: CursorLine highlight is now combined with Folded.
This commit is contained in:
		| @@ -1807,8 +1807,8 @@ int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, bool nochange, | ||||
|     } | ||||
|  | ||||
|     int extmark_attr = 0; | ||||
|     if (wlv.draw_state == WL_LINE | ||||
|         && (area_highlighting || has_spell || (extra_check && !has_fold))) { | ||||
|     if (wlv.draw_state == WL_LINE && !has_fold | ||||
|         && (area_highlighting || has_spell || extra_check)) { | ||||
|       // handle Visual or match highlighting in this line | ||||
|       if (wlv.vcol == wlv.fromcol | ||||
|           || (wlv.vcol + 1 == wlv.fromcol && wlv.n_extra == 0 | ||||
|   | ||||
| @@ -42,7 +42,9 @@ describe("folded lines", function() | ||||
|         [9] = {bold = true, foreground = Screen.colors.Brown}, | ||||
|         [10] = {background = Screen.colors.LightGrey, underline = true}, | ||||
|         [11] = {bold=true}, | ||||
|         [12] = {background = Screen.colors.Grey90}, | ||||
|         [12] = {background = Screen.colors.Grey90, underline = true}, | ||||
|         [13] = {foreground = Screen.colors.DarkBlue, background = Screen.colors.LightGrey, underline = true}, | ||||
|         [14] = {background = Screen.colors.LightGray}, | ||||
|       }) | ||||
|     end) | ||||
|  | ||||
| @@ -86,9 +88,10 @@ describe("folded lines", function() | ||||
|       end | ||||
|     end) | ||||
|  | ||||
|     it("highlights with CursorLineFold when 'cursorline' is set", function() | ||||
|     it("foldcolumn highlighted with CursorLineFold when 'cursorline' is set", function() | ||||
|       command("set number cursorline foldcolumn=2") | ||||
|       command("hi link CursorLineFold Search") | ||||
|       command("hi! CursorLine gui=underline guibg=Grey90") | ||||
|       insert(content1) | ||||
|       feed("ggzf3jj") | ||||
|       if multigrid then | ||||
| @@ -138,7 +141,7 @@ describe("folded lines", function() | ||||
|           [2:---------------------------------------------]| | ||||
|           [3:---------------------------------------------]| | ||||
|         ## grid 2 | ||||
|           {6:+ }{9:  1 }{12:^+--  4 lines: This is a················}| | ||||
|           {6:+ }{9:  1 }{13:^+--  4 lines: This is a················}| | ||||
|           {7:  }{8:  5 }in his cave.                           | | ||||
|           {7:  }{8:  6 }                                       | | ||||
|           {1:~                                            }| | ||||
| @@ -150,7 +153,7 @@ describe("folded lines", function() | ||||
|         ]]) | ||||
|       else | ||||
|         screen:expect([[ | ||||
|           {6:+ }{9:  1 }{12:^+--  4 lines: This is a················}| | ||||
|           {6:+ }{9:  1 }{13:^+--  4 lines: This is a················}| | ||||
|           {7:  }{8:  5 }in his cave.                           | | ||||
|           {7:  }{8:  6 }                                       | | ||||
|           {1:~                                            }| | ||||
| @@ -179,7 +182,7 @@ describe("folded lines", function() | ||||
|           [2:---------------------------------------------]| | ||||
|           [3:---------------------------------------------]| | ||||
|         ## grid 2 | ||||
|           {7:+ }{8:  1 }{12:^+--  4 lines: This is a················}| | ||||
|           {7:+ }{8:  1 }{13:^+--  4 lines: This is a················}| | ||||
|           {7:  }{8:  5 }in his cave.                           | | ||||
|           {7:  }{8:  6 }                                       | | ||||
|           {1:~                                            }| | ||||
| @@ -191,7 +194,7 @@ describe("folded lines", function() | ||||
|         ]]) | ||||
|       else | ||||
|         screen:expect([[ | ||||
|           {7:+ }{8:  1 }{12:^+--  4 lines: This is a················}| | ||||
|           {7:+ }{8:  1 }{13:^+--  4 lines: This is a················}| | ||||
|           {7:  }{8:  5 }in his cave.                           | | ||||
|           {7:  }{8:  6 }                                       | | ||||
|           {1:~                                            }| | ||||
| @@ -2013,6 +2016,56 @@ describe("folded lines", function() | ||||
|         ]]) | ||||
|       end | ||||
|     end) | ||||
|  | ||||
|     it('Folded highlight does not disappear in Visual selection #19691', function() | ||||
|       insert([[ | ||||
|         " foo | ||||
|         " {{{1 | ||||
|         set nocp | ||||
|         " }}}1 | ||||
|         " bar | ||||
|         " {{{1 | ||||
|         set foldmethod=marker | ||||
|         " }}}1 | ||||
|         " baz]]) | ||||
|       feed('gg') | ||||
|       command('source') | ||||
|       feed('<C-V>G3l') | ||||
|       if multigrid then | ||||
|         screen:expect([[ | ||||
|         ## grid 1 | ||||
|           [2:---------------------------------------------]| | ||||
|           [2:---------------------------------------------]| | ||||
|           [2:---------------------------------------------]| | ||||
|           [2:---------------------------------------------]| | ||||
|           [2:---------------------------------------------]| | ||||
|           [2:---------------------------------------------]| | ||||
|           [2:---------------------------------------------]| | ||||
|           [3:---------------------------------------------]| | ||||
|         ## grid 2 | ||||
|           {14:" fo}o                                        | | ||||
|           {5:+--  3 lines: "······························}| | ||||
|           {14:" ba}r                                        | | ||||
|           {5:+--  3 lines: "······························}| | ||||
|           {14:" b}^az                                        | | ||||
|           {1:~                                            }| | ||||
|           {1:~                                            }| | ||||
|         ## grid 3 | ||||
|           {11:-- VISUAL BLOCK --}                           | | ||||
|         ]]) | ||||
|       else | ||||
|         screen:expect([[ | ||||
|           {14:" fo}o                                        | | ||||
|           {5:+--  3 lines: "······························}| | ||||
|           {14:" ba}r                                        | | ||||
|           {5:+--  3 lines: "······························}| | ||||
|           {14:" b}^az                                        | | ||||
|           {1:~                                            }| | ||||
|           {1:~                                            }| | ||||
|           {11:-- VISUAL BLOCK --}                           | | ||||
|         ]]) | ||||
|       end | ||||
|     end) | ||||
|   end | ||||
|  | ||||
|   describe("with ext_multigrid", function() | ||||
|   | ||||
| @@ -196,8 +196,10 @@ describe('statuscolumn', function() | ||||
|       [2] = {foreground = Screen.colors.DarkBlue, background = Screen.colors.WebGrey}, | ||||
|       [3] = {foreground = Screen.colors.DarkBlue, background = Screen.colors.LightGrey}, | ||||
|       [4] = {bold = true, foreground = Screen.colors.Brown}, | ||||
|       [5] = {background = Screen.colors.Grey90}, | ||||
|       [5] = {background = Screen.colors.Grey90, underline = true}, | ||||
|       [6] = {foreground = Screen.colors.DarkBlue, background = Screen.colors.LightGrey, underline = true}, | ||||
|     }) | ||||
|     command('hi! CursorLine gui=underline guibg=Grey90') | ||||
|     screen:expect([[ | ||||
|       {1: 4│ }aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| | ||||
|       {1:  │ }a                                                | | ||||
| @@ -214,7 +216,7 @@ describe('statuscolumn', function() | ||||
|       {1:10│ }aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa{0:@@@}| | ||||
|                                                            | | ||||
|     ]]) | ||||
|     command("set stc=%C%s%=%l│\\ ") | ||||
|     command([[set stc=%C%s%=%l│\ ]]) | ||||
|     screen:expect_unchanged() | ||||
|     command('set signcolumn=auto:2 foldcolumn=auto') | ||||
|     command('sign define piet1 text=>> texthl=LineNr') | ||||
| @@ -268,7 +270,7 @@ describe('statuscolumn', function() | ||||
|       {2: }{1:  │}{2:    }{1: }aaaaaa                                      | | ||||
|       {2: }{1: 7│}{2:    }{1: }aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| | ||||
|       {2: }{1:  │}{2:    }{1: }aaaaaa                                      | | ||||
|       {2:+}{4: 8│}{2:    }{4: }{5:^+--  1 line: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}| | ||||
|       {2:+}{4: 8│}{2:    }{4: }{6:^+--  1 line: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}| | ||||
|       {2: }{1: 9│}{2:    }{1: }aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| | ||||
|       {2: }{1:  │}{2:    }{1: }aaaaaa                                      | | ||||
|       {2: }{1:10│}{2:    }{1: }aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| | ||||
| @@ -286,7 +288,7 @@ describe('statuscolumn', function() | ||||
|       {2: }{1: 6│}{2:    }{1: }aaaaaa                                      | | ||||
|       {2: }{1: 7│}{2:    }{1: }aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| | ||||
|       {2: }{1: 7│}{2:    }{1: }aaaaaa                                      | | ||||
|       {2:+}{4: 8│}{2:    }{4: }{5:^+--  1 line: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}| | ||||
|       {2:+}{4: 8│}{2:    }{4: }{6:^+--  1 line: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}| | ||||
|       {2: }{1: 9│}{2:    }{1: }aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| | ||||
|       {2: }{1: 9│}{2:    }{1: }aaaaaa                                      | | ||||
|       {2: }{1:10│}{2:    }{1: }aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| | ||||
| @@ -304,7 +306,7 @@ describe('statuscolumn', function() | ||||
|       {2: }{1: 2│}{2:    }{1: }aaaaaa                                      | | ||||
|       {2: }{1: 1│}{2:    }{1: }aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| | ||||
|       {2: }{1: 1│}{2:    }{1: }aaaaaa                                      | | ||||
|       {2:+}{4: 0│}{2:    }{4: }{5:^+--  1 line: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}| | ||||
|       {2:+}{4: 0│}{2:    }{4: }{6:^+--  1 line: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}| | ||||
|       {2: }{1: 1│}{2:    }{1: }aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| | ||||
|       {2: }{1: 1│}{2:    }{1: }aaaaaa                                      | | ||||
|       {2: }{1: 2│}{2:    }{1: }aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| | ||||
| @@ -321,7 +323,7 @@ describe('statuscolumn', function() | ||||
|       {2: }{1:  │}{2:    }{1: }aaaaaa                                      | | ||||
|       {2: }{1: 1│}{2:    }{1: }aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| | ||||
|       {2: }{1:  │}{2:    }{1: }aaaaaa                                      | | ||||
|       {2:+}{4: 0│}{2:    }{4: }{5:^+--  1 line: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}| | ||||
|       {2:+}{4: 0│}{2:    }{4: }{6:^+--  1 line: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}| | ||||
|       {2: }{1: 1│}{2:    }{1: }aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| | ||||
|       {2: }{1:  │}{2:    }{1: }aaaaaa                                      | | ||||
|       {2: }{1: 2│}{2:    }{1: }aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| | ||||
| @@ -346,7 +348,7 @@ describe('statuscolumn', function() | ||||
|       {2: }{1:  │}{2:                  }{1: }aaaaaaaaaaaaaaaaaaaa          | | ||||
|       {2: }{1: 1│}{2:                  }{1: }aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| | ||||
|       {2: }{1:  │}{2:                  }{1: }aaaaaaaaaaaaaaaaaaaa          | | ||||
|       {2:+}{4: 0│}{2:                  }{4: }{5:^+--  1 line: aaaaaaaaaaaaaaaaa}| | ||||
|       {2:+}{4: 0│}{2:                  }{4: }{6:^+--  1 line: aaaaaaaaaaaaaaaaa}| | ||||
|       {2: }{1: 1│}{2:                  }{1: }aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| | ||||
|       {2: }{1:  │}{2:                  }{1: }aaaaaaaaaaaaaaaaaaaa          | | ||||
|       {2: }{1: 2│}{2:                  }{1: }aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| | ||||
| @@ -372,7 +374,7 @@ describe('statuscolumn', function() | ||||
|       {1:wrapped 1 6}aaaaaaaa                                  | | ||||
|       {1:buffer  0 7}aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| | ||||
|       {1:wrapped 1 7}aaaaaaaa                                  | | ||||
|       {4:buffer  0 8}{5:^+--  1 line: aaaaaaaaaaaaaaaaaaaaaaaaaaaaa}| | ||||
|       {4:buffer  0 8}{6:^+--  1 line: aaaaaaaaaaaaaaaaaaaaaaaaaaaaa}| | ||||
|       {1:buffer  0 9}aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| | ||||
|       {1:wrapped 1 9}aaaaaaaa                                  | | ||||
|                                                            | | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 zeertzjq
					zeertzjq