From debbugs-submit-bounces@debbugs.gnu.org Sat Aug 16 17:48:51 2025 Received: (at submit) by debbugs.gnu.org; 16 Aug 2025 21:48:51 +0000 Received: from localhost ([127.0.0.1]:43827 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1unOlf-0005mm-Eu for submit@debbugs.gnu.org; Sat, 16 Aug 2025 17:48:51 -0400 Received: from lists.gnu.org ([2001:470:142::17]:55164) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1unOld-0005mR-Mt for submit@debbugs.gnu.org; Sat, 16 Aug 2025 17:48:50 -0400 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 ) id 1unOlU-0006Yx-SB for bug-gnu-emacs@gnu.org; Sat, 16 Aug 2025 17:48:40 -0400 Received: from mail.linj.tech ([5.255.109.209]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1unOlP-0007UU-Lb for bug-gnu-emacs@gnu.org; Sat, 16 Aug 2025 17:48:38 -0400 From: Lin Jian DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linj.tech; s=mail; t=1755380905; 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; bh=xJlUt3ai2BfbuwL7NwqBI555OWwNmcuymz8nnaa+zeI=; b=J+2TRIPf4Z0igJ1JhkMJYuFZlb9V86enR6Xm8v/mnY7T6t5KEEVLor8WcSuaKly241vql4 pRzdSTX/ewgKndG7CJywATXi4kYEvKZlSwlqH9bWgQ+mY+VnsM63cGz87CbRudaz8edHVf 6+oPPVMXifAE9TMNf6QnWWkPpr8pNWQmDzWJioLjt7pEF3X28irVp6HTYTmFP3u/+tFFwG 3pS7eKIrZR/WY+fwAkdQh6dpe9PI5vfGtlc9hff8CDuIwCDqKCKH0uSuz6SIAQxmt/5AAF Hs6x8P46UeTRNCBg9BzPoKeE9YCRnmH3jEzYwD8GKzV4LbtT6La1fdp4gfz+IA== To: bug-gnu-emacs@gnu.org Subject: [PATCH] Fix arg doc off-by-one bug of eglot signature help Date: Sun, 17 Aug 2025 05:48:14 +0800 Message-ID: <878qjj5469.fsf@linj.tech> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=5.255.109.209; envelope-from=me@linj.tech; helo=mail.linj.tech X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.9 (/) X-Debbugs-Envelope-To: submit Cc: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.1 (/) --=-=-= Content-Type: text/plain Tags: patch `parlabel' is 0-indexed. Arguments of `substring' are also 0-indexed. No need to add 1 to `parlabel' before passing it to `substring'. --=-=-= Content-Type: text/patch Content-Disposition: attachment; filename=0001-Fix-arg-doc-off-by-one-bug-of-eglot-signature-help.patch >From 11328dd7a9d9777700b2682a3ce568e7a268d1a0 Mon Sep 17 00:00:00 2001 From: Lin Jian Date: Sun, 17 Aug 2025 05:03:46 +0800 Subject: [PATCH] Fix arg doc off-by-one bug of eglot signature help * lisp/progmodes/eglot.el (eglot--sig-info): Fix argument documentation off-by-one bug of eglot signature help. Copyright-paperwork-exempt: yes --- lisp/progmodes/eglot.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el index 4a7c525003c..0ddcb6cd09d 100644 --- a/lisp/progmodes/eglot.el +++ b/lisp/progmodes/eglot.el @@ -3736,7 +3736,7 @@ for which LSP on-type-formatting should be requested." (insert "\n " (propertize (if (stringp parlabel) parlabel - (apply #'substring siglabel (mapcar #'1+ parlabel))) + (apply #'substring siglabel (append parlabel nil))) 'face (and (eq i active-param) 'eldoc-highlight-function-argument)) ": " fpardoc))))) (buffer-string)))) -- 2.49.0 --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Sat Aug 16 18:01:43 2025 Received: (at submit) by debbugs.gnu.org; 16 Aug 2025 22:01:43 +0000 Received: from localhost ([127.0.0.1]:43862 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1unOy6-0006TQ-LS for submit@debbugs.gnu.org; Sat, 16 Aug 2025 18:01:42 -0400 Received: from lists.gnu.org ([2001:470:142::17]:50684) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1unOy3-0006T7-52 for submit@debbugs.gnu.org; Sat, 16 Aug 2025 18:01:40 -0400 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 ) id 1unOxx-0007uH-O9 for bug-gnu-emacs@gnu.org; Sat, 16 Aug 2025 18:01:33 -0400 Received: from mail-oo1-xc36.google.com ([2607:f8b0:4864:20::c36]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1unOxw-0000rY-3W for bug-gnu-emacs@gnu.org; Sat, 16 Aug 2025 18:01:33 -0400 Received: by mail-oo1-xc36.google.com with SMTP id 006d021491bc7-61bd4c45957so1591241eaf.1 for ; Sat, 16 Aug 2025 15:01:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1755381691; x=1755986491; darn=gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=hOV6Pk09yqXzbvkhB6wSdo4HgQ1+adigA+ncD/TMz7s=; b=gMDfXrGMr45PJ2uZWc5jekmoIrcgU7KuTqkibDTt3LOZHJthT4Zv1lmqOvKCTp6PNo gXKnt9f0IlKdDSOrNby691xlpef29TjWR1NmNW240rbNpNNjZqpe8yLDP3z6F1NV8Zqr KxfMV4ZjCMnbClCrargbzhHyswKL2OnQjsvNrOqIjiMNIVWBPBDHaakBebYFS58ewugR hA0NviJolf0gSMBIMgxewvIC5IAD4MNiefIoDceXGs3zrTYAKUSYUWd5yp32BzBT0rat 4D3Qu1JSleKv3sqV0yMhVPCHaqpTA/9/ew5a0k3CyZspFSkgU34YSYQZFR76Sc/6kNDm iE7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755381691; x=1755986491; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=hOV6Pk09yqXzbvkhB6wSdo4HgQ1+adigA+ncD/TMz7s=; b=bPcCj2r80heGrAiTrrM/vK2qaxeD1e+sUs4KrxzGD/IFLrHOZ4hkM7V1gMa9O9mkbo WZ4K/YGsUl/0Xq7AvEDiaYPyAvhZ1/K7ly8EVu2NQfKS679C1PsDTXCdcqJIfaQCxplB /y99cNHjhZYTDktVyNSz+vwrRb2gfTXlybfuSYjWn+DNb7VCCUdrwQN6HX8oaptciTp9 8QeaG6Gt3INxHM16LfaSCDFJbxDVfBO3GLlJillKUfVa/uZVqFFsAmhnI+NZlt8yr0QT 43XixS2DuGbXCNEgak1jrPQkrCNuPMVuLv82b+C0demEFor6XGUQODI02vlyXuGJGiFS xu1A== X-Gm-Message-State: AOJu0Yw1tGgyax5J3t7mQ0yEGIfP4KJ5gK++kkKh9Em3uI2pZbfB85Ug mguBYogVgM9bwgQ2Z5Cm0whMrS7IKvc0LNwY7+Ska5vZtQQJrNceoAkzm+oCGROlxVRWDb7ZiqI W/mQY2sXIQiwhiccNSce+KNCp/zaeB749BfnW X-Gm-Gg: ASbGncvBedtAY1ycPZzsK6Tzl5MGN6fnSm5zKBcbhPUKtNV12X7cxYQsWJf5lgYlL+W i7ERTRWZ7PyDtDd+PXH7ky4hegw+pIAIiXjiTSxnfNxruaVZyyNZT8uohGWNaZsagWkFJJyCKLX sEm+3b9TdPN6c72stzhx/fyIbHjafrEaig5Pq3I9dwmM+w95JqFZD9b8WNt5fucJQQgId5u8EeJ XrjPFPcOlg6HhuY1Q== X-Google-Smtp-Source: AGHT+IG/bjt0BUfC0NLZuLRKkvrOSAXbRef8u0sJfSybfn/eXmSXXBItx3OjkN+bdKnJNlh0/lW42ruDsRJKgKESUJU= X-Received: by 2002:a05:6820:2286:b0:61b:924a:b798 with SMTP id 006d021491bc7-61beab43b8emr3960184eaf.1.1755381690697; Sat, 16 Aug 2025 15:01:30 -0700 (PDT) MIME-Version: 1.0 References: <878qjj5469.fsf@linj.tech> In-Reply-To: <878qjj5469.fsf@linj.tech> From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= Date: Sat, 16 Aug 2025 23:02:22 +0100 X-Gm-Features: Ac12FXzM7c3m8-dZ4auS-gBielyTqCbCIY3BoukhjmEWNt5fFjhnV7Zw_dKAedg Message-ID: Subject: Re: [PATCH] Fix arg doc off-by-one bug of eglot signature help To: Lin Jian Content-Type: multipart/alternative; boundary="0000000000001e9872063c82a6fd" Received-SPF: pass client-ip=2607:f8b0:4864:20::c36; envelope-from=joaotavora@gmail.com; helo=mail-oo1-xc36.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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 Cc: bug-gnu-emacs@gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --0000000000001e9872063c82a6fd Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, Aug 16, 2025 at 10:48=E2=80=AFPM Lin Jian wrote: > Tags: patch > > `parlabel' is 0-indexed. Arguments of `substring' are also > 0-indexed. No need to add 1 to `parlabel' before passing it to > `substring'. > Thanks, but I (or whoever) added the 1+ there probably did so for a reason. Maybe they were mistaken, but you have to supply a reproduction recipe that demonstrates there's a problem with that, so we can check the before and after, else I could be fixing it for you and breaking it for someone else. Please see https://joaotavora.github.io/eglot/#Reporting-bugs-1 for how to report an Emacs -Q recipe (including a LSP server setup). Thanks, Jo=C3=A3o --0000000000001e9872063c82a6fd Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


On Sat, Aug 16,= 2025 at 10:48=E2=80=AFPM Lin Jian <me@linj.tech> wrote:
Tags: patch

`parlabel' is 0-indexed.=C2=A0 Arguments of `substring' are also 0-indexed.=C2=A0 No need to add 1 to `parlabel' before passing it to `substring'.

Thanks, but I (or whoever) = added the 1+ there probably did so for=C2=A0
a reason.=C2=A0=C2=A0

<= div class=3D"gmail_signature">Maybe they were mistaken, but you have to sup= ply a reproduction recipe
that demonstr= ates there's a problem with that, so we can check the=C2=A0
before and after, else I could be fixing it for yo= u and breaking it for
someone else.

P= lease see=C2=A0https://joaotavora.github.io/eglot/#Reporting-bugs-1 for how to=C2= =A0
report an Emacs -Q recipe (includin= g a LSP server setup).

Thanks,
Jo=C3= =A3o
--0000000000001e9872063c82a6fd-- From debbugs-submit-bounces@debbugs.gnu.org Sat Aug 16 18:48:02 2025 Received: (at submit) by debbugs.gnu.org; 16 Aug 2025 22:48:02 +0000 Received: from localhost ([127.0.0.1]:43946 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1unPgw-0000It-35 for submit@debbugs.gnu.org; Sat, 16 Aug 2025 18:48:02 -0400 Received: from lists.gnu.org ([2001:470:142::17]:38698) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1unPgr-0000IF-IQ for submit@debbugs.gnu.org; Sat, 16 Aug 2025 18:48:00 -0400 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 ) id 1unPgh-0005JT-7G for bug-gnu-emacs@gnu.org; Sat, 16 Aug 2025 18:47:51 -0400 Received: from mail.linj.tech ([5.255.109.209]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1unPge-0006Ag-R2 for bug-gnu-emacs@gnu.org; Sat, 16 Aug 2025 18:47:47 -0400 From: Lin Jian DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linj.tech; s=mail; t=1755384461; 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=tU+7/L/A4AQgvRK/7nL8/J3pHe+SZd8w/zDHIK0p9mM=; b=iK9GoDuFVLWCTsKi/6HPbjmGxZdyK0BVR7X1QvSE39qaV57S1s7IO276iMl3PycApOTN9W spunmlsFS4ATle3MxuvxHxeP+HL6r+f0rVRsgReShZtfJ+eJp3CRavGcJQ2BG0M87k4EMU odDzf/XOysFtaZslnpyUqjNAdgx792PcoQ9wA9WwtaRUz7LfzXbBguNAAnVgZrgJYG1KGg f6hSZJ6M87k9BSKnNS25XFDBrb1+0mkw8/4n9BVMjy4YPiqlSkHF2hroO40iFCAJBTJUjR NZ65Ov05bIhcKIn4xZqD/z5SW2dItcE1VXkT7IvTO1bcTAJQKf0gkVlWOHxRbA== To: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= Subject: Re: [PATCH] Fix arg doc off-by-one bug of eglot signature help In-Reply-To: (=?utf-8?Q?=22Jo=C3=A3o_T=C3=A1vora=22's?= message of "Sat, 16 Aug 2025 23:02:22 +0100") References: <878qjj5469.fsf@linj.tech> Date: Sun, 17 Aug 2025 06:47:38 +0800 Message-ID: <87349q6fzp.fsf@linj.tech> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=5.255.109.209; envelope-from=me@linj.tech; helo=mail.linj.tech X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.9 (/) X-Debbugs-Envelope-To: submit Cc: bug-gnu-emacs@gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.1 (/) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Jo=C3=A3o T=C3=A1vora writes: > Thanks, but I (or whoever) added the 1+ there probably did so for=20 > a reason.=20=20 It was added by you[1]. > Maybe they were mistaken, but you have to supply a reproduction recipe > that demonstrates there's a problem with that, so we can check the=20 > before and after, else I could be fixing it for you and breaking it for > someone else. I've reported some bugs and I'm familiar with (info "(emacs)Bugs"). I did not include a reproduction recipe in this report because I think it is trivial to reproduce: 1. use a LSP server supporting argument documentation in the signature help 2. get one signature help with argument documentation from eglot 3. see the highlight of argument documentation is off-by-one typescript-language-server is mentioned in the commit[1] adding `1+', so I guess it can be used for reproduction. I am developing[2] the signature help feature for haskell-language-server, which causes me to discover this off-by-one "bug". I added two screenshots before and after applying my patch as attachments. --=-=-= Content-Type: image/png Content-Disposition: attachment; filename=without-my-patch.png Content-Transfer-Encoding: base64 Content-Description: screentshot of arg doc in signature help without my patch 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 --=-=-= Content-Type: image/png Content-Disposition: attachment; filename=with-my-patch.png Content-Transfer-Encoding: base64 Content-Description: screentshot of arg doc in signature help with my patch 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 S6c2wzSWsAAAAABJRU5ErkJggg== --=-=-= Content-Type: text/plain Here is the transcript between eglot and my developing haskell-language-server: [jsonrpc] e[06:33:30.460] --> textDocument/signatureHelp[192] (:jsonrpc "2.0" :id 192 :method "textDocument/signatureHelp" :params (:textDocument (:uri "file:///home/linj/code/origin/hydra-scraper/src/TestHls.hs") :position (:line 107 :character 19))) [jsonrpc] e[06:33:30.471] <-- textDocument/signatureHelp[192] (:id 192 :jsonrpc "2.0" :result (:activeParameter 0 :activeSignature 0 :signatures [(:activeParameter 0 :documentation (:kind "markdown" :value "\n\nFun doc for `fsimple` .\n\n") :label "fsimple :: forall a. a -> Bool -> Char" :parameters [(:documentation (:kind "markdown" :value "\n\nThe first arg.\n\n") :label [21 22]) (:documentation (:kind "markdown" :value "\n\nThe second `Bool` arg.\n\n") :label [26 30])]) (:activeParameter 0 :documentation (:kind "markdown" :value "\n\nFun doc for `fsimple` .\n\n") :label "fsimple :: Integer -> Bool -> Char" :parameters [(:documentation (:kind "markdown" :value "\n\nThe first arg.\n\n") :label [11 18]) (:documentation (:kind "markdown" :value "\n\nThe second `Bool` arg.\n\n") :label [22 26])])])) > Please see https://joaotavora.github.io/eglot/#Reporting-bugs-1 for how to > report an Emacs -Q recipe (including a LSP server setup). Thanks for the link. I forgot to check that it before sending my report. I do not have time to provide more info now. I think the above information is probably enough for this bug. In particular, the above server reply of signature help should be enough for reproduction. If it is not the case, please let me know and I will provide more info later when I have time. [1]: e33c0a549153fa3894f3b5e9c5e42ce07a1a68c7 [2]: https://github.com/haskell/haskell-language-server/pull/4626 --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Sat Aug 30 04:04:59 2025 Received: (at 79259) by debbugs.gnu.org; 30 Aug 2025 08:04:59 +0000 Received: from localhost ([127.0.0.1]:44564 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1usGa1-0006y0-Q7 for submit@debbugs.gnu.org; Sat, 30 Aug 2025 04:04:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46424) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1usGZz-0006wx-Ho for 79259@debbugs.gnu.org; Sat, 30 Aug 2025 04:04:56 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1usGZt-0007Q0-IQ; Sat, 30 Aug 2025 04:04:49 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=J5srvvY1bSTBELJUloHsTAm9Tz4l5tf5HnzQ+OFGrYk=; b=Q9A2q7JayzsS37zFCej5 rTcAFy3pG/Qhwfuyxk39ckwemdckCX99qlLhGSy4dhKx8FIPz9B8U1sswBuIgtWUUx6iKTncvq19+ bpGrHFYMW6zQ90upKElQkz41unH+YduC70M4+H4IfyyHyHbN+1iCuQPnHCgXtgaHLKYasMM5EY+XL OENXMQSJIFQkzOFXxiZ0mPqwn8TsJTy0iHVmbxI5AoDeNqCw3WtAZD2XzlVKoDxfTeXcWsrWSFhQL URqoivGgKkGBFJE2x+PPFD9W/a9tCQ4844DELwXaT+bPmW3fCabDn9G8eAaW+vJv6QG9OMgwyYd8X Lhl6K1RzYJa6Gg==; Date: Sat, 30 Aug 2025 11:04:47 +0300 Message-Id: <86frd9qlpc.fsf@gnu.org> From: Eli Zaretskii To: joaotavora@gmail.com, Lin Jian In-Reply-To: <87349q6fzp.fsf@linj.tech> (bug-gnu-emacs@gnu.org) Subject: Re: bug#79259: [PATCH] Fix arg doc off-by-one bug of eglot signature help References: <878qjj5469.fsf@linj.tech> <87349q6fzp.fsf@linj.tech> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79259 Cc: 79259@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Cc: 79259@debbugs.gnu.org > Date: Sun, 17 Aug 2025 06:47:38 +0800 > From: Lin Jian via "Bug reports for GNU Emacs, > the Swiss army knife of text editors" > > João Távora writes: > > > Thanks, but I (or whoever) added the 1+ there probably did so for > > a reason. > > It was added by you[1]. > > > Maybe they were mistaken, but you have to supply a reproduction recipe > > that demonstrates there's a problem with that, so we can check the > > before and after, else I could be fixing it for you and breaking it for > > someone else. > > I've reported some bugs and I'm familiar with (info "(emacs)Bugs"). > > I did not include a reproduction recipe in this report because I think > it is trivial to reproduce: > > 1. use a LSP server supporting argument documentation in the signature > help > 2. get one signature help with argument documentation from eglot > 3. see the highlight of argument documentation is off-by-one > > typescript-language-server is mentioned in the commit[1] adding `1+', so > I guess it can be used for reproduction. > > I am developing[2] the signature help feature for > haskell-language-server, which causes me to discover this off-by-one > "bug". > > I added two screenshots before and after applying my patch as > attachments. > > > Here is the transcript between eglot and my developing > haskell-language-server: > > [jsonrpc] e[06:33:30.460] --> textDocument/signatureHelp[192] > (:jsonrpc "2.0" :id 192 :method "textDocument/signatureHelp" :params > (:textDocument > (:uri > "file:///home/linj/code/origin/hydra-scraper/src/TestHls.hs") > :position (:line 107 :character 19))) > [jsonrpc] e[06:33:30.471] <-- textDocument/signatureHelp[192] > (:id 192 :jsonrpc "2.0" :result > (:activeParameter 0 :activeSignature 0 :signatures > [(:activeParameter 0 :documentation > (:kind "markdown" :value > "\n\nFun doc for `fsimple` .\n\n") > :label > "fsimple :: forall a. a -> Bool -> Char" > :parameters > [(:documentation > (:kind "markdown" :value > "\n\nThe first arg.\n\n") > :label [21 22]) > (:documentation > (:kind "markdown" :value > "\n\nThe second `Bool` arg.\n\n") > :label [26 30])]) > (:activeParameter 0 :documentation > (:kind "markdown" :value > "\n\nFun doc for `fsimple` .\n\n") > :label > "fsimple :: Integer -> Bool -> Char" > :parameters > [(:documentation > (:kind "markdown" :value > "\n\nThe first arg.\n\n") > :label [11 18]) > (:documentation > (:kind "markdown" :value > "\n\nThe second `Bool` arg.\n\n") > :label [22 26])])])) > > > Please see https://joaotavora.github.io/eglot/#Reporting-bugs-1 for how to > > report an Emacs -Q recipe (including a LSP server setup). > > Thanks for the link. I forgot to check that it before sending my > report. > > I do not have time to provide more info now. > > I think the above information is probably enough for this bug. In > particular, the above server reply of signature help should be enough > for reproduction. If it is not the case, please let me know and I will > provide more info later when I have time. João, are you okay with the patch, given the additional information posted by Lin Jian? From debbugs-submit-bounces@debbugs.gnu.org Sat Aug 30 06:45:49 2025 Received: (at 79259-done) by debbugs.gnu.org; 30 Aug 2025 10:45:50 +0000 Received: from localhost ([127.0.0.1]:45414 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1usJ5f-0000Gn-2h for submit@debbugs.gnu.org; Sat, 30 Aug 2025 06:45:49 -0400 Received: from mail-wr1-x42d.google.com ([2a00:1450:4864:20::42d]:55513) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1usJ5b-0000Fb-2C for 79259-done@debbugs.gnu.org; Sat, 30 Aug 2025 06:45:44 -0400 Received: by mail-wr1-x42d.google.com with SMTP id ffacd0b85a97d-3c6abcfd142so1270944f8f.2 for <79259-done@debbugs.gnu.org>; Sat, 30 Aug 2025 03:45:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756550736; x=1757155536; darn=debbugs.gnu.org; h=content-transfer-encoding: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=NU1uRzCxPDovF6dStjVdCkvt6gTZBHZsUgEhMyhLHho=; b=YxO8gu4lHyaEPQq04/S97Tg1vH7enELJrzf154jtc5Szs2/OQnQE5OqOgDg0SUSVJ+ zgLtxvylsdqwZyMIor/vI+tp9dy1pRsuLpuW+ixL0J4UPzYAQLr2UgF+Lw/Itv8Ez0gJ sl0qplwuwR0YxE2jpBqHBt75wm4ExQ/+QTHyXVfdWHQvnGOsfazBhIYn+9U/pHTZXfEO bRdGTWbtr4YM4B4MdQO3jG5D6TYWZV1FGB63nzAfczR+32geir+zPtWuhOdlUIg5vSG9 2gGIo6aXW7Umjz18W34zuMxbz4cwm9mXh/Z7kZbAhY3KxtLyMCS9yJEVsg9YxYIQvf6t RiRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756550736; x=1757155536; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=NU1uRzCxPDovF6dStjVdCkvt6gTZBHZsUgEhMyhLHho=; b=nk366HcWvXeqP8DwLQ8xvnuAl0zxh/mSa8f0hcG1Os3FjRXBSNrl7MigDO4/mYArxT xQxgRrtvWOLtNgLEwNVd0Mis/2X50yHmQ1Zczw4SGSMW2EaldqAsAzTxdA7J5He9lDZi PtvlxdM3LQCAXovwSwyZBy2emB3cUD00ACDp+NmUHkhI85h43zMk783/iTf4JVaW6TuW JNNq8ur2+jpvvKVPQQUFsrX8Kqfm3Ns2f6qXpSofnmPkZyJVZKUYptK/SfFfn8XR9HAU rvag5ReYPJDjmVeIe+kW4IylCNo5oe4CqYkfYH+QgNo+habr9W8ZojkeS4GqlKYenl4j lJLg== X-Forwarded-Encrypted: i=1; AJvYcCWd6GR3/hjHW7qoUKcwnuOksF3I/3sUdwEgxDrMPEgd+vKara4DPsEqgi6T/C2nLaJvzX+fWX+T3O/v@debbugs.gnu.org X-Gm-Message-State: AOJu0YwaHdybpLzS2CrAuEQ+LJDAFllCoxoztb/mpTHRWlUd966k76bD O8tXawkcvBk0j8c5YL3Yr7+9+zJyenuE4WFT5sM7u1XRgDYJJCZJDQ/2idkej10y X-Gm-Gg: ASbGnctzCoaFO6JKJKTNaaMp4EONX78Ux/HlBWPkT/tHzbsbXxGgJUwN6JHOAznSlQ7 ounILvCjlOQAj94cw58p0QdtTkFnMucstzjN5jtJOSmg972IKbg8STAQqcQZXK/pd/hy/BqI8qF Q1wI70Qc3WV2SL7jB7K3GmXgXTOE26hWbj+LIurcAo4dJgQuMBXrqCeqGBuh1hxrbUax9HwCF0E /eUCnPZlOZ7n2YUrT2OsRZMbRiZ5AdKz9g4SjRzHPbFCtf600PZMI/LB96ljqKXlos5xJo5YxR1 2RUrlk19DsazbfXQdbgKZdF1fObiSr9c+BhBBd1rb/dmL2+k3geXle6zeY5IoGVhoQTYAt6JRHF 7f5Oc6Z6fBrX/BNbhAl4pWfA4EuHBfri1aRSpdTjw X-Google-Smtp-Source: AGHT+IG6496Sjp5uFceBZZFnIxjEnY8c6jDzwS+s0ms5GJPepaAgJBOXsZki4TUzOeelufdEJLYLiw== X-Received: by 2002:a05:6000:25c1:b0:3c4:f63a:787c with SMTP id ffacd0b85a97d-3d1dfa17506mr1236992f8f.40.1756550736290; Sat, 30 Aug 2025 03:45:36 -0700 (PDT) Received: from krug (a95-95-105-88.cpe.netcabo.pt. [95.95.105.88]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3cf340b3f6esm6660317f8f.54.2025.08.30.03.45.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 30 Aug 2025 03:45:35 -0700 (PDT) From: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= To: Eli Zaretskii Subject: Re: bug#79259: [PATCH] Fix arg doc off-by-one bug of eglot signature help In-Reply-To: <86frd9qlpc.fsf@gnu.org> References: <878qjj5469.fsf@linj.tech> <87349q6fzp.fsf@linj.tech> <86frd9qlpc.fsf@gnu.org> Date: Sat, 30 Aug 2025 11:46:42 +0100 Message-ID: <874itpm6i5.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79259-done Cc: Lin Jian , 79259-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Eli Zaretskii writes: > Jo=C3=A3o, are you okay with the patch, given the additional information > posted by Lin Jian? The patch is OK in spirit, but I think it can be made simpler. Anyway was added much ealier than e33c0a549153fa3894f3b5e9c5e42ce07a1a68c7, in this commit: commit 9cedae50a27f0d0d6adee82976654d63c9f67602 Date: Wed Jan 9 21:09:35 2019 +0000 =20=20=20=20 Handle label offsets in parameterinformation =20=20=20=20=20=20=20 At least ccls uses this. So, I think it's more likely thatn not that we will be breaking ccls, or at least the 2019 ccls. Is this number 0-indexed? Hard to say, reading https://microsoft.github.io/language-server-protocol/specifications/lsp/3.1= 7/specification/#textDocument_signatureHelp However, if it's not 0-indexed, it is 1-indexed at most. Therefore the use of '1+' to _add_ to the server-supplied number definitely looks wrong. Though, again, it is probably wrong to accomodate exactly 2019 ccls, one of the few servers at the time that used this exotic new feature. Anyway, I pushed a slightly simpler fix. I'm closing this issue. If the problem persists, we can reopen. Jo=C3=A3o From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 03 02:52:40 2025 Received: (at 79259-done) by debbugs.gnu.org; 3 Sep 2025 06:52:40 +0000 Received: from localhost ([127.0.0.1]:38036 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uthMF-0000hw-UU for submit@debbugs.gnu.org; Wed, 03 Sep 2025 02:52:40 -0400 Received: from mail.linj.tech ([5.255.109.209]:38928) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uthMD-0000hm-EN for 79259-done@debbugs.gnu.org; Wed, 03 Sep 2025 02:52:38 -0400 From: Lin Jian DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linj.tech; s=mail; t=1756882355; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=C+alLRXNJhk7G9/0jbWsuHItynVUd2oSUA1XYnhYLrM=; b=jDm/8xqEW+cioSFKwt1rgitG+TTV8/BNmBzoEaDRSkYjfMEkZvzDoLaY5Nh6z7nI9EUO2F ACDMQHQCNIpBT175W/BBEmRsQC5UrTPRJlf/ubVE4ZlSazYi9/HwfbJjDQepVVQ4A9lXId 3WamKLxg8Aqn/XAGJlhNhY4DNYd+RbuBOTLV+RKwIt8pHovbE2T7g/Ib+pUkLeNWpxQPje AulaDA2lKQyf397IgeRb+KqPQuwh539RlOCeTxOX7j3LGokiMCfj/1ELJi0u8M5nN5KhWE RI3uOCWwbO3XfesDLWSU40kPZiUpWOA2U285Bo20jzLo7zZUQrSVM+euAV6r1w== To: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= Subject: Re: bug#79259: [PATCH] Fix arg doc off-by-one bug of eglot signature help In-Reply-To: <874itpm6i5.fsf@gmail.com> (=?utf-8?Q?=22Jo=C3=A3o_T=C3=A1vor?= =?utf-8?Q?a=22's?= message of "Sat, 30 Aug 2025 11:46:42 +0100") References: <878qjj5469.fsf@linj.tech> <87349q6fzp.fsf@linj.tech> <86frd9qlpc.fsf@gnu.org> <874itpm6i5.fsf@gmail.com> Date: Wed, 03 Sep 2025 14:52:23 +0800 Message-ID: <87wm6gt4d4.fsf@linj.tech> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79259-done Cc: Eli Zaretskii , 79259-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Jo=C3=A3o T=C3=A1vora writes: > Is this number 0-indexed? Hard to say, reading > https://microsoft.github.io/language-server-protocol/specifications/lsp/3= .17/specification/#textDocument_signatureHelp I think it is 0-indexed. I have verified that using vscode and rust-analyzer. > Anyway, I pushed a slightly simpler fix. That slightly simpler "fix" changes an unrelated line of code. It introduces a new off-by-1 bug while keeping the off-by-1 bug my patch indents to fix unchanged. There are 3 things here: 1. `add-face-text-property' is 1-indexed 2. `substring' is 0-indexed 3. label offsets of ParameterInformation are 0-indexed My patch fixes the mis-match of 2 and 3, while the slightly simpler "fix" changes the correct match of 1 and 3. From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 03 03:19:59 2025 Received: (at 79259-done) by debbugs.gnu.org; 3 Sep 2025 07:19:59 +0000 Received: from localhost ([127.0.0.1]:38221 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uthmh-0004w3-7s for submit@debbugs.gnu.org; Wed, 03 Sep 2025 03:19:59 -0400 Received: from mail-wm1-x32b.google.com ([2a00:1450:4864:20::32b]:52615) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1uthmf-0004vn-22 for 79259-done@debbugs.gnu.org; Wed, 03 Sep 2025 03:19:58 -0400 Received: by mail-wm1-x32b.google.com with SMTP id 5b1f17b1804b1-45cb6d8f42cso434525e9.1 for <79259-done@debbugs.gnu.org>; Wed, 03 Sep 2025 00:19:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756883990; x=1757488790; darn=debbugs.gnu.org; h=content-transfer-encoding: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=QSi8sSqYcM84Tn1WJ27Zwtb/L62+0Z2HrIrPkvSUjf8=; b=JHhWZ8pbjCPqvRHWMo0oFAYOv3R31GMm6PCwF+q+s63L1/U5/U78QyZ5AxAZRqyn/9 QuZN0Oux4MZ8hR1rW5pbrb+QjsR8oZXPPbQqwBkUKpcH1PVyyiAbvXbPudleR7u9XCVi KNr/iU4vxm0LAEKVr/+DWyODq1o12H+cmZp6S2ce8nOV+llYXtjlE2LF7Sf+vvO+1POn XsFLocBZudGERgMHmGXYqZGoNTXw5DlYprR7KfTOxQA410lTiMJR19Ejf3hyTpOh5IDu ympOUVv3QvzGgSRmnfFWHQ6K9nWitqQ6GOv1EQZwwQfMT6kM8sdwDgo1hFjm3TYYJm40 5ftw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756883990; x=1757488790; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=QSi8sSqYcM84Tn1WJ27Zwtb/L62+0Z2HrIrPkvSUjf8=; b=hNGOLr7+NpGe/X63nBw7XriLkuyGY8mxeD7NsEGm1RfRcanC5by3j+rgHo21Ao3BKW dBeyvocY6zhXpMjoslD+THQgRhddTYPrN6pE6o+nrpuzsdp2cdoOs88RiTOTdWJcm0bI RUWmimUv4I1uu5Foi+7IKzNpOpBg4M/qkZy7swlvW577w2e02pOyzRCGjQkHVxpJwpsq gWK7mYaNlOTUVQcGxosqyYP78bmN5uZZlDzuWZSbWZ+6YWNkyZVi48qqdzQl0/UX+/3x W8xdXd2M0DX+to0UA19V4Lulngj1jXez3Rd7jcytwQZGJnWhmlwAcFxndFu86D5ANN+x vdzQ== X-Forwarded-Encrypted: i=1; AJvYcCVFld1PS7M0swXDoDA08jWRzM1bv6wR4doIG/MNwNXIRiefm2mwuwH4jc/Xb8T9Cd/y2NmO5RDzSjaw@debbugs.gnu.org X-Gm-Message-State: AOJu0Yz/9DgyU5skGVIjplosW1L6/iDc2qoGaTZvxAx6jqJks0QJA8UO ahJpcYEEAFcLzQi6O5J0j4uJ+18b4aKnHQqVTiPSgqQ30k4IiFZFZJTIGbX7tKam X-Gm-Gg: ASbGncsQgmdGrmDOMP0b1y3do9H23iCZjVWUrGX26LFHeODxTAMTEWsruZ0tUIv+i3T E5U6g+uVordGzYCy+nPRr3tIOd4QYv2FUz1btZA/32XFTJdpjyBm7Jreaem/d5eaVQfpmzJC/PP AtNpVvwNKm0Lb4mY5utOLfZEMk51VdWqeCfKDNNqg3qJ2DxQfRbgCGaKFwegtQnzQZdGjW7PAzn +Kxtmz8aLvbAV5GoCLMpMsMZvYSjha7LiidXmJDDzLw8T9YbeTxqdBriEIaP1DAQjA3TRpXY0Zy hPbgUdMBXG+jpEtjnylVEMvIXB1KIWQnkfot7ZEW/qvjdAVCjlBiBqyBeYwle7O/ZmD54ZPRrsF XLlEICa01vg7v9O20oFv7FTSdb/PYOR4y/2Ntinkr0rMf/5wnwBk= X-Google-Smtp-Source: AGHT+IEy6U8TB/Cp8+U2OWnZ/DrWQkvL5Bnm87MOoQyNjcn4A7ZmUhpH8SGAy2doS4BroJOf5KY9QQ== X-Received: by 2002:a05:600c:1f0e:b0:458:a7b5:9f6c with SMTP id 5b1f17b1804b1-45b855335a8mr121142105e9.11.1756883990317; Wed, 03 Sep 2025 00:19:50 -0700 (PDT) Received: from krug (87-196-80-201.net.novis.pt. [87.196.80.201]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-45b6f306c22sm313237995e9.13.2025.09.03.00.19.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Sep 2025 00:19:49 -0700 (PDT) From: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= To: Lin Jian Subject: Re: bug#79259: [PATCH] Fix arg doc off-by-one bug of eglot signature help In-Reply-To: <87wm6gt4d4.fsf@linj.tech> References: <878qjj5469.fsf@linj.tech> <87349q6fzp.fsf@linj.tech> <86frd9qlpc.fsf@gnu.org> <874itpm6i5.fsf@gmail.com> <87wm6gt4d4.fsf@linj.tech> Date: Wed, 03 Sep 2025 08:20:56 +0100 Message-ID: <87bjnsatnr.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79259-done Cc: Eli Zaretskii , 79259-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Lin Jian writes: >> Anyway, I pushed a slightly simpler fix. > > That slightly simpler "fix" changes an unrelated line of code. It > introduces a new off-by-1 bug while keeping the off-by-1 bug my patch > indents to fix unchanged. Thanks. You're right, I pushed another fix. > My patch fixes the mis-match of 2 and 3, while the slightly simpler > "fix" changes the correct match of 1 and 3. Should be taken care of now. BTW, what I meant by "slightly simpler" is that there's no need for tricks to transform vector to lists, just in case a misunderstanding of that is why you're quoting "slightly simpler fix" repeatedly. Jo=C3=A3o From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 03 03:49:20 2025 Received: (at 79259-done) by debbugs.gnu.org; 3 Sep 2025 07:49:20 +0000 Received: from localhost ([127.0.0.1]:38359 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1utiF6-00079I-2J for submit@debbugs.gnu.org; Wed, 03 Sep 2025 03:49:20 -0400 Received: from mail.linj.tech ([5.255.109.209]:54296) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1utiF3-000792-AJ for 79259-done@debbugs.gnu.org; Wed, 03 Sep 2025 03:49:18 -0400 From: Lin Jian DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linj.tech; s=mail; t=1756885755; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=rDzLKOqqeqdkR/pw4KmkA5ADuSFsPHZySEggehklXzM=; b=BNyUJ0k9ydWcjQ4N9cXTBagPF7K8v9stezV+GDz4ZFNhV07OVufJotbi0MXZPMZkS+iruu yRBYvjL3VEBd/FwcfgsRvJHz/8MFiF+FqRmNf3e/cbsFosYdkcmpJGhDn3LCxklv6HX+/q AYFbAwp0n4zUlP/ybYewUibm7fpW2RXrr9TAvrasADJrdcw3apbXGRTo8hqSFNG2DKuaci 3uMHmlX1p0km9II/7A5Kix+WNcvQE377LY/teVdfSYEd6nG7G8sV2398AZz8th/qJP8y5E 3IsY7OvWoJTEMxBoClVL1qdiYaZZCfqJ/UAE9DV2FrHUMfwiuFzFK8eOjPaOUw== To: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= Subject: Re: bug#79259: [PATCH] Fix arg doc off-by-one bug of eglot signature help In-Reply-To: <87bjnsatnr.fsf@gmail.com> (=?utf-8?Q?=22Jo=C3=A3o_T=C3=A1vor?= =?utf-8?Q?a=22's?= message of "Wed, 03 Sep 2025 08:20:56 +0100") References: <878qjj5469.fsf@linj.tech> <87349q6fzp.fsf@linj.tech> <86frd9qlpc.fsf@gnu.org> <874itpm6i5.fsf@gmail.com> <87wm6gt4d4.fsf@linj.tech> <87bjnsatnr.fsf@gmail.com> Date: Wed, 03 Sep 2025 15:49:12 +0800 Message-ID: <87qzwot1qf.fsf@linj.tech> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79259-done Cc: Eli Zaretskii , 79259-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Jo=C3=A3o T=C3=A1vora writes: > Thanks. You're right, I pushed another fix. Thanks. The new fix looks good. > BTW, what I meant by "slightly simpler" is > that there's no need for tricks to transform vector to lists I got the idea of the simplification. > just in > case a misunderstanding of that is why you're quoting "slightly simpler > fix" repeatedly. I just use that as a way to refer to the wrong fix. No other meanings.