diff src/fold.c @ 28823:980eaa09f940 v8.2.4935

patch 8.2.4935: with 'foldmethod' "indent" some lines not included in fold Commit: https://github.com/vim/vim/commit/d98e75e23666c159c7e00bcf5b6ad9a933bb0534 Author: Brandon Simmons <simmsbra@gmail.com> Date: Tue May 10 19:13:23 2022 +0100 patch 8.2.4935: with 'foldmethod' "indent" some lines not included in fold Problem: With 'foldmethod' "indent" some lines are not included in the fold. (Oleg Koshovetc) Solution: Fix it. (Brandon Simmons, closes #10399, closes #3214)
author Bram Moolenaar <Bram@vim.org>
date Tue, 10 May 2022 20:15:02 +0200
parents d770568e6c98
children 2ac9beab876c
line wrap: on
line diff
--- a/src/fold.c
+++ b/src/fold.c
@@ -2246,7 +2246,14 @@ foldUpdateIEMS(win_T *wp, linenr_T top, 
 	    getlevel = foldlevelDiff;
 #endif
 	else
+	{
 	    getlevel = foldlevelIndent;
+	    // Start one line back, because if the line above "top" has an
+	    // undefined fold level, folding it relies on the line under it,
+	    // which is "top".
+	    if (top > 1)
+		--fline.lnum;
+	}
 
 	// Backup to a line for which the fold level is defined.  Since it's
 	// always defined for line one, we will stop there.