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.
bug-gnu-emacs@HIDDEN:bug#79810; Package emacs.
Full text available.
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.
--=-=-=--
bug-gnu-emacs@HIDDEN:bug#79810; Package emacs.
Full text available.
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.
bug-gnu-emacs@HIDDEN:bug#79810; Package emacs.
Full text available.
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.
--=-=-=--
bug-gnu-emacs@HIDDEN:bug#79810; Package emacs.
Full text available.
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.
bug-gnu-emacs@HIDDEN:bug#79810; Package emacs.
Full text available.
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.
--=-=-=--
bug-gnu-emacs@HIDDEN:bug#79810; Package emacs.
Full text available.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= --=-=-=--
bug-gnu-emacs@HIDDEN:bug#79810; Package emacs.
Full text available.Juri Linkov <juri@HIDDEN>
to control <at> debbugs.gnu.org.
Full text available.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.
bug-gnu-emacs@HIDDEN:bug#79810; Package emacs.
Full text available.
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.
--=-=-=--
bug-gnu-emacs@HIDDEN:bug#79810; Package emacs.
Full text available.
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.
Juri Linkov <juri@HIDDEN>:eg642616@HIDDEN, bug-gnu-emacs@HIDDEN.
Full text available.eg642616@HIDDEN, bug-gnu-emacs@HIDDEN:bug#79810; Package emacs.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.