mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	fix(redraw): get the line again after evaluating something
This commit is contained in:
		| @@ -1507,6 +1507,11 @@ int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, bool nochange, | ||||
|         if (statuscol.draw) { | ||||
|           if (statuscol.textp == NULL) { | ||||
|             get_statuscol_str(wp, lnum, wlv.row - startrow - wlv.filler_lines, &statuscol); | ||||
|             if (!end_fill) { | ||||
|               // Get the line again as evaluating 'statuscolumn' may free it. | ||||
|               line = ml_get_buf(wp->w_buffer, lnum, false); | ||||
|               ptr = line + v; | ||||
|             } | ||||
|             if (wp->w_redr_statuscol) { | ||||
|               break; | ||||
|             } | ||||
| @@ -1585,6 +1590,10 @@ int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, bool nochange, | ||||
|       wlv.c_extra = NUL; | ||||
|       wlv.c_final = NUL; | ||||
|       wlv.p_extra[wlv.n_extra] = NUL; | ||||
|  | ||||
|       // Get the line again as evaluating 'foldtext' may free it. | ||||
|       line = ml_get_buf(wp->w_buffer, lnum, false); | ||||
|       ptr = line + v; | ||||
|     } | ||||
|  | ||||
|     if (wlv.draw_state == WL_LINE | ||||
|   | ||||
| @@ -375,6 +375,28 @@ describe('statuscolumn', function() | ||||
|       {1:wrapped 1 9}aaaaaaaa                                  | | ||||
|                                                            | | ||||
|     ]]) | ||||
|     -- Also test virt_lines at the end of buffer | ||||
|     exec_lua([[ | ||||
|       local ns = vim.api.nvim_create_namespace("ns") | ||||
|       vim.api.nvim_buf_set_extmark(0, ns, 15, 0, { virt_lines = {{{"END", ""}}} }) | ||||
|     ]]) | ||||
|     feed('Gzz') | ||||
|     screen:expect([[ | ||||
|       {1:buffer  0 13}aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| | ||||
|       {1:wrapped 1 13}aaaaaaaaa                                | | ||||
|       {1:buffer  0 14}aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| | ||||
|       {1:wrapped 1 14}aaaaaaaaa                                | | ||||
|       {1:buffer  0 15}aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa| | ||||
|       {1:wrapped 1 15}aaaaaaaaa                                | | ||||
|       {4:buffer  0 16}{5:^aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}| | ||||
|       {4:wrapped 1 16}{5:aaaaaaaaa                                }| | ||||
|       {1:virtual-1 16}END                                      | | ||||
|       {0:~                                                    }| | ||||
|       {0:~                                                    }| | ||||
|       {0:~                                                    }| | ||||
|       {0:~                                                    }| | ||||
|                                                            | | ||||
|     ]]) | ||||
|   end) | ||||
|  | ||||
|   it("works with 'statuscolumn' clicks", function() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 zeertzjq
					zeertzjq