GNU bug report logs - #79810
hideshow: Indicators missing for same-line multi-blocks

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Reported by: Juri Linkov <juri@HIDDEN>; Done: Juri Linkov <juri@HIDDEN>; Maintainer for emacs is bug-gnu-emacs@HIDDEN.

Message received at 79810 <at> debbugs.gnu.org:


Received: (at 79810) by debbugs.gnu.org; 14 Nov 2025 07:25:31 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Nov 14 02:25:31 2025
Received: from localhost ([127.0.0.1]:59782 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vJoBX-0002at-HQ
	for submit <at> debbugs.gnu.org; Fri, 14 Nov 2025 02:25:31 -0500
Received: from mout-p-102.mailbox.org ([80.241.56.152]:36744)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1vJoBV-0002an-7m
 for 79810 <at> debbugs.gnu.org; Fri, 14 Nov 2025 02:25:30 -0500
Received: from smtp2.mailbox.org (smtp2.mailbox.org
 [IPv6:2001:67c:2050:b231:465::2])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by mout-p-102.mailbox.org (Postfix) with ESMTPS id 4d77vj233zz9tRD;
 Fri, 14 Nov 2025 08:25:21 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; 
 t=1763105121;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 in-reply-to:in-reply-to:references:references;
 bh=RIgeLhH+Kl1sdj3jIiDv+d2cFdzm/sKeb/+QT371SzY=;
 b=nUE5q2tIe8P4wrVuvlNIgy01Ol19Jk2mx4S6VBfTjmsMBKh1/1UHtJPIrMpj27gZNzly33
 T95e6V/vOGpen2BfqMufwed6uBMA4bMeXiqIFWrQJFTGgH+785ZjUVhcHu36UGhW9u+89i
 TONsNT14V0TfCBZG3WJ/K2J8853kFyR9ht+c3z945oRv+f3gwVuKxFu4bZPrWc4MLu6YPg
 JbCSLe45tj/HDyT6p4I482YbbapyfESF52AcI9prPJc80EflVeb0ucSdluDFI40UI9DCbF
 lrjt/5pS29v3xmj+46k5J0vmoali50iCZ1Sl9miRErnJ+BOVBsfGtiy0v+WVHg==
Authentication-Results: outgoing_mbo_mout; dkim=none;
 spf=pass (outgoing_mbo_mout: domain of juri@HIDDEN designates
 2001:67c:2050:b231:465::2 as permitted sender) smtp.mailfrom=juri@HIDDEN
From: Juri Linkov <juri@HIDDEN>
To: Elijah Gabe =?iso-8859-1?Q?P=E9rez?= <eg642616@HIDDEN>
Subject: Re: bug#79810: hideshow: Indicators missing for same-line multi-blocks
In-Reply-To: <87ecq17j8f.fsf@HIDDEN>
Organization: LINKOV.NET
References: <87tsz1k9z7.fsf@HIDDEN> <871pm5wnjq.fsf@HIDDEN>
 <87ms4s378g.fsf@HIDDEN> <87y0occpe8.fsf@HIDDEN>
 <s4sms4r27s4.fsf@HIDDEN> <87a50rgnj0.fsf@HIDDEN>
 <87jyztpzab.fsf@HIDDEN> <87ecq17j8f.fsf@HIDDEN>
Date: Fri, 14 Nov 2025 09:23:53 +0200
Message-ID: <87jyztqdpy.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Rspamd-Queue-Id: 4d77vj233zz9tRD
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 79810
Cc: 79810 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

> I have modified it so that it does not move the cursor to a nearby
> block.

I confirm everything works now, so pushed, thanks for fixing.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79810; Package emacs. Full text available.

Message received at 79810 <at> debbugs.gnu.org:


Received: (at 79810) by debbugs.gnu.org; 13 Nov 2025 20:47:45 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Nov 13 15:47:45 2025
Received: from localhost ([127.0.0.1]:57184 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vJeEL-0002Iu-0N
	for submit <at> debbugs.gnu.org; Thu, 13 Nov 2025 15:47:45 -0500
Received: from mail-yw1-x1142.google.com ([2607:f8b0:4864:20::1142]:55562)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <eg642616@HIDDEN>)
 id 1vJeEH-0002Ig-U5
 for 79810 <at> debbugs.gnu.org; Thu, 13 Nov 2025 15:47:42 -0500
Received: by mail-yw1-x1142.google.com with SMTP id
 00721157ae682-786a822e73aso14855477b3.3
 for <79810 <at> debbugs.gnu.org>; Thu, 13 Nov 2025 12:47:41 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1763066856; x=1763671656; darn=debbugs.gnu.org;
 h=mime-version:user-agent:message-id:date:references:in-reply-to
 :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to;
 bh=hShP26/gfKlJRC/E4bf5B4h05FVRG79OsGRXe5MPGRI=;
 b=hDdiFiHRcdsc/+EwtDtYKiGKpNigPgCLuADESNHd4XwGS1z4Bdli7xHGSsyMqKIWQB
 LHcV76kR0agCSKYR6Y5rUgP7x9dykpccBTmVIARzHgc3jM+IZZBZIeFiORH8ZmWXlU6Q
 pEs84Djb182l5PB4zIkJUIBbDISayL6Kd0+dQNhzF2xjDLv1FaN2lJNLA/1Q98MAEeFf
 sOLs/8xUihx47q1YgmiZdWUF1wcn+giTje5c8Ew7c5k9ancdnPSmca8h9hsJglQafmBW
 Ub5BDHFTySajwQQV1vUKyfTNOyaw2mqck+b0UhcVFsmYXXtm8saFvrnWp9sCI8KhlI3o
 Ro+w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1763066856; x=1763671656;
 h=mime-version:user-agent:message-id:date:references:in-reply-to
 :subject:cc:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject
 :date:message-id:reply-to;
 bh=hShP26/gfKlJRC/E4bf5B4h05FVRG79OsGRXe5MPGRI=;
 b=k346Fd5Qtz0rsFtTcWVu3qpcceYkBDaEG2ok1iN5IDrneCgigMmpD69y7dw/raVOPA
 Linqz0ARtC2au8ToOJHCYFL2c/6P0JOCK6A4rnNMhN6N9YxfqhwkvbaT5MH2+xYAbOB2
 bfybImf0+D/p1F2ZWasP2ggTMlVOQ3EnjKkcBtsuT21PQ62A+V+bjNGqRVAjwv0WgqPH
 qRMkHtrrjFkDPrSTpJmIfNU3mckx5OKK3fZnGsFe74TehNWDr6pqZ2kgBe/Npm0UUCJJ
 1nhiWkUUElXznXzZ71WxtB6KmE5/gXskM7S4s12ivGClnfrZs8Dt3sYMN+zv+fP6p9Fw
 /fAQ==
X-Gm-Message-State: AOJu0YxQgX2hBcjlU/uNvAynrSpuMqGzaJzQpHbvU7Ej8ItDYSE9Mo+R
 UisOCfxvmiw8qS5GcQkS9aK7sTFpFyj1NcG7gaZgZDrtrw7Dyqy/nvOqwVUjZrxf
X-Gm-Gg: ASbGncsVeXtAcXSnS8+ypgHvi3BuvwdJmUkMNS4ZxSAmaUeBjsmnBLvyMZxhjNcNHrs
 sFet0etsVtxtUXUBBfh44q+yo3qX0Qsqz4BzK8oQUHl5WImNzAxFmzAcX6fBiv5wvju72Egq80h
 OSyU/O8b1gq2l3OHhXreNepKpffIISarxFYFFTDIoJk8eETB9OyvLodF4XyloumOy+pZc27JcDv
 2cNvEZd36ePXBH2Sc16SOk0CXnXjaft29b1zZArylj1+aYZuJmNu2520gqjESapOmpMUOwzwv/p
 34Hj90+4XCC+2c43wyN6zbox/IL/Lc2TGmTgKtLB2jIIPMT6p0bYfTEr7c0iiLoRz7PiFmra4PI
 ECkqn7VrZcc65NYpoyo1nnTXqOUF9vba8GLS31/iI2O97m/pBEqWRJzLjMC2kD84LbRBx
X-Google-Smtp-Source: AGHT+IE6VuaGjm9sf8iYf9mx8JuwcY+/htIxn9MihSbXfL6fpT8O+J8eGpoJTCdnKYOUErAxF/kVRw==
X-Received: by 2002:a05:690c:380a:b0:786:9774:a39c with SMTP id
 00721157ae682-78929e3f0cbmr6678707b3.9.1763066855861; 
 Thu, 13 Nov 2025 12:47:35 -0800 (PST)
Received: from fedora ([189.215.165.71]) by smtp.gmail.com with ESMTPSA id
 00721157ae682-78821de2c15sm9704277b3.1.2025.11.13.12.47.34
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Thu, 13 Nov 2025 12:47:35 -0800 (PST)
From: =?utf-8?Q?Elijah_Gabe_P=C3=A9rez?= <eg642616@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
Subject: Re: bug#79810: hideshow: Indicators missing for same-line multi-blocks
In-Reply-To: <87jyztpzab.fsf@HIDDEN>
References: <87tsz1k9z7.fsf@HIDDEN> <871pm5wnjq.fsf@HIDDEN>
 <87ms4s378g.fsf@HIDDEN> <87y0occpe8.fsf@HIDDEN>
 <s4sms4r27s4.fsf@HIDDEN> <87a50rgnj0.fsf@HIDDEN>
 <87jyztpzab.fsf@HIDDEN>
Date: Thu, 13 Nov 2025 14:47:28 -0600
Message-ID: <87ecq17j8f.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Spam-Score: 0.3 (/)
X-Debbugs-Envelope-To: 79810
Cc: 79810 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

--=-=-=
Content-Type: text/plain

Juri Linkov <juri@HIDDEN> writes:

>> I've updated the patch:
>
> I tested the patch and noticed only one small problem:
> when point is on this line:
>
>     ~H"""
>
> then hs-toggle-hiding hides it, but another hs-toggle-hiding doesn't show it again.

It seems to be caused by this code in `hs-already-hidden-p`:

(defun hs-already-hidden-p ()
  ...
        (when (not c-reg)
          (end-of-line)
          (when (not (hs-find-block-beginning-match))
            ;; We should also consider ourselves "in" a hidden block when
            ;; point is right at the edge after a hidden block (bug#52092).
            (beginning-of-line)
            (hs-find-block-beginning-match)))))
    ...))

I have modified it so that it does not move the cursor to a nearby
block.


--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment;
 filename=0001-hideshow-Fix-previous-changes.patch

From 25abd46ee5c5cc7ebddb287c65bd56a655a01aad Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?El=C3=ADas=20Gabriel=20P=C3=A9rez?= <eg642616@HIDDEN>
Date: Wed, 12 Nov 2025 10:51:24 -0600
Subject: [PATCH] ; hideshow: Fix previous changes

* lisp/progmodes/hideshow.el (hs--add-indicators): Add the
indicators per line.
(hs-already-hidden-p, hs-hide-block): Simplify.
---
 lisp/progmodes/hideshow.el | 104 ++++++++++++++++++-------------------
 1 file changed, 52 insertions(+), 52 deletions(-)

diff --git a/lisp/progmodes/hideshow.el b/lisp/progmodes/hideshow.el
index 68be0d59abd..0384206b7e0 100644
--- a/lisp/progmodes/hideshow.el
+++ b/lisp/progmodes/hideshow.el
@@ -818,26 +818,31 @@ hs--add-indicators
   (goto-char beg)
   (remove-overlays beg end 'hs-indicator t)
 
-  (while (funcall hs-find-next-block-function hs-block-start-regexp end nil)
-    (when-let* ((b-beg (match-beginning 0))
-                (_ (save-excursion
-                     (goto-char b-beg)
-                     (funcall hs-looking-at-block-start-predicate)))
-                ;; `catch' is used here if the search fails due
-                ;; unbalanced parentheses or any other unknown error
-                ;; caused in `hs-forward-sexp'.
-                (b-end (catch 'hs-indicator-error
-                         (save-excursion
+  (while (not (>= (point) end))
+    (save-excursion
+      (let (exit)
+        (while (and (not exit)
+                    (funcall hs-find-next-block-function hs-block-start-regexp (pos-eol) nil))
+          (when-let* ((b-beg (match-beginning 0))
+                      (_ (save-excursion
                            (goto-char b-beg)
-                           (condition-case _
-                               (funcall hs-forward-sexp-function 1)
-                             (scan-error (throw 'hs-indicator-error nil)))
-                           (point))))
-                ;; Check if block is longer than 1 line.
-                (_ (hs-hideable-region-p b-beg b-end)))
-      ;; Only 1 indicator per line
-      (when (hs--make-indicators-overlays b-beg)
-        (forward-line))))
+                           (funcall hs-looking-at-block-start-predicate)))
+                      ;; `catch' is used here if the search fails due
+                      ;; unbalanced parentheses or any other unknown error
+                      ;; caused in `hs-forward-sexp'.
+                      (b-end (catch 'hs-indicator-error
+                               (save-excursion
+                                 (goto-char b-beg)
+                                 (condition-case _
+                                     (funcall hs-forward-sexp-function 1)
+                                   (scan-error (throw 'hs-indicator-error nil)))
+                                 (point))))
+                      ;; Check if block is longer than 1 line.
+                      (_ (hs-hideable-region-p b-beg b-end)))
+            (hs--make-indicators-overlays b-beg)
+            (setq exit t)))))
+    ;; Only 1 indicator per line
+    (forward-line))
   `(jit-lock-bounds ,beg . ,end))
 
 (defun hs--refresh-indicators (from to)
@@ -1147,18 +1152,13 @@ hs-already-hidden-p
   "Return non-nil if point is in an already-hidden block, otherwise nil."
   (save-excursion
     (let ((c-reg (funcall hs-inside-comment-predicate)))
-      (if (and c-reg (nth 0 c-reg))
-          ;; point is inside a comment, and that comment is hideable
-          (goto-char (nth 0 c-reg))
-        (when (not c-reg)
-          (end-of-line)
-          (when (not (hs-find-block-beginning-match))
-            ;; We should also consider ourselves "in" a hidden block when
-            ;; point is right at the edge after a hidden block (bug#52092).
-            (beginning-of-line)
-            (hs-find-block-beginning-match)))))
-    (end-of-line)
-    (eq 'hs (get-char-property (point) 'invisible))))
+      (when (and c-reg (nth 0 c-reg))
+        ;; point is inside a comment, and that comment is hideable
+        (goto-char (nth 0 c-reg))))
+    ;; Search for a hidden block at EOL ...
+    (or (eq 'hs (get-char-property (line-end-position) 'invisible))
+        ;; ... or behind the current cursor position
+        (eq 'hs (get-char-property (1- (point)) 'invisible)))))
 
 ;; This function is not used anymore (Bug#700).
 (defun hs-c-like-adjust-block-beginning (initial)
@@ -1240,8 +1240,7 @@ hs-hide-block
 `hs-hide-hook' is run.  See documentation for `run-hooks'."
   (interactive "P")
   (hs-life-goes-on
-   (let ((c-reg (funcall hs-inside-comment-predicate))
-         (pos (point)))
+   (let ((c-reg (funcall hs-inside-comment-predicate)))
      (cond
       ((and c-reg (or (null (nth 0 c-reg))
                       (not (hs-hideable-region-p (car c-reg) (nth 1 c-reg)))))
@@ -1249,25 +1248,26 @@ hs-hide-block
 
       (c-reg (hs-hide-block-at-point end c-reg))
 
-      ((or (and (eq hs-hide-block-behavior 'after-bol)
-                (setq pos (point))
-                (goto-char (line-beginning-position))
-                (catch 'hs--exit-hide
-                  (while (and (funcall hs-find-next-block-function
-                                       hs-block-start-regexp
-                                       (line-end-position) nil)
-                              (save-excursion
-                                (goto-char (match-beginning 0))
-                                (if (hs-hideable-region-p)
-                                    (throw 'hs--exit-hide t)
-                                  t)))))
-                (goto-char (match-beginning 0)))
-           (and (goto-char pos)
-                (funcall hs-looking-at-block-start-predicate)))
-       (hs-hide-block-at-point end))
-
-      ((and (goto-char (line-beginning-position))
-            (funcall hs-find-block-beginning-function))
+      ((save-excursion
+         (and (eq hs-hide-block-behavior 'after-bol)
+              (goto-char (line-beginning-position))
+              (let (exit)
+                (while (and (not exit)
+                            (funcall hs-find-next-block-function
+                                     hs-block-start-regexp
+                                     (line-end-position) nil)
+                            (save-excursion
+                              (goto-char (match-beginning 0))
+                              (if (hs-hideable-region-p)
+                                  (setq exit t)
+                                t))))
+                exit)
+              (goto-char (match-beginning 0))
+              (hs-hide-block-at-point end))))
+
+      ((or (funcall hs-looking-at-block-start-predicate)
+           (and (goto-char (line-beginning-position))
+                (funcall hs-find-block-beginning-function)))
        (hs-hide-block-at-point end)))
 
      (run-hooks 'hs-hide-hook))))
-- 
2.51.1


--=-=-=
Content-Type: text/plain



-- 
- E.G via Gnus and Org.

--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79810; Package emacs. Full text available.

Message received at 79810 <at> debbugs.gnu.org:


Received: (at 79810) by debbugs.gnu.org; 13 Nov 2025 18:24:40 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Nov 13 13:24:39 2025
Received: from localhost ([127.0.0.1]:56352 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vJbzr-0004aE-MI
	for submit <at> debbugs.gnu.org; Thu, 13 Nov 2025 13:24:39 -0500
Received: from mout-p-102.mailbox.org ([2001:67c:2050:0:465::102]:48564)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1vJbzp-0004a2-RS
 for 79810 <at> debbugs.gnu.org; Thu, 13 Nov 2025 13:24:38 -0500
Received: from smtp102.mailbox.org (smtp102.mailbox.org [10.196.197.102])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by mout-p-102.mailbox.org (Postfix) with ESMTPS id 4d6pZf5YsDz9tWX;
 Thu, 13 Nov 2025 19:24:26 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; 
 t=1763058266;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 in-reply-to:in-reply-to:references:references;
 bh=6X9Xcok2NfR+8jRJOrGBi+1zY0asIPY3SxQUd/bzMdU=;
 b=Y4gRfTId2UQCPjDpDjQtPxnGKLw0EU7hWI+55Dv/T5dqkzHCJF9CmfUMGG6guHAQngAGws
 8Arlp0rvgckpzn7YYiGeW6KKtAb6Xa4xps/WvBKD5vVj4rzt5sHfTPxMd/5/sGlWNN3daz
 ptNTZ/9nsE/JyE8Zhga7mcYqbpC5o6MAR+JS/twjCpB64Mp4IVbhxoWetaapmSu3eToHH3
 Ri0KD0MWTqIH+3TfZwqkRPAz2r0vGVl4K/rq+lhPPQVmNVptUTm7QPvM33hnCOSh5lLCbi
 R1cF6xRUyUPz/w26ziS1E78NR8MHuqQpLlw3mq+hgsV+rKzRMdGQF8NU71Rnzw==
From: Juri Linkov <juri@HIDDEN>
To: Elijah Gabe =?iso-8859-1?Q?P=E9rez?= <eg642616@HIDDEN>
Subject: Re: bug#79810: hideshow: Indicators missing for same-line multi-blocks
In-Reply-To: <87a50rgnj0.fsf@HIDDEN>
Organization: LINKOV.NET
References: <87tsz1k9z7.fsf@HIDDEN> <871pm5wnjq.fsf@HIDDEN>
 <87ms4s378g.fsf@HIDDEN> <87y0occpe8.fsf@HIDDEN>
 <s4sms4r27s4.fsf@HIDDEN> <87a50rgnj0.fsf@HIDDEN>
Date: Thu, 13 Nov 2025 20:23:24 +0200
Message-ID: <87jyztpzab.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 79810
Cc: 79810 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

> I've updated the patch:

I tested the patch and noticed only one small problem:
when point is on this line:

    ~H"""

then hs-toggle-hiding hides it, but another hs-toggle-hiding doesn't show it again.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79810; Package emacs. Full text available.

Message received at 79810 <at> debbugs.gnu.org:


Received: (at 79810) by debbugs.gnu.org; 12 Nov 2025 17:37:53 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Nov 12 12:37:53 2025
Received: from localhost ([127.0.0.1]:50415 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vJEn2-0001RL-SF
	for submit <at> debbugs.gnu.org; Wed, 12 Nov 2025 12:37:53 -0500
Received: from mail-yw1-x1141.google.com ([2607:f8b0:4864:20::1141]:48188)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <eg642616@HIDDEN>)
 id 1vJEmz-0001RC-TZ
 for 79810 <at> debbugs.gnu.org; Wed, 12 Nov 2025 12:37:51 -0500
Received: by mail-yw1-x1141.google.com with SMTP id
 00721157ae682-71d71bcab6fso10892727b3.0
 for <79810 <at> debbugs.gnu.org>; Wed, 12 Nov 2025 09:37:49 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1762969064; x=1763573864; darn=debbugs.gnu.org;
 h=mime-version:user-agent:message-id:date:references:in-reply-to
 :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to;
 bh=IUqO/qDjLxhYbfWFMGu2lDD/7k+nrzapLC8f9qPc/do=;
 b=Bscse+GtqSWzoB24XMqeuhhL3Q7JlDNgVFNYvmYYylL9gdRpbRMEeTigPLblSnsgym
 mEc7BYgMLNoUh6ARNKv5YAQ2D0X1PmcQjUBuFUNg5sFpOKx4Dg5icSu7K7qZ58ZlxPAe
 pBjlYz6CjVO/CO84hPGpxDlsyzZkd11YZObRZ2SLv5DSTv8gQFrzvbf8K1BHnFwQZxPG
 t1EbLzn3DAqGB6qInK1gdBOqxFE16Hao5qwy+jVr8cl8wN9Wrrb8ceKnhK0OPxeC4l+9
 cxnsmC/2bQ8/M/7pqIFmTOgyvIG1Ig9gx7w6xXmNELWAOoXTXY76wdMN7w2Eqxw9YH3M
 TLVw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1762969064; x=1763573864;
 h=mime-version:user-agent:message-id:date:references:in-reply-to
 :subject:cc:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject
 :date:message-id:reply-to;
 bh=IUqO/qDjLxhYbfWFMGu2lDD/7k+nrzapLC8f9qPc/do=;
 b=OPuPnP62hd5h5UEr2n4h7TbUKU4ioRrITXS8KZyedrqkGNrUX2KrdcI/k5M20BDNR0
 712PGmxM+HPcSJ3NrG4EGhMbrURYPrtrGI6R8+FO14FedlCG/DV/9gErhlIJbKa4LDCN
 LIvsAe1BTbD3rFBaCo95Gy9tAH6x7AUZzPri0gaUIr6CSJ/AnrVsh2eYa3JlgB7CQrGK
 Gb+CFq1b7Kd916VZeOax9xaTEe5jxaYFABtexvZqJOXD6teKwe01Yc9HW2ddmWYXVcWU
 P1fiTqDe8y+dabsTBSa5U037DUx9s7qxCRn6Mkcw1cr1FnTvllHnZ4OkMGLzTOxivexB
 7nAA==
X-Gm-Message-State: AOJu0Yziq4eMzvbiREkfmwnygjHLAW3KA8opu4FDZVaZVCs2xP6tEBQM
 xHhAbGOYopQ5ShsFGx4mqsWh1XaytaYWYMRN8dE5zyVR/ol9THmLya3zgLJvkvei
X-Gm-Gg: ASbGncsFzzpwKGeUzm0dETtzIxMprWaZt4VdNeqsEruXvSVh7zrgbad1enbOKZLHwcu
 gVfqyC7d4nO61N3dRZf2r7nlnkmKyTxB1nLx3ceMhAA+PAJz8ZRk3kifqDw9kPx/otwCj3Rd/bH
 sl/LXTDoqgtf3wPphTBP4962imO/ldlMjW9RIdrVyAgUiDBHGdB8xE/KCnSPLBxIa/7rirO5v23
 Rn6Xoy612fLcfxspKLiXvj17tyEI0m2nJJRmDqDN6P90e4FaMTBEEf4un3UD7FiOSsyjkmH9TYt
 cyaYNCvOKZTQNwawnZPFXUQnkWckdPnMa5z6175pX4du2tV6Gf4TcW0E1p8HzTpfzRdIx1bfNXH
 u3w9MdWmagqecMJBgdJZVsGglotxwSAoxmlWEKO79m1fplnXbF/MjEy+hJLLTrOEO/eBO
X-Google-Smtp-Source: AGHT+IEgmDvSHdx1d0JOUAULTLviAhukPHXYnzUYZRfrZLGSxv09qjBp9bxpkxDcP0pWYkc8/Gbfjw==
X-Received: by 2002:a05:690c:45c6:b0:786:91ac:e16b with SMTP id
 00721157ae682-7881361594bmr33019387b3.9.1762969063887; 
 Wed, 12 Nov 2025 09:37:43 -0800 (PST)
Received: from fedora ([189.215.165.71]) by smtp.gmail.com with ESMTPSA id
 00721157ae682-787d6845d4dsm44542827b3.15.2025.11.12.09.37.42
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Wed, 12 Nov 2025 09:37:43 -0800 (PST)
From: =?utf-8?Q?Elijah_Gabe_P=C3=A9rez?= <eg642616@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
Subject: Re: bug#79810: hideshow: Indicators missing for same-line multi-blocks
In-Reply-To: <s4sms4r27s4.fsf@HIDDEN>
References: <87tsz1k9z7.fsf@HIDDEN> <871pm5wnjq.fsf@HIDDEN>
 <87ms4s378g.fsf@HIDDEN> <87y0occpe8.fsf@HIDDEN>
 <s4sms4r27s4.fsf@HIDDEN>
Date: Wed, 12 Nov 2025 11:37:39 -0600
Message-ID: <87a50rgnj0.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Spam-Score: 0.3 (/)
X-Debbugs-Envelope-To: 79810
Cc: 79810 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

--=-=-=
Content-Type: text/plain

I've updated the patch:


--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment;
 filename=0001-hideshow-Fix-previous-changes.patch

From 52bb4eb53c66ef97e9b266e6a07e6246ad5d42a4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?El=C3=ADas=20Gabriel=20P=C3=A9rez?= <eg642616@HIDDEN>
Date: Wed, 12 Nov 2025 10:51:24 -0600
Subject: [PATCH] ; hideshow: Fix previous changes

* lisp/progmodes/hideshow.el (hs--add-indicators): Add the
indicators per line.
(hs-already-hidden-p, hs-hide-block): Simplify.
---
 lisp/progmodes/hideshow.el | 88 ++++++++++++++++++++------------------
 1 file changed, 46 insertions(+), 42 deletions(-)

diff --git a/lisp/progmodes/hideshow.el b/lisp/progmodes/hideshow.el
index 68be0d59abd..a295f6461b7 100644
--- a/lisp/progmodes/hideshow.el
+++ b/lisp/progmodes/hideshow.el
@@ -818,26 +818,31 @@ hs--add-indicators
   (goto-char beg)
   (remove-overlays beg end 'hs-indicator t)
 
-  (while (funcall hs-find-next-block-function hs-block-start-regexp end nil)
-    (when-let* ((b-beg (match-beginning 0))
-                (_ (save-excursion
-                     (goto-char b-beg)
-                     (funcall hs-looking-at-block-start-predicate)))
-                ;; `catch' is used here if the search fails due
-                ;; unbalanced parentheses or any other unknown error
-                ;; caused in `hs-forward-sexp'.
-                (b-end (catch 'hs-indicator-error
-                         (save-excursion
+  (while (not (>= (point) end))
+    (save-excursion
+      (let (exit)
+        (while (and (not exit)
+                    (funcall hs-find-next-block-function hs-block-start-regexp (pos-eol) nil))
+          (when-let* ((b-beg (match-beginning 0))
+                      (_ (save-excursion
                            (goto-char b-beg)
-                           (condition-case _
-                               (funcall hs-forward-sexp-function 1)
-                             (scan-error (throw 'hs-indicator-error nil)))
-                           (point))))
-                ;; Check if block is longer than 1 line.
-                (_ (hs-hideable-region-p b-beg b-end)))
-      ;; Only 1 indicator per line
-      (when (hs--make-indicators-overlays b-beg)
-        (forward-line))))
+                           (funcall hs-looking-at-block-start-predicate)))
+                      ;; `catch' is used here if the search fails due
+                      ;; unbalanced parentheses or any other unknown error
+                      ;; caused in `hs-forward-sexp'.
+                      (b-end (catch 'hs-indicator-error
+                               (save-excursion
+                                 (goto-char b-beg)
+                                 (condition-case _
+                                     (funcall hs-forward-sexp-function 1)
+                                   (scan-error (throw 'hs-indicator-error nil)))
+                                 (point))))
+                      ;; Check if block is longer than 1 line.
+                      (_ (hs-hideable-region-p b-beg b-end)))
+            (hs--make-indicators-overlays b-beg)
+            (setq exit t)))))
+    ;; Only 1 indicator per line
+    (forward-line))
   `(jit-lock-bounds ,beg . ,end))
 
 (defun hs--refresh-indicators (from to)
@@ -1157,8 +1162,7 @@ hs-already-hidden-p
             ;; point is right at the edge after a hidden block (bug#52092).
             (beginning-of-line)
             (hs-find-block-beginning-match)))))
-    (end-of-line)
-    (eq 'hs (get-char-property (point) 'invisible))))
+    (eq 'hs (get-char-property (line-end-position) 'invisible))))
 
 ;; This function is not used anymore (Bug#700).
 (defun hs-c-like-adjust-block-beginning (initial)
@@ -1240,8 +1244,7 @@ hs-hide-block
 `hs-hide-hook' is run.  See documentation for `run-hooks'."
   (interactive "P")
   (hs-life-goes-on
-   (let ((c-reg (funcall hs-inside-comment-predicate))
-         (pos (point)))
+   (let ((c-reg (funcall hs-inside-comment-predicate)))
      (cond
       ((and c-reg (or (null (nth 0 c-reg))
                       (not (hs-hideable-region-p (car c-reg) (nth 1 c-reg)))))
@@ -1249,25 +1252,26 @@ hs-hide-block
 
       (c-reg (hs-hide-block-at-point end c-reg))
 
-      ((or (and (eq hs-hide-block-behavior 'after-bol)
-                (setq pos (point))
-                (goto-char (line-beginning-position))
-                (catch 'hs--exit-hide
-                  (while (and (funcall hs-find-next-block-function
-                                       hs-block-start-regexp
-                                       (line-end-position) nil)
-                              (save-excursion
-                                (goto-char (match-beginning 0))
-                                (if (hs-hideable-region-p)
-                                    (throw 'hs--exit-hide t)
-                                  t)))))
-                (goto-char (match-beginning 0)))
-           (and (goto-char pos)
-                (funcall hs-looking-at-block-start-predicate)))
-       (hs-hide-block-at-point end))
-
-      ((and (goto-char (line-beginning-position))
-            (funcall hs-find-block-beginning-function))
+      ((save-excursion
+         (and (eq hs-hide-block-behavior 'after-bol)
+              (goto-char (line-beginning-position))
+              (let (exit)
+                (while (and (not exit)
+                            (funcall hs-find-next-block-function
+                                     hs-block-start-regexp
+                                     (line-end-position) nil)
+                            (save-excursion
+                              (goto-char (match-beginning 0))
+                              (if (hs-hideable-region-p)
+                                  (setq exit t)
+                                t))))
+                exit)
+              (goto-char (match-beginning 0))
+              (hs-hide-block-at-point end))))
+
+      ((or (funcall hs-looking-at-block-start-predicate)
+           (and (goto-char (line-beginning-position))
+                (funcall hs-find-block-beginning-function)))
        (hs-hide-block-at-point end)))
 
      (run-hooks 'hs-hide-hook))))
-- 
2.51.1


--=-=-=
Content-Type: text/plain


-- 
- E.G via Gnus and Org.

--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79810; Package emacs. Full text available.

Message received at 79810 <at> debbugs.gnu.org:


Received: (at 79810) by debbugs.gnu.org; 12 Nov 2025 04:29:43 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 11 23:29:43 2025
Received: from localhost ([127.0.0.1]:47975 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vJ2UI-0005FL-MW
	for submit <at> debbugs.gnu.org; Tue, 11 Nov 2025 23:29:43 -0500
Received: from mail-ot1-x343.google.com ([2607:f8b0:4864:20::343]:60509)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <eg642616@HIDDEN>)
 id 1vJ2UG-0005F7-LG
 for 79810 <at> debbugs.gnu.org; Tue, 11 Nov 2025 23:29:41 -0500
Received: by mail-ot1-x343.google.com with SMTP id
 46e09a7af769-7c704bf2d9eso209744a34.0
 for <79810 <at> debbugs.gnu.org>; Tue, 11 Nov 2025 20:29:40 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1762921774; x=1763526574; darn=debbugs.gnu.org;
 h=mime-version:user-agent:message-id:date:references:in-reply-to
 :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to;
 bh=f9xlXkOCAZrqIUlDpxEl7Dqq7mOdub3xssnSzwN2fdc=;
 b=JplgAl1QY1KDl9mR3cjreqbMbMVMLLKDGr0Pw53yZ53QwQtxgPj0jjjrl6sgNqdpqg
 3+EPmbGtJxKernD3Z0BW8hqJEbH6HvHCLwMUBDb5VF3tZiaMF4/tIEMH2yyKMAdHln4S
 +hi1REmO2fVJwW/3f+AigXu1VksrsNmmRK1lDEdbicwh/2e41ouN74jLC/O3jahoI0rZ
 b8jbYyfrnMx79LjM5/wNHSBBF0wA22vOde+fsCO+BSd0ZdGH52jSIbI6bgFg3LGsH1GY
 btzMGtLZlSWtaxNST9L4Z2FUvRbsJ4oR1zXyFlGtn+zaCkBRwXIlNv18oA3G9WHxJCTC
 1qIA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1762921774; x=1763526574;
 h=mime-version:user-agent:message-id:date:references:in-reply-to
 :subject:cc:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject
 :date:message-id:reply-to;
 bh=f9xlXkOCAZrqIUlDpxEl7Dqq7mOdub3xssnSzwN2fdc=;
 b=YWO13sNKWzPh4UlodtEwS9Z5BVwAyHRehazSMyOPvBz3ujGDoB+nV3JnJG/Nj2nFMh
 UcUF0mo/6El74VkfTzFLb8+rMPmEhNMyllRp1ee0hYwj7hD1+LJdJWfYU8/RX1Ehm5h/
 ZBvyWiwnIF/a/ZR/BFeNGFPl00yER2Mi0xY8NjmoHFjXxOu7oE4TGnp73O4ydfIlTROs
 oYAPyu30VhEVmpOc9o5b3jDy8yt2khQrM0LRD/iFWyunkEX9d21BZkdY3yq4HrIrATaV
 Ezh7DdgOzjHClb5WqT86sZ7RwEGg6F1osMdKGL0NU4BXMCLPj3YuAxpn1/3W3Y6Uu3yd
 GSTw==
X-Gm-Message-State: AOJu0YzIRbYY9zdrGdhQNtBpC6F+6Rte8MzYT/TsC4ll0piPNyuWrS4j
 AzkWKDSV7e6crgYfly9w0IRqS6GX+pA45Ge0Qnk5n0bX7m17tn+m05qMRmbfKG4X
X-Gm-Gg: ASbGncsywp5hn2jxS4l362lybJMlAzemXYQ4GFcT3zI6kvL3k/DRtTrEBh8UZnPg2r+
 N+tGx3SXqqMjAMuKNjPspp5fFYueDdwkB79/e0GT6sPLHAuzZFW7tif8QMoBWKo4LlIK74NQD+U
 yxdFXO/TxaYtumFIfYKgyb7X+PF78x6t+OBvjZ3YtWi8VjMQGUIltBhktMOZGMmV7BIhpqDsABT
 gFPY8b/027+CXMFo3dCHDiTsUvyCMCFwlO72AL+c76ZxX1tQynnUU/hw3h6wE2az7KlKlS8i/ZJ
 oGT+ldgtN09mO4EHHYRNwo+PgE1YkOaqlLSOfIoUPj3wG2KXVjJYAmf/2tsX5qFj1sajIvZesbM
 iQjFnEI8M467BGaSagnMcYstL+5yOu8s5TC0ib8+FaO4xgT6Hp2ioCYAKRuuyS/s1g20mKA==
X-Google-Smtp-Source: AGHT+IFiXWk/3cj/yEK2TrWOcD9NRFMSFNYsk3zMVSlYdNRRCFglJt1PZ47HkDKHSPdpwGa/FXerAA==
X-Received: by 2002:a05:6830:268c:b0:7c7:477:51d4 with SMTP id
 46e09a7af769-7c72e202794mr926252a34.13.1762921774398; 
 Tue, 11 Nov 2025 20:29:34 -0800 (PST)
Received: from localhost ([189.215.165.71]) by smtp.gmail.com with ESMTPSA id
 46e09a7af769-7c6f0f0a715sm8021031a34.4.2025.11.11.20.29.20
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 11 Nov 2025 20:29:33 -0800 (PST)
From: "Elijah G." <eg642616@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
Subject: Re: bug#79810: hideshow: Indicators missing for same-line multi-blocks
In-Reply-To: <87y0occpe8.fsf@HIDDEN> ("Elijah Gabe =?utf-8?Q?P=C3=A9rez?=
 =?utf-8?Q?=22's?= message of "Tue, 11 Nov 2025 13:58:39 -0600")
References: <87tsz1k9z7.fsf@HIDDEN> <871pm5wnjq.fsf@HIDDEN>
 <87ms4s378g.fsf@HIDDEN> <87y0occpe8.fsf@HIDDEN>
Date: Tue, 11 Nov 2025 22:29:15 -0600
Message-ID: <s4sms4r27s4.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.93
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 0.3 (/)
X-Debbugs-Envelope-To: 79810
Cc: 79810 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

Actually, that patch will not work well, because it will duplicate the
indicators for margins and EOL indicators.

Sadly, i cannot provide a better patch currently; so if you're going to
modify the patch, then this second while should exit after making the
indicators.

Something like this should be:

+    (let (exit)
+      (while (and (not exit)
+                  (funcall hs-find-next-block-function hs-block-start-regexp (pos-eol) nil))
+        (when-let* ((b-beg (match-beginning 0))
+                    (_ (save-excursion
+                         (goto-char b-beg)
+                         (funcall hs-looking-at-block-start-predicate)))
+                    ;; `catch' is used here if the search fails due
+                    ;; unbalanced parentheses or any other unknown error
+                    ;; caused in `hs-forward-sexp'.
+                    (b-end (catch 'hs-indicator-error
+                             (save-excursion
+                               (goto-char b-beg)
+                               (condition-case _
+                                   (funcall hs-forward-sexp-function 1)
+                                 (scan-error (throw 'hs-indicator-error nil)))
+                               (point))))
+                    ;; Check if block is longer than 1 line.
+                    (_ (hs-hideable-region-p b-beg b-end)))
+          (setq exit t)
+          (hs--make-indicators-overlays b-beg))))


-- 
- E.G via GNU Emacs Android port.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79810; Package emacs. Full text available.

Message received at 79810 <at> debbugs.gnu.org:


Received: (at 79810) by debbugs.gnu.org; 11 Nov 2025 19:58:52 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 11 14:58:52 2025
Received: from localhost ([127.0.0.1]:45752 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vIuVv-0002CF-Ty
	for submit <at> debbugs.gnu.org; Tue, 11 Nov 2025 14:58:52 -0500
Received: from mail-yx1-xb143.google.com ([2607:f8b0:4864:20::b143]:53348)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <eg642616@HIDDEN>)
 id 1vIuVs-0002Bt-Ky
 for 79810 <at> debbugs.gnu.org; Tue, 11 Nov 2025 14:58:49 -0500
Received: by mail-yx1-xb143.google.com with SMTP id
 956f58d0204a3-640f88b8613so106266d50.2
 for <79810 <at> debbugs.gnu.org>; Tue, 11 Nov 2025 11:58:48 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1762891123; x=1763495923; darn=debbugs.gnu.org;
 h=mime-version:user-agent:message-id:date:references:in-reply-to
 :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to;
 bh=wrcImwMjCru71ZOBHE1HucHk+78PmAebWkWbAjlssJI=;
 b=iks2VMOA/sAcSNQkyFS9xmMQnBfb1tTcP+hif4R001OQz0U1e06o5uaolGrIh8yeF7
 FHzt/XrKY8Dy256OWFe+16TaXPENTlsRpRgK4Dl3r0+Tf7NoRFWodV76u9BbmLMcBAtm
 uL0g3eYkC677WSJqnKvsAUrE2QUvAaUOXFa+/uo0DSJTOTnydm63a3T/geYJwQiXYQKh
 PBEywfSJniMHTnjFkocfEWPy1/0XXiWQpRhDY7y0uRD+k2rUVlivyT7X2xlQx2DEylT3
 +G9lfZt41slnXp/hZFrnVh1ZjSvN6/u7Z7rU+mYijBecCJ5/B7Zn73j0pjZsypcQw4N6
 j1dQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1762891123; x=1763495923;
 h=mime-version:user-agent:message-id:date:references:in-reply-to
 :subject:cc:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject
 :date:message-id:reply-to;
 bh=wrcImwMjCru71ZOBHE1HucHk+78PmAebWkWbAjlssJI=;
 b=wMc3S/4Gj948CamkSMSNdmKyTMmMe2CWyhBZAxkoExm3OsuQB8u7jp1PKDCnvAqpYc
 ELONun2mdABJoRGh6d43BYU6glCAO/AHgWwJatfDo4vMlf9Hn9abTL0/dWWdmHRkLISp
 eCLIrLflx3nVXkw40Wo6UU4o5zTkL5KuppExPrMqPUZYgS6F8MKg+4NYheRDu8hI58IQ
 pa7xSOuSdXcBJEPnmlc+N3RD8GZ2MyjKGXnour5lijYS4K1poV1AUEvE4aSGIpOiMHkU
 xRx2j9LZKrn8AHAQZdKP0JF03FIPgl1iExQzuNnYcKE7b59xFhEgFqhPvx8wFfSqJ8yd
 69vg==
X-Gm-Message-State: AOJu0Yya4wRJo0DoDG8xMVnAKwOVypJ0S3uRPa52EiVq5tByKopZIvRT
 k2uJ/IVlP2J9Ebw7JG0OGGxD1oQWjr2Hyx2QC/aPsuaCVFJGB/HQE9lSWTEOH9Gi
X-Gm-Gg: ASbGncs2opjuH+ytJ8Q1k77i6TbJFpGLs7WgdrOQsr8LEl7XjscJscR+5Fka6P5D0Nb
 /iD4MDo5KohxVbQxF8o5EXTITocebt/XcSd+YcGGRsQqZqzQDSsrvpZPq3xEtqwJPHhFMxmThyV
 JOBIhHs0uXguKimSciwDDADIdoHt7HYbMeC+oa4zOVo7npbOFZuufDXyhWGNuTyaLGk/N4qTaVJ
 ji7ZNGlNdOOlvqqXcVJlxzmKF/qvAyFnnoNsF2JtBZOlVOW9OjKDKchQdFm/SJW4AEQhb6qxknp
 m7x+3zx2frORWM6ABxMg/L8KCVfFGWutt4AbiiahlWxhve6QZpnrUg7sq1z5TG3PKo+ViFcprFI
 EWHyr+7eU2YaEE+T3wCw1qiFtNSB6FWiPJX4rg0kwSDOK4ffzk7xAMZ7NNij21/9bqiBU
X-Google-Smtp-Source: AGHT+IGGfEIrmIKPDaxHirDGc7dmyK4Hbg2KFmUuQ130rgVM9Wqflb9RS/z2yo3AXxGJuuxQTuAFJA==
X-Received: by 2002:a05:690e:8cb:b0:63f:baef:c4f with SMTP id
 956f58d0204a3-64101bb4fc6mr474172d50.63.1762891122635; 
 Tue, 11 Nov 2025 11:58:42 -0800 (PST)
Received: from fedora ([189.215.165.71]) by smtp.gmail.com with ESMTPSA id
 00721157ae682-787d6841eb8sm36370347b3.16.2025.11.11.11.58.41
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Tue, 11 Nov 2025 11:58:42 -0800 (PST)
From: =?utf-8?Q?Elijah_Gabe_P=C3=A9rez?= <eg642616@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
Subject: Re: bug#79810: hideshow: Indicators missing for same-line multi-blocks
In-Reply-To: <87ms4s378g.fsf@HIDDEN>
References: <87tsz1k9z7.fsf@HIDDEN> <871pm5wnjq.fsf@HIDDEN>
 <87ms4s378g.fsf@HIDDEN>
Date: Tue, 11 Nov 2025 13:58:39 -0600
Message-ID: <87y0occpe8.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Spam-Score: 0.3 (/)
X-Debbugs-Envelope-To: 79810
Cc: 79810 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

--=-=-=
Content-Type: text/plain

Juri Linkov <juri@HIDDEN> writes:

>> I found the bug, this patch should fix it:
>
> Something strange happens after applying this patch:
> all ts-modes work correctly, except elixir-ts-mode
> with embedded heex-ts-mode.  This screenshot shows
> the difference (on the left before applying the patch
> where all indicators are shown, and on the right
> after patch where there are only 3 indicators):
>
> x

I see what is happening, in `hs--add-indicators`, when the cursor reach
here:

  def greet(assigns) do
    ~H"""
    <p>Hello, {@name}!</p|>
                         ^

It jumps to the next tag instead of the function:

  ...
    <p>Hello, {@name}!</p>

  def unordered_list(assigns) do
    ~H"""
    |<ul>
    ^

Since `forward-line` is not called every time it finds a block, (and
`treesit-navigate-thing` only finds the same thing where the cursor is),
that is why this happens.

I fixed this by making it search for all possible blocks per line,
instead of relying on treesit-navigate-thing.  The code looks a bit ugly
(besides, this would be unnecessary for non-tree-sitter modes), so it
may need to be simplified.


--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment; filename=hs-indicator.patch

diff --git a/lisp/progmodes/hideshow.el b/lisp/progmodes/hideshow.el
index 68be0d59abd..3b6442a1735 100644
--- a/lisp/progmodes/hideshow.el
+++ b/lisp/progmodes/hideshow.el
@@ -818,26 +818,28 @@ hs--add-indicators
   (goto-char beg)
   (remove-overlays beg end 'hs-indicator t)
 
-  (while (funcall hs-find-next-block-function hs-block-start-regexp end nil)
-    (when-let* ((b-beg (match-beginning 0))
-                (_ (save-excursion
-                     (goto-char b-beg)
-                     (funcall hs-looking-at-block-start-predicate)))
-                ;; `catch' is used here if the search fails due
-                ;; unbalanced parentheses or any other unknown error
-                ;; caused in `hs-forward-sexp'.
-                (b-end (catch 'hs-indicator-error
-                         (save-excursion
-                           (goto-char b-beg)
-                           (condition-case _
-                               (funcall hs-forward-sexp-function 1)
-                             (scan-error (throw 'hs-indicator-error nil)))
-                           (point))))
-                ;; Check if block is longer than 1 line.
-                (_ (hs-hideable-region-p b-beg b-end)))
-      ;; Only 1 indicator per line
-      (when (hs--make-indicators-overlays b-beg)
-        (forward-line))))
+  (while (not (= (point) end))
+    (save-excursion
+      (while (funcall hs-find-next-block-function hs-block-start-regexp (pos-eol) nil)
+        (when-let* ((b-beg (match-beginning 0))
+                    (_ (save-excursion
+                         (goto-char b-beg)
+                         (funcall hs-looking-at-block-start-predicate)))
+                    ;; `catch' is used here if the search fails due
+                    ;; unbalanced parentheses or any other unknown error
+                    ;; caused in `hs-forward-sexp'.
+                    (b-end (catch 'hs-indicator-error
+                             (save-excursion
+                               (goto-char b-beg)
+                               (condition-case _
+                                   (funcall hs-forward-sexp-function 1)
+                                 (scan-error (throw 'hs-indicator-error nil)))
+                               (point))))
+                    ;; Check if block is longer than 1 line.
+                    (_ (hs-hideable-region-p b-beg b-end)))
+          (hs--make-indicators-overlays b-beg))))
+    ;; Only 1 indicator per line
+    (forward-line))
   `(jit-lock-bounds ,beg . ,end))
 
 (defun hs--refresh-indicators (from to)

--=-=-=
Content-Type: text/plain



-- 
- E.G via Gnus and Org.

--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79810; Package emacs. Full text available.

Message received at 79810 <at> debbugs.gnu.org:


Received: (at 79810) by debbugs.gnu.org; 11 Nov 2025 17:11:48 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 11 12:11:48 2025
Received: from localhost ([127.0.0.1]:44910 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vIruG-0004O3-H4
	for submit <at> debbugs.gnu.org; Tue, 11 Nov 2025 12:11:48 -0500
Received: from mout-p-101.mailbox.org ([80.241.56.151]:48676)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1vIruE-0004Nq-AU
 for 79810 <at> debbugs.gnu.org; Tue, 11 Nov 2025 12:11:47 -0500
Received: from smtp102.mailbox.org (smtp102.mailbox.org
 [IPv6:2001:67c:2050:b231:465::102])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by mout-p-101.mailbox.org (Postfix) with ESMTPS id 4d5Y3b5DPkz9tRt;
 Tue, 11 Nov 2025 18:11:39 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; 
 t=1762881099;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 in-reply-to:in-reply-to:references:references;
 bh=TOBQPua9XkLeLAqbOLsIo0+ycKQbMGx9ff5bDckVvfU=;
 b=Ca4mZcqAsejpnzrl+SSJ0aFuQfs5AlXREF/LOA84rh/VNthCtOYGrWHaoQtlA625IJAum6
 zJcrA9YvqLUrskdJdVkIdRw0nmPEf6cg1IHGP6/GLg/iRWnWE0ZFkl3Ne6m9Al7TxrL2Y4
 ao4ynGg6DkoO6/wqQ1mHq5GeGCGjgmaFqRUX/I1mHgqFfRWLSoVVMMpDDzQNcYB0Kfrwod
 2y9/+1U/LKJcpJhUGAACb49G14MyKj/kB0Nfm9MGnO2mUJPEUzABSD3/7MNXxgsEtgJqOm
 /ZaamPKsLsTUbsII+qIV6ShCd1cS2Z8/oGCOmW7WSLVQB0fGSbWRLM/5jXz+9A==
Authentication-Results: outgoing_mbo_mout; dkim=none;
 spf=pass (outgoing_mbo_mout: domain of juri@HIDDEN designates
 2001:67c:2050:b231:465::102 as permitted sender)
 smtp.mailfrom=juri@HIDDEN
From: Juri Linkov <juri@HIDDEN>
To: Elijah Gabe =?iso-8859-1?Q?P=E9rez?= <eg642616@HIDDEN>
Subject: Re: bug#79810: hideshow: Indicators missing for same-line multi-blocks
In-Reply-To: <871pm5wnjq.fsf@HIDDEN>
Organization: LINKOV.NET
References: <87tsz1k9z7.fsf@HIDDEN> <871pm5wnjq.fsf@HIDDEN>
Date: Tue, 11 Nov 2025 19:03:20 +0200
Message-ID: <87ms4s378g.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Rspamd-Queue-Id: 4d5Y3b5DPkz9tRt
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 79810
Cc: 79810 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

--=-=-=
Content-Type: text/plain

> I found the bug, this patch should fix it:

Something strange happens after applying this patch:
all ts-modes work correctly, except elixir-ts-mode
with embedded heex-ts-mode.  This screenshot shows
the difference (on the left before applying the patch
where all indicators are shown, and on the right
after patch where there are only 3 indicators):


--=-=-=
Content-Type: image/png
Content-Disposition: inline; filename=phoenix.png
Content-Transfer-Encoding: base64

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
--=-=-=
Content-Type: text/plain


The test file is attached below:


--=-=-=
Content-Type: application/octet-stream
Content-Disposition: attachment; filename=phoenix.ex
Content-Transfer-Encoding: base64

ZGVmbW9kdWxlIE15Q29tcG9uZW50IGRvCiAgIyBJbiBQaG9lbml4IGFwcHMsIHRoZSBsaW5lIGlz
IHR5cGljYWxseTogdXNlIE15QXBwV2ViLCA6aHRtbAogIHVzZSBQaG9lbml4LkNvbXBvbmVudAoK
ICBkZWYgZ3JlZXQoYXNzaWducykgZG8KICAgIH5IIiIiCiAgICA8cD5IZWxsbywge0BuYW1lfSE8
L3A+CiAgICAiIiIKICBlbmQKCiAgZGVmIHVub3JkZXJlZF9saXN0KGFzc2lnbnMpIGRvCiAgICB+
SCIiIgogICAgPHVsPgogICAgICA8bGkgOmZvcj17ZW50cnkgPC0gQGVudHJpZXN9PntyZW5kZXJf
c2xvdChAaW5uZXJfYmxvY2ssIGVudHJ5KX08L2xpPgogICAgPC91bD4KICAgICIiIgogIGVuZAoK
ICBkZWYgdGFibGUoYXNzaWducykgZG8KICAgIH5IIiIiCiAgICA8dGFibGU+CiAgICAgIDx0cj4K
ICAgICAgICA8dGggOmZvcj17Y29sIDwtIEBjb2x1bW59Pntjb2wubGFiZWx9PC90aD4KICAgICAg
PC90cj4KICAgICAgPHRyIDpmb3I9e3JvdyA8LSBAcm93c30+CiAgICAgICAgPHRkIDpmb3I9e2Nv
bCA8LSBAY29sdW1ufT57cmVuZGVyX3Nsb3QoY29sLCByb3cpfTwvdGQ+CiAgICAgIDwvdHI+CiAg
ICA8L3RhYmxlPgogICAgIiIiCiAgZW5kCmVuZAo=
--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79810; Package emacs. Full text available.
bug marked as fixed in version 31.0.50, send any further explanations to 79810 <at> debbugs.gnu.org and Juri Linkov <juri@HIDDEN> Request was from Juri Linkov <juri@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

Message received at 79810 <at> debbugs.gnu.org:


Received: (at 79810) by debbugs.gnu.org; 11 Nov 2025 07:41:30 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 11 02:41:30 2025
Received: from localhost ([127.0.0.1]:42993 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vIj0L-000722-Km
	for submit <at> debbugs.gnu.org; Tue, 11 Nov 2025 02:41:30 -0500
Received: from mout-p-101.mailbox.org ([80.241.56.151]:49922)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <juri@HIDDEN>)
 id 1vIj0E-00071U-8Q; Tue, 11 Nov 2025 02:41:22 -0500
Received: from smtp2.mailbox.org (smtp2.mailbox.org [10.196.197.2])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by mout-p-101.mailbox.org (Postfix) with ESMTPS id 4d5JPM6k6Sz9t74;
 Tue, 11 Nov 2025 08:41:11 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; 
 t=1762846871;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:cc:mime-version:mime-version:content-type:content-type:
 in-reply-to:in-reply-to:references:references;
 bh=2gzwYBlHSPnwY6Rs/0+n3ubF912/axf4RUOgUNYxgAg=;
 b=sQjDIx4fvj/tDap6ZfoRV3ybCSFISIzWGbbLpg7wQ27hMG5hMswzjSDH2rcoOHVFcnvNaL
 ClhiXC8DF/FmyNQMvyO/txKNKH7oAhjwiW1VTEgijXir79h1lhfFLmVgMzbOWw72QSsCs0
 +KRJb788E7/ehxPwnahcTf5wkk4hpkYeAoCKO+5S1e3A9j8DjZ8yopqdEz/3t9FxNrjXCd
 jXAw3UDdUBCZNVrdbjJgvwvMqQX/ET92Z8WEM7mEoV23YrgA+vS2/UCOh7yXLT71MjcCQU
 6W471BYJEalncJyeGAwIAnnwYnhe3D+0s1JLV9ni2a00hbniOiu2tyqY1bqmDg==
From: Juri Linkov <juri@HIDDEN>
To: Elijah Gabe =?iso-8859-1?Q?P=E9rez?= <eg642616@HIDDEN>
Subject: Re: bug#79810: hideshow: Indicators missing for same-line multi-blocks
In-Reply-To: <871pm5wnjq.fsf@HIDDEN>
Organization: LINKOV.NET
References: <87tsz1k9z7.fsf@HIDDEN> <871pm5wnjq.fsf@HIDDEN>
Date: Tue, 11 Nov 2025 09:39:20 +0200
Message-ID: <871pm5hvbr.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 79810
Cc: 79810 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

close 79810 31.0.50
thanks

> I found the bug, this patch should fix it:

Thanks for fixing this bug.  Now the patch is pushed.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79810; Package emacs. Full text available.

Message received at 79810 <at> debbugs.gnu.org:


Received: (at 79810) by debbugs.gnu.org; 10 Nov 2025 22:06:15 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Nov 10 17:06:15 2025
Received: from localhost ([127.0.0.1]:40435 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vIa1f-0001JF-2I
	for submit <at> debbugs.gnu.org; Mon, 10 Nov 2025 17:06:15 -0500
Received: from mail-oa1-x42.google.com ([2001:4860:4864:20::42]:56667)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.84_2) (envelope-from <eg642616@HIDDEN>)
 id 1vIa1a-0001Io-0Y
 for 79810 <at> debbugs.gnu.org; Mon, 10 Nov 2025 17:06:13 -0500
Received: by mail-oa1-x42.google.com with SMTP id
 586e51a60fabf-3d5bb03d5c2so2018868fac.1
 for <79810 <at> debbugs.gnu.org>; Mon, 10 Nov 2025 14:06:09 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=gmail.com; s=20230601; t=1762812364; x=1763417164; darn=debbugs.gnu.org;
 h=mime-version:user-agent:message-id:date:references:in-reply-to
 :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to;
 bh=K+aDgIikFG4xdKtURxIAMtVsYXgvZn8KkvKVw8rF5Jw=;
 b=RagJ0bUm59HzEV6mafBsCIYEhN2p407jdicE2AzXnXO/BPA6HDLd6rwDa1obdQUkxt
 X3rcHOtv+YpuLAzlMSWdPpQ5dpZOTPyVF9odyxuERKZvvcFJsnKff4iX+sovJ0qnWyvs
 2BnMUmeMcARpnvrIH0HWc5bw67oJ/YULPfbZ/tCYMQb5mWmFs7qVBHwdjOg9IA5J5/RD
 YJ1XZmlRCJs3gAMVQb10+Ha+PxeSaJFicltde7JYS+eFgisSu5xxLAbGf6O1EO5hEbd0
 kY1ngZ0aF8ULv+dOD7oBbSxpfMSkuu1bsR4SaxofLg4lN31/j5nhogzDpnWieZ7G2RN7
 N8rg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1762812364; x=1763417164;
 h=mime-version:user-agent:message-id:date:references:in-reply-to
 :subject:cc:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject
 :date:message-id:reply-to;
 bh=K+aDgIikFG4xdKtURxIAMtVsYXgvZn8KkvKVw8rF5Jw=;
 b=HuR/1bIAXN6jstfW6vpgyxKGwF9UpaubgXzFq+8wld5osiLKAuM4cF3wJlY9/mUgqP
 y0SXCPg2iuQSToJJ8j7lMjfra5VwvzQ4CfLEWBXH7e5cZN4IWxYLGhqPdyiv1bw8cMS7
 UZKadTevPvfurL/E9l1Bko9Kx7mY2jZpDyG64ikMEZP4N/6yZXuqSibNG0ryACp8xbC/
 cdHbsZrBgWu4kHCg/l5YL2Jdbpnsk6kwhGYxR1zeYBvhf9+mdv82vxwOy9w/9XsU5blU
 QD0TjDiYVq/RqcXIpC4AHg2INo8cwkGPUwBvq3b77nzImNrkhN/h7K05jxqK+OLYcNqI
 YtHg==
X-Gm-Message-State: AOJu0YwnwNYTsrawKJc2qQ2W52I8A+71is2QPyXvFiJBtgeNENy+LDTZ
 TpkdVfkJJp3ey03OjXagX/UmbvZ7X43zPMxnlRAdkUCLrlG5EI50qmd0u2b034fB
X-Gm-Gg: ASbGnctnHpexd8OAFF6VnpGg2N4ITu7+gGBbZteWjyf0ZzW6CufTTJrF2U+76qd9aO9
 jWnZCmC54YUTzvi+a9PlFp/uLT//FiMncaWNLx/5MpzDNayRCxXgXQSz+djf8D9FB22hDu5gUAe
 z37pkFgjPiij2anpmSpnGi9wboARvqQy5s9SfCBnYSImdceaY8c3eeedkbxntwadlxNDdiQthbN
 5A26KWjiAhCl3ARuOCKKNcyLAXWrcp7zu+a7T9Zd1HLocZRkhKrxQA6UFiEhr/e0JkqbEbibbGZ
 M87n4V/il11sGc8xR9oApnfOnugL943QdpF7TDTI8t/4JhCRSGZvCmFAHDUTGWp1tLLFt2GpxS1
 AHibIb9uGjqXUe1BCfnxCmaFLrdCb2Wbd+pxyonM6jU4sBlaM9StMKpKxuF9xEVgT5aI7HVZ6d3
 qy1LgbglSf4Bj94w==
X-Google-Smtp-Source: AGHT+IG39kFGVlIJUH15JbSxbfSoTue1eyn1j+bE3TIiT+aOZRu23d9qFxhHRllCG+l4pHxxDqoSIw==
X-Received: by 2002:a05:6870:71d5:b0:3d3:672f:85b with SMTP id
 586e51a60fabf-3e7c28b17c4mr5686364fac.51.1762812363696; 
 Mon, 10 Nov 2025 14:06:03 -0800 (PST)
Received: from fedora ([189.215.165.71]) by smtp.gmail.com with ESMTPSA id
 46e09a7af769-7c6f0b17f2fsm6273985a34.0.2025.11.10.14.06.02
 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
 Mon, 10 Nov 2025 14:06:03 -0800 (PST)
From: =?utf-8?Q?Elijah_Gabe_P=C3=A9rez?= <eg642616@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
Subject: Re: bug#79810: hideshow: Indicators missing for same-line multi-blocks
In-Reply-To: <87tsz1k9z7.fsf@HIDDEN>
References: <87tsz1k9z7.fsf@HIDDEN>
Date: Mon, 10 Nov 2025 16:06:01 -0600
Message-ID: <871pm5wnjq.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/31.0.50
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Spam-Score: 0.3 (/)
X-Debbugs-Envelope-To: 79810
Cc: 79810 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

--=-=-=
Content-Type: text/plain

Juri Linkov <juri@HIDDEN> writes:

> We have a problem in hideshow when a line contains more than 1 block.
>
> For example in c-ts-mode:
>
> #include <stdio.h>
> int main(int argc, char* argv[]) {
>   for (int i = 0; i < argc; i++) {
>     printf("%s\n", argv[i]);
>   }
>   return 0;
> }
>
> There is no hideshow indicator for the second line
> because the argument list is not hideable, so the 
> the opening bracket for the function body is ignored
> on the same line.
>
> When the curly bracket on the next line,
> then the indicator is shown:
>
> int main(int argc, char* argv[])
> {
>   for (int i = 0; i < argc; i++) {
>
> The same problem exists for go-ts-mode
> and other modes with similar syntax.

I found the bug, this patch should fix it:


--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment;
 filename=0001-hideshow-Fix-indicators-for-multiple-block-in-the-sa.patch

From e1874d86783f5a15b19a525c61aaa0f6f1740ed4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?El=C3=ADas=20Gabriel=20P=C3=A9rez?= <eg642616@HIDDEN>
Date: Mon, 10 Nov 2025 15:46:19 -0600
Subject: [PATCH] hideshow: Fix indicators for multiple block in the same line

bug#79810

* lisp/progmodes/hideshow.el (hs-hideable-region-p): Simplify.
(hs-block-positions): Change return value.
(hs--add-indicators): Go to the next line only if we have
successfully created the overlays.
(hs-hide-block-at-point, hs-hide-block): Update code.
---
 lisp/progmodes/hideshow.el | 58 ++++++++++++++++++++++----------------
 1 file changed, 34 insertions(+), 24 deletions(-)

diff --git a/lisp/progmodes/hideshow.el b/lisp/progmodes/hideshow.el
index af5d7a5b19e..06bc0c6e36d 100644
--- a/lisp/progmodes/hideshow.el
+++ b/lisp/progmodes/hideshow.el
@@ -678,11 +678,16 @@ hs-discard-overlays
         (delete-overlay ov))))
   (hs--refresh-indicators from to))
 
-(defun hs-hideable-region-p (beg end)
-  "Return t if region in BEG and END can be hidden."
+(defun hs-hideable-region-p (&optional beg end)
+  "Return t if region in BEG and END can be hidden.
+If BEG and END are not specified, it will try to check at the current
+block at point."
   ;; Check if BEG and END are not in the same line number,
   ;; since using `count-lines' is slow.
-  (< beg (save-excursion (goto-char end) (line-beginning-position))))
+  (if (and beg end)
+      (< beg (save-excursion (goto-char end) (line-beginning-position)))
+    (when-let* ((block (hs-block-positions)))
+      (apply #'hs-hideable-region-p block))))
 
 (defun hs-make-overlay (b e kind &optional b-offset e-offset)
   "Return a new overlay in region defined by B and E with type KIND.
@@ -724,7 +729,7 @@ hs-make-overlay
 
 (defun hs-block-positions ()
   "Return the current code block positions.
-This returns a cons-cell with the current code block beginning and end
+This returns a list with the current code block beginning and end
 positions.  This does nothing if there is not a code block at current
 point."
   (save-match-data
@@ -754,7 +759,7 @@ hs-block-positions
             (setq block-end
                   (or (funcall hs-adjust-block-end-function block-beg)
                       block-end)))
-          (cons block-beg block-end))))))
+          (list block-beg block-end))))))
 
 (defun hs--make-indicators-overlays (beg)
   "Helper function to make the indicators overlays."
@@ -824,9 +829,9 @@ hs--add-indicators
                            (point))))
                 ;; Check if block is longer than 1 line.
                 (_ (hs-hideable-region-p b-beg b-end)))
-      (hs--make-indicators-overlays b-beg))
-    ;; Only 1 indicator per line
-    (forward-line 1))
+      ;; Only 1 indicator per line
+      (when (hs--make-indicators-overlays b-beg)
+        (forward-line))))
   `(jit-lock-bounds ,beg . ,end))
 
 (defun hs--refresh-indicators (from to)
@@ -947,8 +952,8 @@ hs-hide-block-at-point
   (if comment-reg
       (hs-hide-comment-region (car comment-reg) (cadr comment-reg) end)
     (when-let* ((block (hs-block-positions)))
-      (let ((p (car-safe block))
-            (q (cdr-safe block))
+      (let ((p (car block))
+            (q (cadr block))
             ov)
         (if (hs-hideable-region-p p q)
             (progn
@@ -1229,7 +1234,8 @@ hs-hide-block
 `hs-hide-hook' is run.  See documentation for `run-hooks'."
   (interactive "P")
   (hs-life-goes-on
-   (let ((c-reg (funcall hs-inside-comment-predicate)))
+   (let ((c-reg (funcall hs-inside-comment-predicate))
+         (pos (point)))
      (cond
       ((and c-reg (or (null (nth 0 c-reg))
                       (not (hs-hideable-region-p (car c-reg) (nth 1 c-reg)))))
@@ -1238,20 +1244,24 @@ hs-hide-block
       (c-reg (hs-hide-block-at-point end c-reg))
 
       ((or (and (eq hs-hide-block-behavior 'after-bol)
-                (save-excursion
-                  (goto-char (line-beginning-position))
-                  (funcall hs-find-next-block-function hs-block-start-regexp
-                           (line-end-position) nil))
+                (setq pos (point))
+                (goto-char (line-beginning-position))
+                (catch 'hs--exit-hide
+                  (while (and (funcall hs-find-next-block-function
+                                       hs-block-start-regexp
+                                       (line-end-position) nil)
+                              (save-excursion
+                                (goto-char (match-beginning 0))
+                                (if (hs-hideable-region-p)
+                                    (throw 'hs--exit-hide t)
+                                  t)))))
                 (goto-char (match-beginning 0)))
-           (funcall hs-looking-at-block-start-predicate))
-       ;; If hiding the block fails (due the block is not hideable)
-       ;; then just hide the parent block (if possible)
-       (unless (save-excursion (hs-hide-block-at-point end))
-         (goto-char (1- (point)))
-         (funcall hs-find-block-beginning-function)
-         (hs-hide-block-at-point end)))
-
-      ((funcall hs-find-block-beginning-function)
+           (and (goto-char pos)
+                (funcall hs-looking-at-block-start-predicate)))
+       (hs-hide-block-at-point end))
+
+      ((and (goto-char (line-beginning-position))
+            (funcall hs-find-block-beginning-function))
        (hs-hide-block-at-point end)))
 
      (run-hooks 'hs-hide-hook))))
-- 
2.51.1


--=-=-=
Content-Type: text/plain



-- 
- E.G via Gnus and Org.

--=-=-=--




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#79810; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 10 Nov 2025 18:42:33 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Nov 10 13:42:33 2025
Received: from localhost ([127.0.0.1]:39238 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vIWqW-0001aB-TB
	for submit <at> debbugs.gnu.org; Mon, 10 Nov 2025 13:42:33 -0500
Received: from lists.gnu.org ([2001:470:142::17]:52036)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1vIWqT-0001Zz-JE
 for submit <at> debbugs.gnu.org; Mon, 10 Nov 2025 13:42:30 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <juri@HIDDEN>) id 1vIWpv-0002AS-Uw
 for bug-gnu-emacs@HIDDEN; Mon, 10 Nov 2025 13:42:00 -0500
Received: from mout-p-201.mailbox.org ([80.241.56.171])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_CHACHA20_POLY1305:256)
 (Exim 4.90_1) (envelope-from <juri@HIDDEN>) id 1vIWpt-0001Sb-TW
 for bug-gnu-emacs@HIDDEN; Mon, 10 Nov 2025 13:41:55 -0500
Received: from smtp2.mailbox.org (smtp2.mailbox.org [10.196.197.2])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
 (No client certificate requested)
 by mout-p-201.mailbox.org (Postfix) with ESMTPS id 4d4z614JPMz9v6q
 for <bug-gnu-emacs@HIDDEN>; Mon, 10 Nov 2025 19:41:45 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; 
 t=1762800105;
 h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
 to:to:cc:mime-version:mime-version:content-type:content-type;
 bh=1ILhbG6No0vlA92YfouYH3i+Q4Wvzk85t22c7t214mI=;
 b=MMy0aOT507ePtMFQj2E9SHCQUOyuDgD3NHTR+7L1FzLZKT+aol9ZKB84uGwv0jb0qbOynB
 4rrooGapQtc3c1QXujgVtZSmCni/cH5T4g1Vt0FPGGXEop4QEkbbIzYcf3ikIDeRUbc0i9
 LwQ8thBQKPmWsxwEReZnMteDmMjQ3WHC6ouRS7WhBSHJTSnEqV/4eiGKXW8Xg4ZkVbb50V
 v3VtsOPC64ZUKV7LbrStZ+bLN2bu6QpFABq3DytU0etPUJZnVPgy9aNbadSDVW4R03t3i/
 rjnhCGm2KLLI6SlSamZ44lOSFLhuMLJinpHHk+lshgDiLBjX4bAAWTMsdU5kvg==
From: Juri Linkov <juri@HIDDEN>
To: bug-gnu-emacs@HIDDEN
Subject: hideshow: Indicators missing for same-line multi-blocks
Organization: LINKOV.NET
X-Debbugs-Cc: Elijah Gabe =?iso-8859-1?Q?P=E9rez?= <eg642616@HIDDEN>
Date: Mon, 10 Nov 2025 20:39:56 +0200
Message-ID: <87tsz1k9z7.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
Received-SPF: pass client-ip=80.241.56.171; envelope-from=juri@HIDDEN;
 helo=mout-p-201.mailbox.org
X-Spam_score_int: -27
X-Spam_score: -2.8
X-Spam_bar: --
X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
 RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001,
 RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.0 (/)

We have a problem in hideshow when a line contains more than 1 block.

For example in c-ts-mode:

#include <stdio.h>
int main(int argc, char* argv[]) {
  for (int i = 0; i < argc; i++) {
    printf("%s\n", argv[i]);
  }
  return 0;
}

There is no hideshow indicator for the second line
because the argument list is not hideable, so the 
the opening bracket for the function body is ignored
on the same line.

When the curly bracket on the next line,
then the indicator is shown:

int main(int argc, char* argv[])
{
  for (int i = 0; i < argc; i++) {

The same problem exists for go-ts-mode
and other modes with similar syntax.




Acknowledgement sent to Juri Linkov <juri@HIDDEN>:
New bug report received and forwarded. Copy sent to eg642616@HIDDEN, bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to eg642616@HIDDEN, bug-gnu-emacs@HIDDEN:
bug#79810; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Fri, 14 Nov 2025 07:30:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.