From unknown Tue Jun 17 20:19:42 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#66041 <66041@debbugs.gnu.org> To: bug#66041 <66041@debbugs.gnu.org> Subject: Status: 30.0.50; Should 'flymake-note-echo' inherit from 'compilation-info'? Reply-To: bug#66041 <66041@debbugs.gnu.org> Date: Wed, 18 Jun 2025 03:19:42 +0000 retitle 66041 30.0.50; Should 'flymake-note-echo' inherit from 'compilation= -info'? reassign 66041 emacs submitter 66041 Jim Porter severity 66041 minor thanks From debbugs-submit-bounces@debbugs.gnu.org Sun Sep 17 00:42:43 2023 Received: (at submit) by debbugs.gnu.org; 17 Sep 2023 04:42:44 +0000 Received: from localhost ([127.0.0.1]:48859 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qhjcJ-00032O-G9 for submit@debbugs.gnu.org; Sun, 17 Sep 2023 00:42:43 -0400 Received: from lists.gnu.org ([2001:470:142::17]:43578) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qhjcD-000328-VE for submit@debbugs.gnu.org; Sun, 17 Sep 2023 00:42:42 -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 1qhjc0-0003h4-T0 for bug-gnu-emacs@gnu.org; Sun, 17 Sep 2023 00:42:25 -0400 Received: from mail-pf1-x429.google.com ([2607:f8b0:4864:20::429]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qhjbx-0000ZH-8h for bug-gnu-emacs@gnu.org; Sun, 17 Sep 2023 00:42:24 -0400 Received: by mail-pf1-x429.google.com with SMTP id d2e1a72fcca58-68cbbff84f6so3153904b3a.1 for ; Sat, 16 Sep 2023 21:42:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1694925739; x=1695530539; darn=gnu.org; h=content-transfer-encoding:to:subject:from:content-language :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=t0zDzylKaTWz2JzJYCLLuJ3WB0deWqEDQmUQ/MB9GJo=; b=bLrHRbUG1NdZ2kS9opntru1+SkjlJ5pB+Q4on6bQ80D4/uS3/en8buVPoKoigQW/7K 2haiRqLEcWk/rDCqCdhNwg5ApCHmQDOm5oHsatnUjv8d6H39BwEY5Vs6PxZvW9s9J+fY ei872BCGZBKmvvt64mJ4tj7ISf/t5QJIOywgwDgLMnB7abNrJl2kPap8iHxNjw0vf4ZP 3GqESJJ2XfcehuqXhqD58ACvzpOcSe56Ed42mUZmHjXBPj66fDJ3qIgl7F1DNJde9ayw 5PZVxW3Jws1G7mrlYhtN4gI4YX1Iihbzv9JLthX6SWTwCRbkaHdXSlfbWdWHqK7QT9t3 zk7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694925739; x=1695530539; h=content-transfer-encoding:to:subject:from:content-language :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=t0zDzylKaTWz2JzJYCLLuJ3WB0deWqEDQmUQ/MB9GJo=; b=rH7+4SggN+emd5/+VnoVD8cJj5Cmc9eVCcRA8fa70v6sonsFKFj+sh0wLL3TTZb23p dKD4st/7gRNRzHv3zM2od4mjrw3En7VGvJ+HOPU+kIeKvt0BLCmlCyYKUM7vDFerBVVm p9sjlO3eBN0+VpXGrdKPci5bcVmVPUyxmGq4omqpakVsUIuBgwsI9hZggBg1lscm6lSh gSU8HhqHS5S8AGe8a15nzxSBHYpy9hVVA1p/A+eUnZ7hPrsnl0JOKyMc/p5DNDcYEuM2 FXohBJCj/CioqSkRHlRf8eKYH+/Qod2NWy2eaZzZ0JkOCvJX8/kZOXuwLk5meFwcPDqc ZQ/g== X-Gm-Message-State: AOJu0YyDmBRET/5Arp5joxOrnppQapAX9Gwa+Lekh4qZTRG505cL/imB qGZCGDruyXf7jnyeti6ovhR2HAN/D0a8wg== X-Google-Smtp-Source: AGHT+IG56wJ/4rHcSZuUSiWqHIlX7ECEd+1+gHQYKdUpPA6r38fQ2riBnQyiweL3ELH0yOznK6fxYg== X-Received: by 2002:a05:6a20:72a3:b0:14d:e615:277c with SMTP id o35-20020a056a2072a300b0014de615277cmr7061550pzk.11.1694925739389; Sat, 16 Sep 2023 21:42:19 -0700 (PDT) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id ff16-20020a056a002f5000b0068fedfe01fesm5156396pfb.161.2023.09.16.21.42.18 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 16 Sep 2023 21:42:19 -0700 (PDT) Message-ID: <1f9e98be-3248-56cf-b7fd-8301666675c6@gmail.com> Date: Sat, 16 Sep 2023 21:42:14 -0700 MIME-Version: 1.0 X-Mozilla-News-Host: news://news.gmane.io:119 Content-Language: en-US From: Jim Porter Subject: 30.0.50; Should 'flymake-note-echo' inherit from 'compilation-info'? To: bug-gnu-emacs@gnu.org Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Received-SPF: pass client-ip=2607:f8b0:4864:20::429; envelope-from=jporterbugs@gmail.com; helo=mail-pf1-x429.google.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.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, FREEMAIL_REPLY=1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-Spam-Score: 2.0 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: X-Debbugs-Cc: joaotavora@gmail.com The faces 'flymake-error-echo' and 'flymake-warning-echo' inherit from 'compilation-error' and 'compilation-warning', respectively. However, 'flymake-note-echo' (and 'flymake-note-echo-at-eol') inheri [...] Content analysis details: (2.0 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (jporterbugs[at]gmail.com) -0.0 SPF_HELO_PASS SPF: HELO matches SPF record 1.0 SPF_SOFTFAIL SPF: sender does not match SPF record (softfail) 1.0 FREEMAIL_REPLY From and body contain different freemails X-Debbugs-Envelope-To: submit 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 (/) X-Debbugs-Cc: joaotavora@gmail.com The faces 'flymake-error-echo' and 'flymake-warning-echo' inherit from 'compilation-error' and 'compilation-warning', respectively. However, 'flymake-note-echo' (and 'flymake-note-echo-at-eol') inherit from 'flymake-note'. This results in some odd visuals in "emacs -Q" (and any theme that uses similar styling): Flymake errors and warnings in the mode-line (or the minibuffer/end-of-line) are red or orange text. However, Flymake notes are the default text color with a green wavey underline. Especially when they're side-by-side in the mode-line, the current visuals are surprising (not to mention hard to see in the default theme). Personally, I think it'd be better for the "echo" faces for Flymake notes to just inherit from 'compilation-info'. They have almost identical uses as far as I can tell, and then things would look more consistent/readable. (In fact, we could even rename flymake-note to flymake-info, but maybe that ship has sailed.) From debbugs-submit-bounces@debbugs.gnu.org Sun Sep 17 09:11:15 2023 Received: (at control) by debbugs.gnu.org; 17 Sep 2023 13:11:15 +0000 Received: from localhost ([127.0.0.1]:49448 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qhrYR-0008Id-HG for submit@debbugs.gnu.org; Sun, 17 Sep 2023 09:11:15 -0400 Received: from mail-lj1-x22a.google.com ([2a00:1450:4864:20::22a]:58733) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qhrYO-0008IP-Vx for control@debbugs.gnu.org; Sun, 17 Sep 2023 09:11:14 -0400 Received: by mail-lj1-x22a.google.com with SMTP id 38308e7fff4ca-2bfbd7d49e7so57790541fa.1 for ; Sun, 17 Sep 2023 06:11:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1694956259; x=1695561059; darn=debbugs.gnu.org; h=to:subject:message-id:date:mime-version:from:from:to:cc:subject :date:message-id:reply-to; bh=pAt83cy8Lf3gH51IdJhzaLmlF4UZxY0vUV8dMxkf35Y=; b=OVHWXg1yzQTV7Y6qp7JkrLWmygo69qdtQjdomBlN/7WB+qo6YrqOk30AwY6tF6zG6S OxGNff5C3kyaCxPEONqR4BkCYX5y77lpFV3PoKfdirhvGS1fPkQvTIb6nfrCoCWzE3y+ DSptE7h1aIE4oZAhA0XvtG+hY96FjhbmA+DHhsu4lvOu3q5LTYSKq7B5kasseugt7lma YaUWpCAlEOX4IKaZ9Lv9rEiz/f4OOBIMUPzoUJFQGRr4GGyv1XVOVgycw1/C+h5nVvKG UR1H3zU+qA80foF1MdP9+2i8PRpcArPX0VIFQf/QYZlKIlUih5GM1rXzy/2OJ1u7/dtb 2WEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694956259; x=1695561059; h=to:subject:message-id:date:mime-version:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=pAt83cy8Lf3gH51IdJhzaLmlF4UZxY0vUV8dMxkf35Y=; b=fd3YT8ytDdX3+Y2gGYJ72iHYc5PdQ/PYjbf541BGL0y6jbLggwnFhmWeBYfuCfxBQC ZrxBZuTWhdjW4VYuufF6sAaPbsNFQ0QW8b2Bnl6+fgngOtnwWwMfFmjesDtvYdobSgzJ 10oCY4Fv8OEpHRUadOi8WS6tuHLU6meBAgO1c6BMTKfk42vXAXgyRcDY2XAHKMIdyafN kx8RFWK0sIDVKXnotUmn5cuXrWikWba959OLv1nG9TuW3RqUnJcGxxoJ24pgqNBWHS01 6+nFQGSOZHhvMFf02sEZ0WeRuzPaJeCFrDUDkzSg+RYapqudEYeFrpLceXeVoP2VNubT WQhQ== X-Gm-Message-State: AOJu0YxnlwBGokro7MyJRb9Ry+grmYXheMKGkQNGyLv3lt5+Bp/X0bbA FU/BoSuqzfSieXWW2Q/v+xYXSLMcCRoGranpHdI3opvo X-Google-Smtp-Source: AGHT+IEB6eKGvygEb3YNttqkQAPgL40liDyw3fyW4C8tT7hw9G3FcaaorczwIGrnqAbxr/iW0ZmWAu2DVvHyeUHefu0= X-Received: by 2002:a2e:7c06:0:b0:2bc:d43c:8607 with SMTP id x6-20020a2e7c06000000b002bcd43c8607mr6200574ljc.14.1694956259349; Sun, 17 Sep 2023 06:10:59 -0700 (PDT) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Sun, 17 Sep 2023 06:10:59 -0700 From: Stefan Kangas MIME-Version: 1.0 Date: Sun, 17 Sep 2023 06:10:59 -0700 Message-ID: Subject: control message for bug #66041 To: control@debbugs.gnu.org Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: control 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 (-) severity 66041 minor quit From debbugs-submit-bounces@debbugs.gnu.org Sun Sep 17 17:22:37 2023 Received: (at 66041) by debbugs.gnu.org; 17 Sep 2023 21:22:37 +0000 Received: from localhost ([127.0.0.1]:51563 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qhzDx-0004mQ-3y for submit@debbugs.gnu.org; Sun, 17 Sep 2023 17:22:37 -0400 Received: from mail-lf1-x133.google.com ([2a00:1450:4864:20::133]:60638) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qhzDs-0004m7-Qm for 66041@debbugs.gnu.org; Sun, 17 Sep 2023 17:22:35 -0400 Received: by mail-lf1-x133.google.com with SMTP id 2adb3069b0e04-502e6d632b6so5740356e87.0 for <66041@debbugs.gnu.org>; Sun, 17 Sep 2023 14:22:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1694985738; x=1695590538; darn=debbugs.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=w9VhTtKhVj9YZcBL7c1y+EUK8Pqqt6G0qfLrjeuaRII=; b=SBkPTNVIOdrXw6o40Vu2qzF8hJtUO0ULXczyiXNFk60XVx2EIafUwvNhZyIxu+Emk/ GxkpurAM0rFi84QkuEorWEmETYdy/MzXHVJxAM2qnxAfV4Vkk0oahvNf2H+jewwvGxp5 5d/nq16tQIR+QKC1k9W/ULMeBJqZ98By8EAt0mg6WYvCNJF2KLlws2bqqxXpQcgFg/2F MOPyH5EvA4uGQIKcSLD/o7xVtKKUvieD4HEiccD5ZvULbWmJSh0eWFHJ0S3T7RFca0hg CazKI4iZyLdGmnmUL2UqJeKPn2b1n7Z9imyENSkkOAMDE0mQhOq7Tp0S3DhNKrmSIQeX X9AA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694985738; x=1695590538; h=content-transfer-encoding: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=w9VhTtKhVj9YZcBL7c1y+EUK8Pqqt6G0qfLrjeuaRII=; b=bAd1GI1G8QKB56udUQRuMNivTBLrCwkZzLEAEy9BndCMYBne1amBc7pB25q2hM19Fy +JVEutX394Ior2UtBQXimg+frWDtF2AbhLeujxPLNuPmEl5dy1FVfNvp47SqrmBXm2iS B3PPUl+v3K6Uy7Ouy4CEspBPvECNlpGTm8vFoa6EU+O5BOyLl/pPIEFXFxBlz1PXT1n/ cLBxlrczmQ1kKKJABJZXze6l4EqUR1Pp6Lk5ZHyprYZz6DryeIbrgD73BJ6QlFsxMZpZ gVRKnpzfeyOp6dznE/89WFSxa9QHuELXzEQ7m3euI5s8+/E6G3sAyct+6ah9iZ5LCMWo 3A8A== X-Gm-Message-State: AOJu0YxM1f0rY7V1Sc1lERYOJWlMQtxHAtSUs9SpTQdYKwk5eFHTFrYU l7On0xuQAPy3HujSc2lDwWrp+OQWEiwGYtjAiFU= X-Google-Smtp-Source: AGHT+IE2dkO7xDlLeQk84z/p6GTfQjlBwA+VzrznRA5QBlD5hvTv0HpjDnxsd85ZovJ5HNZbinZoNQxuzrHbbrjzccY= X-Received: by 2002:a05:6512:2829:b0:503:186b:e0a8 with SMTP id cf41-20020a056512282900b00503186be0a8mr737642lfb.60.1694985737896; Sun, 17 Sep 2023 14:22:17 -0700 (PDT) MIME-Version: 1.0 References: <1f9e98be-3248-56cf-b7fd-8301666675c6@gmail.com> In-Reply-To: <1f9e98be-3248-56cf-b7fd-8301666675c6@gmail.com> From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= Date: Sun, 17 Sep 2023 22:22:06 +0100 Message-ID: Subject: Re: bug#66041: 30.0.50; Should 'flymake-note-echo' inherit from 'compilation-info'? To: Jim Porter Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 66041 Cc: 66041@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 (-) Hello Jim, On Sun, Sep 17, 2023 at 5:42=E2=80=AFAM Jim Porter = wrote: > Personally, I think it'd be better for the "echo" faces for Flymake > notes to just inherit from 'compilation-info'. They have almost > identical uses as far as I can tell, and then things would look more To better understand what you mean, can you post two screenshots -- with and without your proposed change -- of what the default theme would look like in a simple file with some Flymake overlays? Also, a patch showing exactly the change you propose would be useful. And keep in mind one can define a face to inherit from two faces (AFAIK). > consistent/readable. (In fact, we could even rename flymake-note to > flymake-info, but maybe that ship has sailed.) We could rename and add a backward compatibility alias. But lets first establish if that makes sense: "note" comes from the GCC nomenclature for informational messages. Also I'm not 100% "note" wasn't already used in Flymake before i rewrote it. Jo=C3=A3o From debbugs-submit-bounces@debbugs.gnu.org Sun Sep 17 17:54:55 2023 Received: (at 66041) by debbugs.gnu.org; 17 Sep 2023 21:54:55 +0000 Received: from localhost ([127.0.0.1]:51573 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qhzjD-0005jo-B4 for submit@debbugs.gnu.org; Sun, 17 Sep 2023 17:54:55 -0400 Received: from mail-pj1-x1032.google.com ([2607:f8b0:4864:20::1032]:45228) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qhzjA-0005jY-U6 for 66041@debbugs.gnu.org; Sun, 17 Sep 2023 17:54:54 -0400 Received: by mail-pj1-x1032.google.com with SMTP id 98e67ed59e1d1-2746889aa89so2482878a91.2 for <66041@debbugs.gnu.org>; Sun, 17 Sep 2023 14:54:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1694987679; x=1695592479; darn=debbugs.gnu.org; h=in-reply-to:from:references:cc:to:content-language:subject :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=Qv82BbrC8bbICXXXtwEcbabPIG9Wdo+YGCdzNhM6x98=; b=PA989hUWF5Nd1E3NU2GLpQcY8c7ssrFOF8Uhrn+YyZx8+fDAaGVaZO/fpnf0v1jzKV SKmFwjqKyU1Rcfrdq5imO+uOZcZUAT0q4XNtlikio34dzghXMarxmtrZLzE3ShDcDopT 0EB4YVvJYpn7FYpYOUVmOpZ815SE1qo4xHPAnDbrpnKs4xXqErs9M1vzSSaLdtCFHVLX cia8YAzwwKXW1Idy4jjOkz4IUDt6VsV4BJkfPl82Wl/sV4wAQgT65BTIsf+DNKCAzw0k laxZofvPJEO9YfZAugkxISYf782eoFARKnAVVSjSB97RDc33S36YhgIZJgEDR78XFCMv CHGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694987679; x=1695592479; h=in-reply-to:from:references:cc:to:content-language:subject :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=Qv82BbrC8bbICXXXtwEcbabPIG9Wdo+YGCdzNhM6x98=; b=gNaBkudabXhKnz6ugm9DNb93dB88bNYN9r59AyUoQ5MIVgNKXLE1v8zJcBqcEBZUry nAwJOnRm1sSXmcw3Z/ldiqMNonkp3yu8SzWoFNNSQjO7DLR9xakNKEnN7MLWkMBq44I/ UlIF74AdXtKryE1MNjHLiVLmxCpSp/zWGB4d6HUZUAh5IoW64l1cm7K432z7RtOnbg2m /40CXKm9ttGwsI4WoT34T0Gr8J6HPY+bQrmcbJUN0IWpkwY45Yi0jEDN3p4mfaa2U5k5 LNrlGZnuhBUq1F1wo1AR0RJFOC89a5diNoEutgjzTXyZgDCstVI0N9hqJkW3hVw93jOI 8TKw== X-Gm-Message-State: AOJu0YwIs3/QHWOzT96uoPNUwMMU/GTG39qarqddWSjLYhAJPR//xNfP /7XF97b6eG5MmrgKkBcXEL0= X-Google-Smtp-Source: AGHT+IEg/TQxV2WK16V2WZbysA8eQsyaNt4UCF1cpIrMqhTSU2IVjqi0FnV+5J6yI99QTYZ3jmGGJg== X-Received: by 2002:a17:90a:e512:b0:273:f017:cac0 with SMTP id t18-20020a17090ae51200b00273f017cac0mr5225403pjy.39.1694987678989; Sun, 17 Sep 2023 14:54:38 -0700 (PDT) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id b6-20020a17090a12c600b0027463889e72sm5966450pjg.55.2023.09.17.14.54.37 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 17 Sep 2023 14:54:38 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------E2D4nRdu9kpcrAAjTjBWurDp" Message-ID: <1e19cc18-9942-aa51-c49e-9441e873f037@gmail.com> Date: Sun, 17 Sep 2023 14:54:36 -0700 MIME-Version: 1.0 Subject: Re: bug#66041: 30.0.50; Should 'flymake-note-echo' inherit from 'compilation-info'? Content-Language: en-US To: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= References: <1f9e98be-3248-56cf-b7fd-8301666675c6@gmail.com> From: Jim Porter In-Reply-To: X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 66041 Cc: 66041@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 (-) This is a multi-part message in MIME format. --------------E2D4nRdu9kpcrAAjTjBWurDp Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 9/17/2023 2:22 PM, João Távora wrote: > On Sun, Sep 17, 2023 at 5:42 AM Jim Porter wrote: > >> Personally, I think it'd be better for the "echo" faces for Flymake >> notes to just inherit from 'compilation-info'. They have almost >> identical uses as far as I can tell, and then things would look more > > To better understand what you mean, can you post two screenshots -- with > and without your proposed change -- of what the default theme would look > like in a simple file with some Flymake overlays? Sure, here are screenshots of Flymake under 29, 30, and 30 plus my patch. In particular, pay close attention to the mode-line colors. It took me a few seconds of close inspection to see the green underline for the note counter in the mode-line. > Also, a patch showing exactly the change you propose would be useful. And > keep in mind one can define a face to inherit from two faces (AFAIK). And here's also a patch. (Not for the renaming of note->info, but that's straightforward enough to imagine, I hope.) --------------E2D4nRdu9kpcrAAjTjBWurDp Content-Type: image/png; name="emacs-29.png" Content-Disposition: attachment; filename="emacs-29.png" Content-Transfer-Encoding: base64 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 Of7dDMYNWUSKw8TEQkh2CK7NPb27kzFpLh8NmkGGK3N6qIddu6vINapyoJWO5b2ZfzCV9Dzu F/K0GrSK9KRK4MVFTmP79u26ICIiIlfw/CmDxH1z+WzUH5Ts9QaP1fXRU/ci17AUR+ZL+KMT ncSmZV4hCfa0UiHASp1Q+0WNnCqgiojIlePczU/D3mPecRPDYsc3rBy1WnSjR+vK+nIDEVFA FREREZHiTQ9JiYiIiIgCqoiIiIiIAqqIiIiIKKCKiIiIiCigioiIiIgCqoiIiIiIAqqIiIiI KKCKiIiIiCigioiIiIgCqoiIiIiIAqqIiIiIiAKqiIiIiFxXAdVMXsc3Q//DpK3p4NzGj2+8 zfQ9zmK2iU72zhjOsElbcJ6/zteYa3ndL1b64WWMH/Eyz/XrxzNDvmZNsonzxGp+eG8oA/r3 5ZmXRrPslHn976HFYL/6N7W766o8rkbbce5k+lv/x487nNrPROSy2Arecfcwddi7zDnuOifX lmz3Iq93NDFd4DIBM4WEU8kEXJHOJLd1MvBv/iwjHq6B9bzZUxNjOZ3d7+RY57T1fPfWPEKi BtKxTGEOJpsk7l7Mb7P/Yt2uo8Q7vQirUIum7e+kba1QNwo9r3XLse7Flesw8z/+hN/3xHM6 zYXNO4gS5WvQ/I67aFnFH8Ot4jvF8smT2V32SV4fUBO/9FTwPs0/479jQ/ADDH22EQHpKbh8 jWKwvceZO3IYP+/N5cBmrcDdrw2mQ/hltK0rtV859zB12Acc6TSCfk19zqunImh3+S7P3f3h Ciju+2E+/fOwrlewTz5bYCTEJmMzr0Y5XNienHt+5PUPjtJpxNPc4mNc/f1MRAoxoGbNVuex 3A8kjw+vn/kfx5Vf9bzWKT+GT/2z65ySSlxcMv6F2pmaJG3+gffGbaJU54cY8HhVQqwJ7Pt7 Bt99PoK99w6iT7OwgoeuXReu2znrXmyHl1JJOJlIpfvfpW8TD1LjDrNl7kTGfzoRnzf60CTA jdpyHeXAYU+qtq9JiIcVPHzBtZeDh1xUurseYR6WzN8VB5aStBvyGe0AnJsYP+hLnI++y+N1 bNdNJ1Es2p2rKPbVS1tu8dsP8+gLHWt1hBOR6z2g5nXWuonxg7/D9tSb9Kycy+SY9cyYPJft ySbpp6F86we5v3kZPIp4ozKO/c3U72ewYvcpXP4RlLKlYlbLZZ3LAa5DzPq/vswCbDUeYviz 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 K+66PY5JI8ax9lQap/f9xtufLKPcnV2opZdkiYiIiFzfAfXSPiGSR77+hYH+k3msfikCI5vy +OfHaB3VjXI5P92zBYM/vJ+Y/9bFz2qj4oAlZODGdEsED4/5jqcYS8ey/oTWf4Y1N3/E5P/c jKfqT0REROS6YyQkJOT7rH3AP/4sqge3B8EfcdByHcXq5517GnJH1XGU9m/IkcR/mLmz9zk/ l/ZvqFoWERERKUSJiYn5Tvfx8bngdz/88EOu8z7wwAMX/M768ssvD8tvAR6enry0G5Jd8NJu eKkcxe7nlYc+xOFKZeWhD6lT6pFzfq5b6lG1IhEREZFClJ6e/8s+7fYLv79+06ZNuc5bu3bt C35X4F2cwypkjlbmHLksTj83DIoiwq/ROSOnOX8WERERkWtLgZf4/f39VUoiIiIikq2oL/Hr RU0iIiIiUqwooIqIiIiIAqqIiIiIiAKqiIiIiCigioiIiIgooIqIiIiIAqqIiIiIiAKqiIiI iCigioiIiIgooIqIiIiIAqqIiIiIiAKqiIiIiIgCqoiIiIgooIqIiIiIKKCKiIiIiAKqiIiI iIgCqoiIiIgooIqIiIiIKKCKiIiIiAKqiIiIiIgCqoiIiIgooIqIiIiIKKCKiIiIiCigioiI iIgCqoiIiIiIAqqIiIiIKKCKiIiIiCigioiIiIgCqoiIiIiIAqqIiIiIKKCKiIiIiCigioiI iIgCqoiIiIiIAqqIiIiIiAKqiIiIiCigioiIiIgooIqIiIiIAqqIiIiIiAKqiIiIiCigioiI iIgooIqIiIiIAqqIiIiIiAKqiIiIiCigioiIiIgooIqIiIiIKKCKiIiIiAKqiIiIiIgCqoiI iIgooIqIiIiIKKCKiIiIiAKqiIiIiIgCqoiIiIgooIqIiIiIKKCKiIiIiAKqiIiIiIgCqoiI iIiIAqqIiIiIKKCKiIiIiCigioiIiIgCqoiIiIhILry9vd36nQKqiIiIiFwRFStWvOB3lSpV ynVem4pLRERERIpa7dq1MQyDPXv2ZIfTWrVq5TqvkZCQYOb3Yf7+/ipREREREcmWmJiY73Qf H5/L+nxd4hcRERGRYkUBVUREREQUUEVEREREFFBFRERERAFVRERERORiGQ6Hw4yNjSUjI0Ol ISIiIiJXjd1ux9fXF9upU6fYvHmzSkRERERErro1a9ZgcTgcKonrnWM9H9/Xmlbd3me1qvtC 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 AMDBAolQ87qJUPbKAAAAAElFTkSuQmCC --------------E2D4nRdu9kpcrAAjTjBWurDp Content-Type: image/png; name="emacs-30.png" Content-Disposition: attachment; filename="emacs-30.png" Content-Transfer-Encoding: base64 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 T91WZG9K7X1PEBVUg96/NuT9d2+nsgH21oMZ3mY590QEENbxI9zaXYXXyX2CPz0+mMwjjKZH hM9pD0mVuJwFHZKCbua90R1ZPzCKgOBmPBPXm3FvdMcHwNaY+5++itX961H9ildIimpGUd5i ZAm/j5H/V4Mfe9akarOXSLy8cZG+V3Bc8m+/AutXwpiVtA4FxvMcdy21+z3PzTseJ8LjVN0L 7/OlG5fzpuoLcN1DsPNe+J81++GXsYMKvzfwfH/PiIRukyBwNUzwP/0hqZIuE8ASBU16wbHX 4SPrqYekKg2FrvfDluvh89vAaxBcP7DsXhdVUB3OpX4BN0KlREjKgMgeOeW3QP3XoGYAzK0D P08Fb++ilXPP4zDCgB/HgZkA0zxgRBjsdhRhmTaw/AZfXQVJTaHjs6fuDTUugysehNRRMMoK 45/JHog/l7qXxfaQXzkLmna++5JceElJSWZB/1hsmosTTNM0s/9b3j6P+7u5uS9ptWmaprkv afVZn8taYeuvMJ/Tp5qDOnS/eOqjz5fM58ta+Jb5dm6+jykiFZC23TJTWP7ocDjO+jdx4sQ8 /+U1r/X5558fXuClNXd3nt4BqS54egc8HU65+7xy74c4XOms3Pshjavec9rnJlXvLdME/9VX X8Wz7rp8119hPpvpZDbcimfYw8Qe+LDi10efL5nPlZv9R9uIgWV7Jr/8VbhyuEY0RCoabbtl JjOz4FfG2e1nX8fbtGlTnvM2atSo+COo5XXkNPfnwkZayhKgkSx91ucL+FkjqCKibffiG0E1 kpKSCryLy9fXV6cJBd3SZegGGJELrThvxiiRD7Sdi1RYT5qKQRlITk4ucLqXl9dZf/vuu+/y nPfOO+8862/6Jc7yfmAUER3gREQuMRaFQERERESUoIqIiIiIKEEVERERESWoIiIiIiJKUEVE RERECaqIiIiIiBJUEREREVGCKiIiIiKiBFVERERElKCKiIiIiChBFRERERFRgioiIiIiSlBF RERERJSgioiIiIgSVBERERERJagiIiIiogRVREREREQJqoiIiIgoQRURERERUYIqIiIiIkpQ RURERESUoIqIiIiIKEEVERERESWoIiIiIiJKUEVERERECaqIiIiIiBJUEREREVGCKiIiIiKi BFVERERElKCKiIiIiChBFRERERElqCIiIiIiSlBFRERERJSgioiIiIgSVBERERERJagiIiIi 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 --------------E2D4nRdu9kpcrAAjTjBWurDp Content-Type: image/png; name="emacs-30-patched.png" Content-Disposition: attachment; filename="emacs-30-patched.png" Content-Transfer-Encoding: base64 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 9WcpSS4y0h1YnMdZOWUsv5i3MfShJgXeBaX+rP4scrnYFAIRkSs9P93PvPff59cjnoQ37cGA e5WcikjpphlUERERESlV9LIMEREREVGCKiIiIiKiBFVERERElKCKiIiIiChBFRERERElqCIi IiIiSlBFRERERAmqiIiIiIgSVBERERFRgioiIiIiogRVREREREQJqoiIiIgoQRURERERUYIq IiIiIkpQRURERESUoIqIiIiIElQRERERESWoIiIiInKlsikEpUdycjKHDx/G4XCcaSCbjZCQ EHx8fBQgERERUYIql9bhw4dp2bIlQUFBp/924sQJli9fTo0aNRQgKZRly5bRqlUrBUKxFfUP ESWoZcG7777L7t27T/87MjKSZ599tlSULSYmBofDcVZyChAUFITD4WDr1q35N6RmWkVETtu4 cSOTJ08G4J577qFBgwYKisjVmKD+9NNPLFy4EKfTme/nrFYrHTp0oHfv3pc1OQXYtWsXUVFR eX7nUiawaWlp3HDDDbku69GjR4Hf10zr+ZYuXUpcXFyhP1+rVi1q1aqlwIkUYV8KDAykdevW pabMkydP5tFHHyU9PZ2vvvqK9957r8zG//jx48yZM4eNGzeSmJiIv78/9erVo2vXrpQrV04d VJSg5uf3338vMDkFcDqdLFiw4JInqM8991ypbIANB+L4eU00yWkZfLlh9kWvz3dbEj0bR1Av LOCq79w5D6i33HJLvp+dPXs227dvx+l0Urt2bY0MBRwsp0yZwqBBgxSMYpCamsq6deuIj48n MDCQBg0a4OnpWWr3pYv5TEkaPnw4O3bsOO/vbm5uJCQknDUZUbNmTYYOHVom+semTZsYN24c 6enpZ8V6yZIlrFixgqioKOrUqaMdSZSg5uXUgz0jR47Ey8sr18+kpKQwePDgQiWyxWnq1KmF TqBzslqttG3blj59+pRY2Wau3YOtXCXKexTPASkzLYUZa3ZTL6yJencBZs+efV7yumvXLiWo ecjIyGDu3LnMnTuXzMzMUlIqJ9Gz3uPrkz156e46WMtgXNetW0dCQgKVK1dm//79rFu3jpYt W573uZMnT7J8+XJSU1MLPOEqKZdru4WRW3Ka16xpbp8trSeDp5LTxo0b061bN0JCQjh8+DCz Z89m3bp1jB07lpdffpng4GANUqIENTemaQLkmZwWtKwkLV68GJfLdeGHPqeTRYsWlWiCmpSa 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 sS+zrKCcxDmPpz6qQeTwGtT6NIo59s4MbdEOnxyJTrh9DU9/eSfjEuvSt31/mlsthNZ5ikHV /Phrblva/jyXDB/PM0OuUYX7uozgv0EbeP3rhtTK8ZBUkcuZXyoW/DAfdL4D9y0P0vqzx1nk fR/vdb2XqgZYfDpzf92aJG0cQI+5f+NwL1z39qw2iJfqR7D9r9vo8ts6PH0thdp18o1LPu2X n6LGrGh1yD+eF5c7VKdXizupkzKRuz+uSa0v3mGNqxB9vpjjcslU/B90fgT2PAAfW7Mefhk3 sOB7Ay/194xI6DoZAlfCRP+zH5Iq6joBLHWgYU+IfwM+sp55SCp4CHR6CDZ3gc/vBK+B0GVA yb0uKr86XEz9Am6F4ARITIfI7tnlt0Dt16FqAMytAT9PA2/vwpVz/5MwwoAfx4MZB9M9YEQ4 7HMUYp02sPwOX90AiY2g3XNn7g01roHrHoaUUTDKChOezZqIv5i6l8T+kFc581t2qfuSXHZG YmJivodMv1W+LG4ENwfA7/HQdi2l6t87djfllprjCfVtyqGkVcze0e+sf4f6Ni3RAEYOj2TX 0F1lviM4j3xAt28+p0rn5Yyv6699XsqMS7IPfmBkPfwjImWL9t0Sk5SUlO9yLy+v8/723Xff 5frZ//znP+dPTBRUgFeqQZ9NMKgSfHqg9P37t+r9WBD9LHXK38nmY1NpEnr2v/s2WKheJCIi IlKGFJigvlota7Yy58xlafp304AownyanTVzmvPfUjjWik8zd8jTCoSIiIhcdgVe4vf19VWU 8hE5PFJBELnMLsklfhEpm3SJv0Rc9kv8cpkPjCKiA5yIyFXGohCIiIiIiBJUERERERElqCIi IiKiBFVERERERAmqiIiIiChBFRERERFRgioiIiIiSlBFRERERJSgioiIiIgSVBERERERJagi IiIiIkpQRUREREQJqoiIiIiIElQRERERUYIqIiIiIqIEVURERESUoIqIiIiIKEEVERERESWo IiIiIiJKUEVERERECaqIiIiIiBJUERERERElqCIiIiKiBFVERERERAmqiIiIiChBFRERERFR gioiIiIiSlBFRERERJSgioiIiIgSVBERERERJagiIiIiogRVREREREQJqoiIiIiIElQRERER UYIqIiIiIqIEVURERESUoIqIiIiIKEEVERERESWoIiIiIiJKUEVERERECaqIiIiIiBJUERER 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 vH9djQAAAABJRU5ErkJggg== --------------E2D4nRdu9kpcrAAjTjBWurDp Content-Type: text/plain; charset=UTF-8; name="0001-Use-compilation-info-as-the-basis-for-Flymake-note-f.patch" Content-Disposition: attachment; filename*0="0001-Use-compilation-info-as-the-basis-for-Flymake-note-f.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAyNmMyNjc2M2JlZDk3Zjk3ZmI3OTUwMTJjMDZjYjkxZGZkMjhkZTVjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFN1biwgMTcgU2VwIDIwMjMgMTQ6NTA6MjIgLTA3MDAKU3ViamVjdDogW1BB VENIXSBVc2UgJ2NvbXBpbGF0aW9uLWluZm8nIGFzIHRoZSBiYXNpcyBmb3IgRmx5bWFrZSBu b3RlIGZhY2VzCgoqIGxpc3AvcHJvZ21vZGVzL2ZseW1ha2UuZWwgKGZseW1ha2Utbm90ZS1l Y2hvKQooZmx5bWFrZS1ub3RlLWVjaG8tYXQtZW9sKTogSW5oZXJpdCBmcm9tICdjb21waWxh dGlvbi1pbmZvJy4KLS0tCiBsaXNwL3Byb2dtb2Rlcy9mbHltYWtlLmVsIHwgNCArKy0tCiAx IGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2xpc3AvcHJvZ21vZGVzL2ZseW1ha2UuZWwgYi9saXNwL3Byb2dtb2Rlcy9mbHlt YWtlLmVsCmluZGV4IGIwNDRhNjYxOTExLi42NmFmZjFkMWZlOSAxMDA2NDQKLS0tIGEvbGlz cC9wcm9nbW9kZXMvZmx5bWFrZS5lbAorKysgYi9saXNwL3Byb2dtb2Rlcy9mbHltYWtlLmVs CkBAIC00NDIsNyArNDQyLDcgQEAgZmx5bWFrZS13YXJuaW5nLWVjaG8KICAgOnBhY2thZ2Ut dmVyc2lvbiAnKEZseW1ha2UgLiAiMS4zLjQiKSkKIAogKGRlZmZhY2UgZmx5bWFrZS1ub3Rl LWVjaG8KLSAgJygodCA6aW5oZXJpdCBmbHltYWtlLW5vdGUpKQorICAnKCh0IDppbmhlcml0 IGNvbXBpbGF0aW9uLWluZm8pKQogICAiRmFjZSB1c2VkIGZvciBzaG93aW5nIHN1bW1hcml6 ZWQgZGVzY3JpcHRpb25zIG9mIG5vdGVzLiIKICAgOnBhY2thZ2UtdmVyc2lvbiAnKEZseW1h a2UgLiAiMS4zLjQiKSkKIApAQCAtNDYzLDcgKzQ2Myw3IEBAIGZseW1ha2Utd2FybmluZy1l Y2hvLWF0LWVvbAogICA6cGFja2FnZS12ZXJzaW9uICcoRmx5bWFrZSAuICIxLjMuNSIpKQog CiAoZGVmZmFjZSBmbHltYWtlLW5vdGUtZWNoby1hdC1lb2wKLSAgJygodCA6aW5oZXJpdCAo Zmx5bWFrZS1lbmQtb2YtbGluZS1kaWFnbm9zdGljcy1mYWNlIGZseW1ha2Utbm90ZSkpKQor ICAnKCh0IDppbmhlcml0IChmbHltYWtlLWVuZC1vZi1saW5lLWRpYWdub3N0aWNzLWZhY2Ug Y29tcGlsYXRpb24taW5mbykpKQogICAiRmFjZSBsaWtlIGBmbHltYWtlLW5vdGUtZWNobycs IGJ1dCBmb3IgZW5kLW9mLWxpbmUgb3ZlcmxheXMuIgogICA6cGFja2FnZS12ZXJzaW9uICco Rmx5bWFrZSAuICIxLjMuNSIpKQogCi0tIAoyLjI1LjEKCg== --------------E2D4nRdu9kpcrAAjTjBWurDp-- From debbugs-submit-bounces@debbugs.gnu.org Sun Sep 17 18:16:00 2023 Received: (at 66041) by debbugs.gnu.org; 17 Sep 2023 22:16:00 +0000 Received: from localhost ([127.0.0.1]:51606 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qi03c-0006LY-5h for submit@debbugs.gnu.org; Sun, 17 Sep 2023 18:16:00 -0400 Received: from mail-lf1-x12a.google.com ([2a00:1450:4864:20::12a]:61602) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qi03Z-0006LK-D1 for 66041@debbugs.gnu.org; Sun, 17 Sep 2023 18:15:58 -0400 Received: by mail-lf1-x12a.google.com with SMTP id 2adb3069b0e04-50305abe5f0so1810659e87.2 for <66041@debbugs.gnu.org>; Sun, 17 Sep 2023 15:15:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1694988943; x=1695593743; darn=debbugs.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=40+2YWotPw/OCR4Kql33uFpApMGAU5y3+2Fv+br8+G4=; b=jV2wWdtzgWQeFgYswpAJEDR9Fe/+JDgC1n+i3qMuaOkVnHr1iKq7baYZ2BlAz5bJbn iqp4NE18ekbfoXVTKoCIpnoR06TixNqGbDq5hMRJEuoIFq4/IXMnQul2z2hLYcxFGEv0 43ru5rpZi0sYNBOMARuRLBn+CyXtza52cJaiuCwMDYbDf5qRYnl5fqE513ngrDDyRk4L tw15VxB58GEkh00AyBxiQkOak7ezWVtphGnLUQfveqy8UiPFm7H/TZ+ILj7KO1vRvZyK 1lIFvJfcEeWkEuL26J90KK0s5deGNIyRABb3dSUaIAu8LW8u7Jc93RjbTWlDAbOIjU9k GPrw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694988943; x=1695593743; h=content-transfer-encoding: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=40+2YWotPw/OCR4Kql33uFpApMGAU5y3+2Fv+br8+G4=; b=I6qDPLk639fxCaiVPFtE3M06VPsGPtz0OmAMjIIcwSLipVRYW+l96nfUoum0fmQcEA KmuCSLZAbLcMnDrLzQl9xbJqyAjmyyZCodX0rHGwDD6Rv5Xr1hBAvzcZ2ZKIhb0ixLeV pe+uA0Gu6PsYjAVE08DW3Ra9p6YJci1JvdmhNhPC3ys5ap5EqFkE1elFv5V/9aakE7Bn SFhqADbuNtXWqdwqqu3lOdcUQlzqeYSKGOrFEMD4/tPnvRzhEjZN9bBzQ4lCfWhVHP5r 9fh3rLNd8Omxeotad+kDzVEvpN4H8spVfMitSQ22lHKE6Y3uY5sak/GO/QD+Nz4OcZmP WOYw== X-Gm-Message-State: AOJu0YwM+GGIjPt9JjwDwT7hMpt8qQ0QRcIxoaODtiTmoexoImB6WURY r2vekupAxTCJUhtTK/xx9pbcgIwkkcg4psS1rO0= X-Google-Smtp-Source: AGHT+IFQj8YHsvCMARHR/Plac16iYRV4Z92x16n/RELr34G5FgefqI4+O76CBRyf2VTJmjivJ5nbMmWRkpRuOp1o6+s= X-Received: by 2002:a05:6512:3ca1:b0:503:778:9ad2 with SMTP id h33-20020a0565123ca100b0050307789ad2mr3697625lfv.19.1694988943071; Sun, 17 Sep 2023 15:15:43 -0700 (PDT) MIME-Version: 1.0 References: <1f9e98be-3248-56cf-b7fd-8301666675c6@gmail.com> <1e19cc18-9942-aa51-c49e-9441e873f037@gmail.com> In-Reply-To: <1e19cc18-9942-aa51-c49e-9441e873f037@gmail.com> From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= Date: Sun, 17 Sep 2023 23:15:31 +0100 Message-ID: Subject: Re: bug#66041: 30.0.50; Should 'flymake-note-echo' inherit from 'compilation-info'? To: Jim Porter Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 66041 Cc: 66041@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 (-) On Sun, Sep 17, 2023 at 10:54=E2=80=AFPM Jim Porter = wrote: > > On 9/17/2023 2:22 PM, Jo=C3=A3o T=C3=A1vora wrote: > > On Sun, Sep 17, 2023 at 5:42=E2=80=AFAM Jim Porter wrote: > > > >> Personally, I think it'd be better for the "echo" faces for Flymake > >> notes to just inherit from 'compilation-info'. They have almost > >> identical uses as far as I can tell, and then things would look more > > > > To better understand what you mean, can you post two screenshots -- wit= h > > and without your proposed change -- of what the default theme would loo= k > > like in a simple file with some Flymake overlays? > > Sure, here are screenshots of Flymake under 29, 30, and 30 plus my > patch. In particular, pay close attention to the mode-line colors. It > took me a few seconds of close inspection to see the green underline for > the note counter in the mode-line. OK thanks for showing this. I'll think about this better tomorrow. In the meantime, I found two other bugs trying this recipe. First let's write down the recipe: emacs -Q M-x flymake-mode RET M-: (setq flymake-show-diagnostics-at-end-of-line t) RET M-x erase-buffer RET h e l l o The first bug I find is that the exclamation mark on the fringe is green, but it should be yellow, since, presumably a warning is more important than a note. The second bug has to do with the placement of the cursor when two "eol overlays" are present. The cursor shouldn't be placed in the middle of them, since they represent unreachable areas of the buffer. These two bugs are IMO a bit more serious, but I also see your point about the faces. Jo=C3=A3o From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 18 00:36:22 2023 Received: (at 66041) by debbugs.gnu.org; 18 Sep 2023 04:36:22 +0000 Received: from localhost ([127.0.0.1]:51829 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qi5zh-0000bO-UB for submit@debbugs.gnu.org; Mon, 18 Sep 2023 00:36:22 -0400 Received: from mail-ot1-x333.google.com ([2607:f8b0:4864:20::333]:56366) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qi5zc-0000b8-QS for 66041@debbugs.gnu.org; Mon, 18 Sep 2023 00:36:20 -0400 Received: by mail-ot1-x333.google.com with SMTP id 46e09a7af769-6bf298ef1f5so2722615a34.0 for <66041@debbugs.gnu.org>; Sun, 17 Sep 2023 21:36:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1695011763; x=1695616563; darn=debbugs.gnu.org; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:mime-version:date:message-id:from:to:cc :subject:date:message-id:reply-to; bh=TwpQBbafH7vRaOvewyy3RZJ7YJX1E3b0p4NC7SNVYrw=; b=gASKWvHmVjeTF/GjEy7JFt6iIo87SUY7wLFssNeHmy76fKnMnI/fgP+FLEUlpKo79A 2cgKsweLoXESDOygfNm4MsPDniFiAFXPBAiEYGD5dnvMChdK+LrnlX0g9dxlyx4nQeah PaUUNkEP9KJTaDX2+YGxmKec/kiufOBj+VNmF4J85g/Ccgxl9jgMlzMSTNkQxbPtfOhx fwlA9fOp4mdIeRV42tIPn5qVolO9zEQvOJmvzMvNJaEvFsjwnmTvzWDO/O65GJ9V2VEC zUqwGptqilItXm4l8ua4HsCkWvrwH9zgKYZ3QwU5EqWUSJGIVzHAbo8YZEJubGg3NO3b yv2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695011763; x=1695616563; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=TwpQBbafH7vRaOvewyy3RZJ7YJX1E3b0p4NC7SNVYrw=; b=fgsi597rhpRy2fxpx74YRIkQnUGiTts/I8g0JdemgN39/Kb0yYMbkgxW6hJbTGsSR0 RK+zXGMVc8j+ndB7ku5+kv6lp1grNiVWGZ05tVjf7vvgV0x9qd5I/Ddz5ysW1qc08eUu KP9YDaYcMnLV3kSUGch7UK2md+Y80bpSDtfzT5fFKmEnSdrU1V8Z1ZomsjP0pEgCaYgR VH3mCQ6wF10dZ1CiUFK5z8OyYXpzSqMOIpRbBCpy9+j2/Cy2GMV699CQoEOo+0gdlVxv p7AnELLZCUwxRYBqAhvfiUFSWB3QtGm9Oz+wuoCwJ1Ik2h/h1SSBZyvOR6fKyHa7JRTC K+Ew== X-Gm-Message-State: AOJu0YyYmn6uwUJnY8C1aMl9DTHiTWED8jA2eZSMb42jXLgSL90SnH5v Z3MV95GHfDmzto40kgNd32E= X-Google-Smtp-Source: AGHT+IHOIkw15C0QpfCwDAx+RhwXC0+Xms1tF7tdPnVJf22YDQ0eEtsO2gbQ4izTGwqpuybaq1o3Og== X-Received: by 2002:a05:6358:2495:b0:140:f08b:4f35 with SMTP id m21-20020a056358249500b00140f08b4f35mr9800183rwc.21.1695011762936; Sun, 17 Sep 2023 21:36:02 -0700 (PDT) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id u9-20020a62ed09000000b0068fe39e6a46sm6268766pfh.112.2023.09.17.21.36.02 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 17 Sep 2023 21:36:02 -0700 (PDT) Message-ID: Date: Sun, 17 Sep 2023 21:36:01 -0700 MIME-Version: 1.0 Subject: Re: bug#66041: 30.0.50; Should 'flymake-note-echo' inherit from 'compilation-info'? Content-Language: en-US To: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= References: <1f9e98be-3248-56cf-b7fd-8301666675c6@gmail.com> <1e19cc18-9942-aa51-c49e-9441e873f037@gmail.com> From: Jim Porter In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 66041 Cc: 66041@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 (-) On 9/17/2023 3:15 PM, João Távora wrote: > The first bug I find is that the exclamation mark on the fringe is > green, but it should be yellow, since, presumably a warning is > more important than a note. > > The second bug has to do with the placement of the cursor when > two "eol overlays" are present. The cursor shouldn't be placed > in the middle of them, since they represent unreachable areas of > the buffer. > > These two bugs are IMO a bit more serious, but I also see your > point about the faces. Yeah, those are probably a bigger deal. I'd noticed them, but didn't think very hard about whether they were right or not since at the time I was mostly in "editing bits of my theme" mode. From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 18 06:44:25 2023 Received: (at 66041) by debbugs.gnu.org; 18 Sep 2023 10:44:25 +0000 Received: from localhost ([127.0.0.1]:52165 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qiBjt-0007oV-3p for submit@debbugs.gnu.org; Mon, 18 Sep 2023 06:44:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37814) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qiBjo-0007oB-Cd for 66041@debbugs.gnu.org; Mon, 18 Sep 2023 06:44:23 -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 1qiBjY-0005WL-1m; Mon, 18 Sep 2023 06:44:06 -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=i0RcuyYmZOX22YLfKyIlKEkfYwOui6taXsrKZWfYhvE=; b=CRJ5Fm9rPSrpSieEqmRa T3BrDn4xh4BNO5iqanClkY6228OPW36NZkXBrZ4vzHVThOfuGCdM5LIK/mgU2JBv1xYigqDjMNkfh qEpPY0m0szpl0UUFxRJz2M8otX+hHl4c6XvT5ryhDkB2uCrOAvWoIWREiTOgnQBMH/GrNQK54h1/R wJH5Ywv32o9jrr3sSGh2vX7YUYRRnHvRDhHlBXpsZbCh7D5tzO1JseqgyzyOSrnFAKPkU392Emyrz eL1PNyn8n+cvXxaK3LBCCVO7MuE343l7H+FvEkfzGDVsU2g1DyYhT29U8n5APY8a7MySaJc6VRSmL lL/jrCsfOLe6bA==; Date: Mon, 18 Sep 2023 13:44:03 +0300 Message-Id: <83edivg3rg.fsf@gnu.org> From: Eli Zaretskii To: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= In-Reply-To: (message from =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= on Sun, 17 Sep 2023 23:15:31 +0100) Subject: Re: bug#66041: 30.0.50; Should 'flymake-note-echo' inherit from 'compilation-info'? References: <1f9e98be-3248-56cf-b7fd-8301666675c6@gmail.com> <1e19cc18-9942-aa51-c49e-9441e873f037@gmail.com> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 66041 Cc: jporterbugs@gmail.com, 66041@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: 66041@debbugs.gnu.org > From: João Távora > Date: Sun, 17 Sep 2023 23:15:31 +0100 > > emacs -Q > M-x flymake-mode RET > M-: (setq flymake-show-diagnostics-at-end-of-line t) RET > M-x erase-buffer RET > h e l l o > > The first bug I find is that the exclamation mark on the fringe is > green, but it should be yellow, since, presumably a warning is > more important than a note. > > The second bug has to do with the placement of the cursor when > two "eol overlays" are present. The cursor shouldn't be placed > in the middle of them, since they represent unreachable areas of > the buffer. When I try the above, the cursor is at the end of "hello", and the overlay with the warning is displayed after it. So I don't think I understand what you mean by "in the middle of them". From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 18 06:47:27 2023 Received: (at 66041) by debbugs.gnu.org; 18 Sep 2023 10:47:27 +0000 Received: from localhost ([127.0.0.1]:52169 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qiBmo-0007tD-NZ for submit@debbugs.gnu.org; Mon, 18 Sep 2023 06:47:27 -0400 Received: from mail-lj1-x231.google.com ([2a00:1450:4864:20::231]:44048) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qiBml-0007sz-N1 for 66041@debbugs.gnu.org; Mon, 18 Sep 2023 06:47:25 -0400 Received: by mail-lj1-x231.google.com with SMTP id 38308e7fff4ca-2b974031aeaso71069761fa.0 for <66041@debbugs.gnu.org>; Mon, 18 Sep 2023 03:47:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1695034029; x=1695638829; darn=debbugs.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=MAlXCMev8K8AADkNFpaWvixaVuxAFg3oFTClN5jW0HU=; b=gg0em03JUfscMA3D9TPmUcJ487Fo3JW3ECzPWEEhMpHxrVrzgThQ4X6d/EhndkiXGf TH7OLWZqfTWKQSYHswmjKMPxkHL4RMyNvzPLi0wwiWEC2UqTwHWCxHnMMCJdGP1djVyM yrxvNSbUsSckOimGuhz90JsIbJghaMM0PMj9z0KKN6ZdfsI6BveHIsWn8dXzBrfmurww eGqT5uLDLW8AHRR7bLTY/sKvioEJXcCJgqn0ZSZhVXu06m9sXHQHYiHvobtjc3oe1Yxy ZeY3LcmFo3f72aYVlZNb2O72IO6PwWsOncvsfgq/lnlxUOKk6w4Z6nuf3COMl11myvrC d72Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695034029; x=1695638829; 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=MAlXCMev8K8AADkNFpaWvixaVuxAFg3oFTClN5jW0HU=; b=kOOaL1SP/R+pyUJu3YIXDAzuMvVSExQSJ7P3WpnS/TN0ed5auw7EwDYE8wOeLAn96b c1c3imZWxTzALfkdUMDS/g9vsOHG8xaYL/xP2ZjCDLONq8lMRab/mSAdXu9aM+i+4cuC 7plutIR3AMRa+xGFup+k2ju1KXi3iC+qVy47/A2IwUD4epPfBu1/g0k2Id7jpelwJC8B f4yXABaYbOinUyCv2n4kzKc03PA5VN6lwCf1s/U6r2ZkUXvhgElR9LAbBUTzv9X2qusY 076IUxpsnn4IOqM8FVWVsf+R/A1IzebqEmtl6OKG6ktT/7+3SHtMgnVeFyCSjjFbFnhP +8Xg== X-Gm-Message-State: AOJu0YxVrerbYhEIhub8Va46Xz/RuD7XJoa8WLAjwGGsutQ3JO+ouPUE x6qTmpdRBNb17j4AGAiASSiiiQ5kelFyJXwl1vQ= X-Google-Smtp-Source: AGHT+IG3UDxpi2lek95bfdusDX1B0o2I3wuDlSA8QtL/weXMyE8yeofbLSWwqGQbTNYlEt3plh7NLxm5gjvP4cgykNE= X-Received: by 2002:a19:655a:0:b0:503:985:92c4 with SMTP id c26-20020a19655a000000b00503098592c4mr3304704lfj.52.1695034029185; Mon, 18 Sep 2023 03:47:09 -0700 (PDT) MIME-Version: 1.0 References: <1f9e98be-3248-56cf-b7fd-8301666675c6@gmail.com> <1e19cc18-9942-aa51-c49e-9441e873f037@gmail.com> <83edivg3rg.fsf@gnu.org> In-Reply-To: <83edivg3rg.fsf@gnu.org> From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= Date: Mon, 18 Sep 2023 11:46:55 +0100 Message-ID: Subject: Re: bug#66041: 30.0.50; Should 'flymake-note-echo' inherit from 'compilation-info'? To: Eli Zaretskii Content-Type: multipart/alternative; boundary="00000000000031255806059fdd9e" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 66041 Cc: Jim Porter , 66041@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 (-) --00000000000031255806059fdd9e Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Sep 18, 2023, 11:44 Eli Zaretskii wrote: > > Cc: 66041@debbugs.gnu.org > > From: Jo=C3=A3o T=C3=A1vora > > Date: Sun, 17 Sep 2023 23:15:31 +0100 > > > > emacs -Q > > M-x flymake-mode RET > > M-: (setq flymake-show-diagnostics-at-end-of-line t) RET > > M-x erase-buffer RET > > h e l l o > > > > The first bug I find is that the exclamation mark on the fringe is > > green, but it should be yellow, since, presumably a warning is > > more important than a note. > > > > The second bug has to do with the placement of the cursor when > > two "eol overlays" are present. The cursor shouldn't be placed > > in the middle of them, since they represent unreachable areas of > > the buffer. > > When I try the above, the cursor is at the end of "hello", and the > overlay with the warning is displayed after it. So I don't think I > understand what you mean by "in the middle of them". > Sorry. The recipe is missing a single SPC character after the hello, so that the style warning is triggered. Jo=C3=A3o > --00000000000031255806059fdd9e Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Mon, Sep 18, 2023, 11:44 Eli Zaretskii <eliz@gnu.org> wrote:
> Cc: 66041@debbugs.gnu.org
> From: Jo=C3=A3o T=C3=A1vora <joaotavora@gmail.com>
> Date: Sun, 17 Sep 2023 23:15:31 +0100
>
> emacs -Q
> M-x flymake-mode RET
> M-: (setq flymake-show-diagnostics-at-end-of-line t) RET
> M-x erase-buffer RET
> h e l l o
>
> The first bug I find is that the exclamation mark on the fringe is
> green, but it should be yellow, since, presumably a warning is
> more important than a note.
>
> The second bug has to do with the placement of the cursor when
> two "eol overlays" are present.=C2=A0 The cursor shouldn'= ;t be placed
> in the middle of them, since they represent unreachable areas of
> the buffer.

When I try the above, the cursor is at the end of "hello", and th= e
overlay with the warning is displayed after it.=C2=A0 So I don't think = I
understand what you mean by "in the middle of them".

Sorry. The re= cipe is missing a single SPC character after the hello, so that the style w= arning is triggered.

Jo= =C3=A3o
--00000000000031255806059fdd9e-- From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 18 07:42:29 2023 Received: (at 66041) by debbugs.gnu.org; 18 Sep 2023 11:42:29 +0000 Received: from localhost ([127.0.0.1]:52282 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qiCe4-0006W6-QI for submit@debbugs.gnu.org; Mon, 18 Sep 2023 07:42:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47428) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qiCdy-0006Vl-V4 for 66041@debbugs.gnu.org; Mon, 18 Sep 2023 07:42:26 -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 1qiCdk-0003W1-07; Mon, 18 Sep 2023 07:42:09 -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=wvCPbU7lpXCRDAmh+phfkYGobvxE1MP+YeUvYzVkMk8=; b=jTJ4mnP3V8uK6bVBOWoC sv16J2lKI3kxfAzra0vDySVGx4q5f41zdn0P02pbK6p2+GihVlZl6jt1lMX54R+rONfuEBCMRUHiF QKRoyLKCgiejTee2DKw4U6XTmZq68rnOFirYO7Hna1SORbc2VcGLgI6kA2AUIfiQtqJ3YhYrQR5Kf kDOO3pRDMg9jw3HBIQQc28KMprdYGbDA218ds2sFcla1JnJQhOzpGjjiGbzSxL4QY7M3DvD3+RBKw K2Ii+xED+W20LPgHJVLUivs9TS3jso9dEVozq9QanahqJHyWTpXfQH8Oh2e9DQUQUjg2ALHlm0E/v 4ghlp6Egy4n43Q==; Date: Mon, 18 Sep 2023 14:42:07 +0300 Message-Id: <83zg1jemi8.fsf@gnu.org> From: Eli Zaretskii To: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= In-Reply-To: (message from =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= on Mon, 18 Sep 2023 11:46:55 +0100) Subject: Re: bug#66041: 30.0.50; Should 'flymake-note-echo' inherit from 'compilation-info'? References: <1f9e98be-3248-56cf-b7fd-8301666675c6@gmail.com> <1e19cc18-9942-aa51-c49e-9441e873f037@gmail.com> <83edivg3rg.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 66041 Cc: jporterbugs@gmail.com, 66041@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 (---) > From: João Távora > Date: Mon, 18 Sep 2023 11:46:55 +0100 > Cc: Jim Porter , 66041@debbugs.gnu.org > > On Mon, Sep 18, 2023, 11:44 Eli Zaretskii wrote: > > > Cc: 66041@debbugs.gnu.org > > From: João Távora > > Date: Sun, 17 Sep 2023 23:15:31 +0100 > > > > emacs -Q > > M-x flymake-mode RET > > M-: (setq flymake-show-diagnostics-at-end-of-line t) RET > > M-x erase-buffer RET > > h e l l o > > > > The first bug I find is that the exclamation mark on the fringe is > > green, but it should be yellow, since, presumably a warning is > > more important than a note. > > > > The second bug has to do with the placement of the cursor when > > two "eol overlays" are present. The cursor shouldn't be placed > > in the middle of them, since they represent unreachable areas of > > the buffer. > > When I try the above, the cursor is at the end of "hello", and the > overlay with the warning is displayed after it. So I don't think I > understand what you mean by "in the middle of them". > > Sorry. The recipe is missing a single SPC character after the hello, so that the style warning is > triggered. You have there two overlays, each one with a before-string, and each string has its first character propertized with (cursor t). So Emacs picks up one of the two overlay strings to place the cursor, and it just happens to be not the one you wanted. From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 18 08:52:36 2023 Received: (at 66041) by debbugs.gnu.org; 18 Sep 2023 12:52:36 +0000 Received: from localhost ([127.0.0.1]:52388 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qiDjw-00035V-98 for submit@debbugs.gnu.org; Mon, 18 Sep 2023 08:52:36 -0400 Received: from mail-lf1-x134.google.com ([2a00:1450:4864:20::134]:61647) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qiDjt-00035B-G1 for 66041@debbugs.gnu.org; Mon, 18 Sep 2023 08:52:35 -0400 Received: by mail-lf1-x134.google.com with SMTP id 2adb3069b0e04-50305abe5f0so2735204e87.2 for <66041@debbugs.gnu.org>; Mon, 18 Sep 2023 05:52:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1695041538; x=1695646338; darn=debbugs.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=zk3y/CWlUTghhTXesB+DukG0b4USwZlihYR6rZSp61I=; b=aCaiElIbNxZOI1ykh+uxNDqXUvXnjSjI/O/Ul6VzVOkX4btOo62D1q6nOLTqQz8Xr3 KbaGikjCuNzaqMuFUJKNMg9gaZ7pwQ7YYmKW8pozA/+m4nDTA7o4t/nE5Kskxglpv10S HLV6W/JBP9/N+Bzgw/vK5oVhUk6/CHCcIx9JLvUfu3ePjwX2U2YJD8OP/U5KUhR1kux2 leqv8jXYvhe1TcUX74bU6paftvMDkpPX//RM/af1uV0axFocsczscGTvWBLatppN46uc BmOA+4IN5U4uOShL4c4qd+p8ZESpA3qmhGijau+5urP0A8Zy5VteXCLMN6pEAdsQKVDk 4+0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695041538; x=1695646338; h=content-transfer-encoding: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=zk3y/CWlUTghhTXesB+DukG0b4USwZlihYR6rZSp61I=; b=HMgH5ELuxiLXB7jaKw2+Ad3PeKtHiNvaLPH9sU8J1PHwdhG6jfB3LgqgHWmfeMpy7y 6edLf+Az1YEZYy5JbpmbgiAalf0cDPHpRFd4m7QdmbFIA1VZq6Dch2MRpJjstFZslyEh HOYbT1FCtTvzkxoNizK2gn3orAQOcMAtp//TPsGj53pVCSyDRgYL4u6BL4vZ03S65DTA M6BYATo944pRgJdHTbuMcaEiJ8fBs2nTSySFDovO2kOvubwBF4NiGquaDkJOnFGTIRYE a0PsNFHiD48rSFXd5yq56ibm5G0689XO2PRqeSpZYpONVNHgOlR5+LMf7TvXGTJZtFLk uGiw== X-Gm-Message-State: AOJu0YxJvSh14ZbNCWZDHXLwvvXal/wy6NGDw4flnWUn/yiI51SF74FV CHUFd47iAu4ymCfo/lCQtd7HdV/KvzpLH/dAysk= X-Google-Smtp-Source: AGHT+IFhRr33RWjtHD/h76cMJ3Si7l3iKksib7qlCdGxqPAizOW70pGwfXJ22vmUXcG1glSz/MINYNymXDC0e7OVWu8= X-Received: by 2002:a05:6512:2207:b0:503:985:92c9 with SMTP id h7-20020a056512220700b00503098592c9mr4630011lfu.22.1695041538300; Mon, 18 Sep 2023 05:52:18 -0700 (PDT) MIME-Version: 1.0 References: <1f9e98be-3248-56cf-b7fd-8301666675c6@gmail.com> <1e19cc18-9942-aa51-c49e-9441e873f037@gmail.com> <83edivg3rg.fsf@gnu.org> <83zg1jemi8.fsf@gnu.org> In-Reply-To: <83zg1jemi8.fsf@gnu.org> From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= Date: Mon, 18 Sep 2023 13:52:06 +0100 Message-ID: Subject: Re: bug#66041: 30.0.50; Should 'flymake-note-echo' inherit from 'compilation-info'? To: Eli Zaretskii Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 66041 Cc: jporterbugs@gmail.com, 66041@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 (-) On Mon, Sep 18, 2023 at 12:42=E2=80=AFPM Eli Zaretskii wrote= : > > > From: Jo=C3=A3o T=C3=A1vora > > Date: Mon, 18 Sep 2023 11:46:55 +0100 > > Cc: Jim Porter , 66041@debbugs.gnu.org > > > > On Mon, Sep 18, 2023, 11:44 Eli Zaretskii wrote: > > > > > Cc: 66041@debbugs.gnu.org > > > From: Jo=C3=A3o T=C3=A1vora > > > Date: Sun, 17 Sep 2023 23:15:31 +0100 > > > > > > emacs -Q > > > M-x flymake-mode RET > > > M-: (setq flymake-show-diagnostics-at-end-of-line t) RET > > > M-x erase-buffer RET > > > h e l l o > > > > > > The first bug I find is that the exclamation mark on the fringe is > > > green, but it should be yellow, since, presumably a warning is > > > more important than a note. > > > > > > The second bug has to do with the placement of the cursor when > > > two "eol overlays" are present. The cursor shouldn't be placed > > > in the middle of them, since they represent unreachable areas of > > > the buffer. > > > > When I try the above, the cursor is at the end of "hello", and the > > overlay with the warning is displayed after it. So I don't think I > > understand what you mean by "in the middle of them". > > > > Sorry. The recipe is missing a single SPC character after the hello, so= that the style warning is > > triggered. > > You have there two overlays, each one with a before-string, and each > string has its first character propertized with (cursor t). So Emacs > picks up one of the two overlay strings to place the cursor, and it > just happens to be not the one you wanted. Yes, something like that. Skimming the code, I think I meant for only one overlay, not two, to be the end-of-line overlay containing the two strings. But this was tricky to implement and I probably missed an edge case. There is a FIXME there, have to investigate. Anyway, since I have your interest, any suggestions on how you would implement this? Knowing that this feature is upposed to display multiple pieces of relatively short cursor-unreachable text visually after the end -of-line (the text being the diagnostic text, naturally). Currently I'm placing them exactly between (line-end-position) and the character after that. There is a link between this eol overlay and the origin diagnostic. If you delete the latter, the former should be recalculated asap, i.e. it should ideally not wait another 1s or two before Flymake re-contacts the backend for up-to-date info. Jo=C3=A3o From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 18 10:32:25 2023 Received: (at 66041) by debbugs.gnu.org; 18 Sep 2023 14:32:25 +0000 Received: from localhost ([127.0.0.1]:53982 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qiFIX-0006kB-IG for submit@debbugs.gnu.org; Mon, 18 Sep 2023 10:32:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58358) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qiFIU-0006js-Vw for 66041@debbugs.gnu.org; Mon, 18 Sep 2023 10:32:24 -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 1qiFIG-0000UF-C5; Mon, 18 Sep 2023 10:32:08 -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=emJPFgNzADpBvVwbqxDdv/51tv0exV2HDWpm4GrVmLA=; b=j0JIOe7fnediXrmO7JIp 21XFuw50yNfltAvWTvAPeK+PGFB9trcckobSuoVGA3J+KuMhzgPT5e5iXCmwN59TJa1i39WthAdHJ hKYhk+pXRfNxtAbvBWy3LVgO5gKGzVZjmIgT7mNqqG8E5VfVCz3EyVe4vuHvPxJhYsOdwkheQ6pi5 OBHvtnb45ZQvdIVcCJQ0fiyUmX9zGTIzPyTmFZo4RnTaxrelCYdB+mt5+DQcZU1bNCid5+txjXNS2 NGkMq763LuuHpbq94NVwb45lGOHHNqPY99z3SZXGJhxvFdEPj8ENRuurC6rvswvmLEXKxhfNZLzbJ chEj8Kk7dTLvlA==; Date: Mon, 18 Sep 2023 17:32:08 +0300 Message-Id: <83sf7beemv.fsf@gnu.org> From: Eli Zaretskii To: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= In-Reply-To: (message from =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= on Mon, 18 Sep 2023 13:52:06 +0100) Subject: Re: bug#66041: 30.0.50; Should 'flymake-note-echo' inherit from 'compilation-info'? References: <1f9e98be-3248-56cf-b7fd-8301666675c6@gmail.com> <1e19cc18-9942-aa51-c49e-9441e873f037@gmail.com> <83edivg3rg.fsf@gnu.org> <83zg1jemi8.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 66041 Cc: jporterbugs@gmail.com, 66041@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 (---) > From: João Távora > Date: Mon, 18 Sep 2023 13:52:06 +0100 > Cc: jporterbugs@gmail.com, 66041@debbugs.gnu.org > > On Mon, Sep 18, 2023 at 12:42 PM Eli Zaretskii wrote: > > > > You have there two overlays, each one with a before-string, and each > > string has its first character propertized with (cursor t). So Emacs > > picks up one of the two overlay strings to place the cursor, and it > > just happens to be not the one you wanted. > > Yes, something like that. Skimming the code, I think I meant for only > one overlay, not two, to be the end-of-line overlay containing the two > strings. But this was tricky to implement and I probably missed an > edge case. There is a FIXME there, have to investigate. > > Anyway, since I have your interest, any suggestions on how you would > implement this? Knowing that this feature is upposed to display > multiple pieces of relatively short cursor-unreachable text visually > after the end -of-line (the text being the diagnostic text, naturally). I guess you want the cursor on the first character of the overlay-string that is displayed first (leftmost)? Are you asking how to implement this when there are more than one overlay at EOB? > Currently I'm placing them exactly between (line-end-position) and the > character after that. There is a link between this eol overlay and > the origin diagnostic. If you delete the latter, the former should > be recalculated asap, i.e. it should ideally not wait another 1s or two > before Flymake re-contacts the backend for up-to-date info. This seems to hint that you are talking about something different, so maybe I misunderstand what you mean by "implement this" above? From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 18 11:29:23 2023 Received: (at 66041) by debbugs.gnu.org; 18 Sep 2023 15:29:23 +0000 Received: from localhost ([127.0.0.1]:54113 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qiGBf-0000Ut-72 for submit@debbugs.gnu.org; Mon, 18 Sep 2023 11:29:23 -0400 Received: from mail-lf1-x136.google.com ([2a00:1450:4864:20::136]:50299) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qiGBd-0000Ue-J0 for 66041@debbugs.gnu.org; Mon, 18 Sep 2023 11:29:22 -0400 Received: by mail-lf1-x136.google.com with SMTP id 2adb3069b0e04-5007abb15e9so7716646e87.0 for <66041@debbugs.gnu.org>; Mon, 18 Sep 2023 08:29:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1695050947; x=1695655747; darn=debbugs.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=jhaDthE8q+AP/9DQVTD01G7D991ilLI5lQSxGhbuWe4=; b=mvFUjB1pyVWTp5vwUqIlv/1FJBmN/aj7P3ns82w4Fgu11tCYicEha59Q/qh0iWdEuP Hgl+RuSkie0lcSzsnZr2BtLl10LUqElAqzUTGJUpUagwEOc6pMAFw+Qo3IHnghyFmK15 8jRZFia55BDZBvioT8WgGd9ngOMeKDsDi1eQWjy6hyftZMEpBO1Vc5Q3vOOVPL+WLWfP CWF776+xRrlvtFcAMxveaMQTsFkHbMswe28L3uEQD77A/fWEn6aSYQyuJqpT8lMvS7ne jDOHBPREUWJ9g3TstwrRblNVxxxGj/SVllhD8j1f+Ut1Ke7ZxgGy+E1PDLIkto0iGR9y gh6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695050947; x=1695655747; h=content-transfer-encoding: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=jhaDthE8q+AP/9DQVTD01G7D991ilLI5lQSxGhbuWe4=; b=aJH+WNke1tUlzBYXEadAqdOgS0ZOk0IdsbaXhFz4f6l7pezUtDzxJqIvzphOpnwqeR 1fyc1Sd81bkaX44u37bJrOeNlT9jhf++h5BWcMx9IpKb9fGBk8DBCTtTIXJgZgrr8bAl ar2EGPCdrCkOh6n+5N5x0zrYQ1ySFDnpejltwSZdywSG2hGwIjvKhZCA6hfI0lzF+u5h qH5/qs4LpmV1HmAnACNWSBJHXyuUGp3605BsvWvoC7XHEG7o3btXPeQHGH6umN6JtSCT wUlYEzkeN89af2rmMugnJPKCR7APxXQk6cJMdb7fu0wq+B1WgbWpShB+UQyDKYGaQBwF ruJA== X-Gm-Message-State: AOJu0YxldcheSbS3dbvh6VscCq3cIQZ9+8wiWJJCS1Cn9TYuwd84ZLVu ljg6TwVttM6+zUktBp9jg0rpFf1BqU6EqNQ+9G8= X-Google-Smtp-Source: AGHT+IFOWWhrMimS7i87pGKcp9ZumSMmryrejvf0kozj8+fk/2SrdsLTX43LmTq4RQU6Jb71LrcFzNjtKVb5+qeX6eE= X-Received: by 2002:a19:ca06:0:b0:503:6e8:1008 with SMTP id a6-20020a19ca06000000b0050306e81008mr4171596lfg.36.1695050947098; Mon, 18 Sep 2023 08:29:07 -0700 (PDT) MIME-Version: 1.0 References: <1f9e98be-3248-56cf-b7fd-8301666675c6@gmail.com> <1e19cc18-9942-aa51-c49e-9441e873f037@gmail.com> <83edivg3rg.fsf@gnu.org> <83zg1jemi8.fsf@gnu.org> <83sf7beemv.fsf@gnu.org> In-Reply-To: <83sf7beemv.fsf@gnu.org> From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= Date: Mon, 18 Sep 2023 16:31:45 +0100 Message-ID: Subject: Re: bug#66041: 30.0.50; Should 'flymake-note-echo' inherit from 'compilation-info'? To: Eli Zaretskii Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 66041 Cc: jporterbugs@gmail.com, 66041@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 (-) On Mon, Sep 18, 2023 at 3:32=E2=80=AFPM Eli Zaretskii wrote: > > > From: Jo=C3=A3o T=C3=A1vora > > Date: Mon, 18 Sep 2023 13:52:06 +0100 > > Cc: jporterbugs@gmail.com, 66041@debbugs.gnu.org > > > > On Mon, Sep 18, 2023 at 12:42=E2=80=AFPM Eli Zaretskii w= rote: > > > > > > You have there two overlays, each one with a before-string, and each > > > string has its first character propertized with (cursor t). So Emacs > > > picks up one of the two overlay strings to place the cursor, and it > > > just happens to be not the one you wanted. > > > > Yes, something like that. Skimming the code, I think I meant for only > > one overlay, not two, to be the end-of-line overlay containing the two > > strings. But this was tricky to implement and I probably missed an > > edge case. There is a FIXME there, have to investigate. > > > > Anyway, since I have your interest, any suggestions on how you would > > implement this? Knowing that this feature is upposed to display > > multiple pieces of relatively short cursor-unreachable text visually > > after the end -of-line (the text being the diagnostic text, naturally). > > I guess you want the cursor on the first character of the > overlay-string that is displayed first (leftmost)? Are you asking how > to implement this when there are more than one overlay at EOB? Yes, a direct answer to that question would be nice to know, too. > > Currently I'm placing them exactly between (line-end-position) and the > > character after that. There is a link between this eol overlay and > > the origin diagnostic. If you delete the latter, the former should > > be recalculated asap, i.e. it should ideally not wait another 1s or two > > before Flymake re-contacts the backend for up-to-date info. > > This seems to hint that you are talking about something different, so > maybe I misunderstand what you mean by "implement this" above? By my question, I just meant that I'm interested in hearing what approach you would take to solve this problem. Let me write a bit more. The idea is to have multiple bits of diagnostic text displayed after the end-of-line each related to a source overlay contained within that line. The idea of the feature is that source overlay and eol text are linked. If the source overlay is deleted, the end-of-line should disappear. It's similar to what happens with a simple 'after-string' overlay property, but with the 'after-string' skipping over all characters until the end of line. Currently, I'm doing this with a single "end-of-line" overlay placed as I explained properly (modulo bugs like this one, of course, since I intended a single overlay but unexpectedly got two). It's this second end-of-line overlay which has an 'after-string' property. I use after change functions to control the value of this property, so that if a source overlays gets destroyed, the corresponding text in value is deleted (and eventually also But I could probably use multiple end-of-line overlays, with a one-to-one correspondence to the source overlays. I've tried that too but abandoned it for difficulty in placing the cursor (similar problem to this one). And I think I tried an overlay modification hook instead of buffer after change functions and abandoned it too for some reason. Maybe the modification hook isn't called at all when the overlay is completely deleted? Or, conceivably, it could be done without end-of-line overlays at all, if somehow a 'eol-string' property similar to 'after-string' was implemented in the C code. But I would prefer a Lisp solution, of course. So, in summary, there is a fair bit of design space for this feature (which exists in VS code, btw) and I wanted to know your thoughts on these possibilities and my decisions. Jo=C3=A3o From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 18 13:30:04 2023 Received: (at 66041) by debbugs.gnu.org; 18 Sep 2023 17:30:04 +0000 Received: from localhost ([127.0.0.1]:54306 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qiI4R-0001Hq-KD for submit@debbugs.gnu.org; Mon, 18 Sep 2023 13:30:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53558) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qiI4P-0001Gu-Fx for 66041@debbugs.gnu.org; Mon, 18 Sep 2023 13:30:02 -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 1qiI4B-0004aD-7W; Mon, 18 Sep 2023 13:29:47 -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=vUZ7rV3JFWB6kW+RIh7OhsaW7YycQf/tZomgK1NFAaY=; b=LWibQ6Qq7qrpZctzpAgq 8OYLJ/ZHMavuqylO7tDIT8FUb8ASPIzQ93P0SQHspuXGuElYLkfxjciHgzvY+OkQPQKx0PVHXTx9k rJDITjWKcbZ9nLMUfU74eAO/L9tUZXSD+EzWluPl+sx4e+cg2WGJOqqz/XksvlYjlvbFwb/ZDQERl 0omNGp0e5BN/4q+yKDx7CH4MBQBJ8Kax6lqHYDONrUjkUshPrflZ2RuaE44yu/HcwGZx0CfaypwET ILrn9hRSo+hwR+YzL++mwYaaoF7w7fkXwyIh+oRunUPQtuYa5xCZLNAamzmJ1Y0cfAsF5oT8QGll4 pAfC2+Vr3dv58w==; Date: Mon, 18 Sep 2023 20:29:45 +0300 Message-Id: <83edive6eu.fsf@gnu.org> From: Eli Zaretskii To: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= In-Reply-To: (message from =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= on Mon, 18 Sep 2023 16:31:45 +0100) Subject: Re: bug#66041: 30.0.50; Should 'flymake-note-echo' inherit from 'compilation-info'? References: <1f9e98be-3248-56cf-b7fd-8301666675c6@gmail.com> <1e19cc18-9942-aa51-c49e-9441e873f037@gmail.com> <83edivg3rg.fsf@gnu.org> <83zg1jemi8.fsf@gnu.org> <83sf7beemv.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 66041 Cc: jporterbugs@gmail.com, 66041@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 (---) > From: João Távora > Date: Mon, 18 Sep 2023 16:31:45 +0100 > Cc: jporterbugs@gmail.com, 66041@debbugs.gnu.org > > On Mon, Sep 18, 2023 at 3:32 PM Eli Zaretskii wrote: > > > > I guess you want the cursor on the first character of the > > overlay-string that is displayed first (leftmost)? Are you asking how > > to implement this when there are more than one overlay at EOB? > > Yes, a direct answer to that question would be nice to know, too. Give your overlays different priorities, and use (cursor t) only in the overlay of the highest priority. If they all have before-string (which is what I saw in the example), then priority will determine which overlay is processed first (and thus displayed first). > The idea is to have multiple bits of diagnostic text displayed > after the end-of-line each related to a source overlay contained > within that line. The idea of the feature is that source overlay > and eol text are linked. If the source overlay is deleted, the > end-of-line should disappear. > > It's similar to what happens with a simple 'after-string' overlay > property, but with the 'after-string' skipping over all characters > until the end of line. > > Currently, I'm doing this with a single "end-of-line" overlay placed > as I explained properly (modulo bugs like this one, of course, since > I intended a single overlay but unexpectedly got two). It's this > second end-of-line overlay which has an 'after-string' property. I use > after change functions to control the value of this property, so that > if a source overlays gets destroyed, the corresponding text in value > is deleted (and eventually also > > But I could probably use multiple end-of-line overlays, with a > one-to-one correspondence to the source overlays. I've tried that too > but abandoned it for difficulty in placing the cursor (similar problem > to this one). > > And I think I tried an overlay modification hook instead of buffer after > change functions and abandoned it too for some reason. Maybe the > modification hook isn't called at all when the overlay is completely > deleted? > > Or, conceivably, it could be done without end-of-line overlays at all, > if somehow a 'eol-string' property similar to 'after-string' was > implemented in the C code. But I would prefer a Lisp solution, of > course. > > So, in summary, there is a fair bit of design space for this feature > (which exists in VS code, btw) and I wanted to know your thoughts > on these possibilities and my decisions. Is placing the cursor the only problem you need to solve? And do I understand correctly that you normally collect all the diagnostics into a single sting, and display it as a single overlay string? From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 18 13:45:10 2023 Received: (at 66041) by debbugs.gnu.org; 18 Sep 2023 17:45:10 +0000 Received: from localhost ([127.0.0.1]:54320 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qiIJ4-0001gm-7H for submit@debbugs.gnu.org; Mon, 18 Sep 2023 13:45:10 -0400 Received: from mail-pf1-x42f.google.com ([2607:f8b0:4864:20::42f]:59455) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qiIJ1-0001gG-D7 for 66041@debbugs.gnu.org; Mon, 18 Sep 2023 13:45:09 -0400 Received: by mail-pf1-x42f.google.com with SMTP id d2e1a72fcca58-68c576d35feso4421351b3a.2 for <66041@debbugs.gnu.org>; Mon, 18 Sep 2023 10:44:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1695059093; x=1695663893; darn=debbugs.gnu.org; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:mime-version:date:message-id:from:to:cc :subject:date:message-id:reply-to; bh=t8TmL6UVbPZgZI5f71eSRC6J/FH69+8ioiuFWfx8oiQ=; b=en+a/ODb9YVuWHHVeRRx/E/+WWDjPJQPvYsSlfesIYLQ+8uTTubLl7dJQBNVKi2XxS H9i5Gso1JtyagYkLC2U1nM4r+PE3xFTaWWv8zIzDHRCL1WSYeoHvAItX7gsQxbmm7BX3 11BqhR/XZZA5a9xiPokgkizXJ7yrDUuqv3+MrccNXm6sqmvuogUaWMAGXgVhsL8Z/dAw fN/2dLjY4OsR311fcSEAg8eSwYd1TDeX0xnAifQeG9XvQ2ulwe7QjcFcxmlYQliXmnbM IJ2AIiL42lEOcxzSpNhqmvvyw/pF5DzbAer+iQodzBtsEIzLLubJTJ8VzTUR0RAImxn9 riQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695059093; x=1695663893; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=t8TmL6UVbPZgZI5f71eSRC6J/FH69+8ioiuFWfx8oiQ=; b=FCL8xlPfh9VDr6vM/sgh6EoYqiXY92NdQ+tDt2sotEwQbEHE+4gNY1BJmrhodfrtwC 9meRV6FGIQSNFo0zLwi9e4x/AkYwGipQXzRfMKULXwg9uYQw2IV1tlprMW6CAuzbpGmh Pmfxj1UkJjuHQ9hF2CWTlxaC5HtMCOLAXqA8/fLv3ft1NeyMRB4P15LK2Ux9KxEwaKTv qOnyzRI8zG4JjbQHrZHEQvx9nmx9j69InBjP+PIwPucmuKcYQUtPxYM2oRIuG+oXTAve OCmqiV9gxOJCX4SOdUakyl8qgrZluHcLukvznmhf4zSa1RPnVqeIU3IK2UXAtXeZW7GY NWcA== X-Gm-Message-State: AOJu0Yxk8dv5pmB/YlRUXeQGm1+zsFMgPEGDCmnbPKNshIDZDYA1VW4u M/3irE7KT/bbMNdAiTdYG+An5srmUi5PXw== X-Google-Smtp-Source: AGHT+IFiJEqQKTEiI5Ws1yvSX7WpDT+9YIpE6IVwHxJE++E0uFgtLYjcIZ8qXMpCXmR1Vn7ynO83hQ== X-Received: by 2002:a05:6a21:a588:b0:140:6d68:ce07 with SMTP id gd8-20020a056a21a58800b001406d68ce07mr14283661pzc.52.1695059093234; Mon, 18 Sep 2023 10:44:53 -0700 (PDT) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id r11-20020a62e40b000000b006879493aca0sm7364295pfh.26.2023.09.18.10.44.49 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 18 Sep 2023 10:44:50 -0700 (PDT) Message-ID: Date: Mon, 18 Sep 2023 10:44:51 -0700 MIME-Version: 1.0 Subject: Re: bug#66041: 30.0.50; Should 'flymake-note-echo' inherit from 'compilation-info'? Content-Language: en-US To: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= , Eli Zaretskii References: <1f9e98be-3248-56cf-b7fd-8301666675c6@gmail.com> <1e19cc18-9942-aa51-c49e-9441e873f037@gmail.com> <83edivg3rg.fsf@gnu.org> <83zg1jemi8.fsf@gnu.org> From: Jim Porter In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 66041 Cc: 66041@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 (-) On 9/18/2023 5:52 AM, João Távora wrote: > Yes, something like that. Skimming the code, I think I meant for only > one overlay, not two, to be the end-of-line overlay containing the two > strings. But this was tricky to implement and I probably missed an > edge case. There is a FIXME there, have to investigate. > > Anyway, since I have your interest, any suggestions on how you would > implement this? Knowing that this feature is upposed to display > multiple pieces of relatively short cursor-unreachable text visually > after the end -of-line (the text being the diagnostic text, naturally). For what it's worth, I think it would be nice to have a single overlay, showing only the highest-severity message, and if there are more, add a "(+ N more)" suffix. Then, assuming it's possible to implement, you could click/hover over it to get a popup of some sort with all the messages. That way you can't overload the UI with many messages (which in practice might all be from the same underlying problem in your code). From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 18 14:49:51 2023 Received: (at 66041) by debbugs.gnu.org; 18 Sep 2023 18:49:52 +0000 Received: from localhost ([127.0.0.1]:54550 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qiJJf-0003fm-IP for submit@debbugs.gnu.org; Mon, 18 Sep 2023 14:49:51 -0400 Received: from mail-lf1-x12c.google.com ([2a00:1450:4864:20::12c]:52681) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qiJJc-0003fZ-8p for 66041@debbugs.gnu.org; Mon, 18 Sep 2023 14:49:49 -0400 Received: by mail-lf1-x12c.google.com with SMTP id 2adb3069b0e04-501bd6f7d11so8087165e87.1 for <66041@debbugs.gnu.org>; Mon, 18 Sep 2023 11:49:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1695062974; x=1695667774; darn=debbugs.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=/8xkqw1gO/hVBazSe5gKOSEEgQYXQOAM7/yuef4y3Iw=; b=O+ValQKhExnKrPwG3ZE2TTdDqG5ZHc93XMxoDdib2cCh0SlALMi15db4t2TDUcb7yE JPTvKsoBwqG4nPTwXiMtR2Y/JPcpNI4u+HpWHKvlhSTaX8moi38W03p86CMkhclU59ie zGOldCQWgWXZi5+KsiM8EljuZS+2u353G27XpwyW/qQ3v82sONQeoLvByD6HtMc+Hvmx oVKRLkqLua+0pbXyDfHFgD3JNBgd1rJxNR7jdOA9Nk1QqwBrwCc4J60WO4i0OjA0aXaf SLm4YVr4LRhU4u5tdG8VvIWDBWPGizkDGL8HCuW0jET6KrR0G6+NIFJ4wE1qXLFMZjrf Z44Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695062974; x=1695667774; h=content-transfer-encoding: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=/8xkqw1gO/hVBazSe5gKOSEEgQYXQOAM7/yuef4y3Iw=; b=FpeNQWNMmmkNX2M2nNZksanOiWjWuxb9CB7lwsartN4QBIml7i/arHCwRv9QwabDEV mGInjrvDLSlYVjNG0fW9KmRQ8G+1xcEDOrHmg58RKq6+IGsCO7sn6dxvIokrFnM2ofgl cnTQl4b7Y/pPNG9APMSKJkznFMgqFl0YNTBZ7cdoi/2d9W3mySFBNuRDaJ4VPpKsCL34 1cETX8U/8W6YgEE9wgDxwX9WPGXmNK9nho9HH6cfUXlPM3QBac3Bfg7yGZ2FfeVTN45N mEtkZlSl0N0Z7aLx17vzPt+5LYe+exLBiKjwig0CGDqAqjtiWCYnj26vzLT7IHokkjXH SxHg== X-Gm-Message-State: AOJu0YwFsd2GRLP8dMYPREm036jY78ZftY4vmG7LyuZtUWFaeK4kgFKo +DE4GRgRgsS4UDhhE38zpSY39+uShOGwFse0jcB2jhK887/snQ== X-Google-Smtp-Source: AGHT+IHCgLFG5MYAUPxiinJaQ9YhtwYfzH1kuWCKyeHifG0d8Kw3lpYjNiZFi7gJGXUl5SpPX/dBpsxRw8Hpu7zn0ZM= X-Received: by 2002:a05:6512:28c:b0:500:daf6:3898 with SMTP id j12-20020a056512028c00b00500daf63898mr7776454lfp.26.1695062973668; Mon, 18 Sep 2023 11:49:33 -0700 (PDT) MIME-Version: 1.0 References: <1f9e98be-3248-56cf-b7fd-8301666675c6@gmail.com> <1e19cc18-9942-aa51-c49e-9441e873f037@gmail.com> <83edivg3rg.fsf@gnu.org> <83zg1jemi8.fsf@gnu.org> In-Reply-To: From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= Date: Mon, 18 Sep 2023 19:49:21 +0100 Message-ID: Subject: Re: bug#66041: 30.0.50; Should 'flymake-note-echo' inherit from 'compilation-info'? To: Jim Porter Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 66041 Cc: Eli Zaretskii , 66041@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 (-) On Mon, Sep 18, 2023 at 6:44=E2=80=AFPM Jim Porter = wrote: > > On 9/18/2023 5:52 AM, Jo=C3=A3o T=C3=A1vora wrote: > > Yes, something like that. Skimming the code, I think I meant for only > > one overlay, not two, to be the end-of-line overlay containing the two > > strings. But this was tricky to implement and I probably missed an > > edge case. There is a FIXME there, have to investigate. > > > > Anyway, since I have your interest, any suggestions on how you would > > implement this? Knowing that this feature is upposed to display > > multiple pieces of relatively short cursor-unreachable text visually > > after the end -of-line (the text being the diagnostic text, naturally). > > For what it's worth, I think it would be nice to have a single overlay, > showing only the highest-severity message, and if there are more, add a > "(+ N more)" suffix. Then, assuming it's possible to implement, you > could click/hover over it to get a popup of some sort with all the > messages. That way you can't overload the UI with many messages (which > in practice might all be from the same underlying problem in your code). That's possible to implement. But the single/multiple overlay decision is just an implementation detail Currently Flymake uses one "end of line" overlay only, but here the logic o control that uniqueness failed, so an extra unintended overlay was created, and that created problems with cursor placement. But your suggestion is noted, though. Jo=C3=A3o From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 18 14:55:37 2023 Received: (at 66041) by debbugs.gnu.org; 18 Sep 2023 18:55:37 +0000 Received: from localhost ([127.0.0.1]:54555 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qiJPF-0003p2-CR for submit@debbugs.gnu.org; Mon, 18 Sep 2023 14:55:37 -0400 Received: from mail-lf1-x129.google.com ([2a00:1450:4864:20::129]:42429) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qiJP4-0003ob-9Y for 66041@debbugs.gnu.org; Mon, 18 Sep 2023 14:55:36 -0400 Received: by mail-lf1-x129.google.com with SMTP id 2adb3069b0e04-500bbe3ef0eso5738064e87.1 for <66041@debbugs.gnu.org>; Mon, 18 Sep 2023 11:55:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1695063312; x=1695668112; darn=debbugs.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=c6XBfUMuMoJTkusY1XIpbXp83P6U41KJBpqmqAkI4W4=; b=LivSO2Nr/XwXVJYDXESCENOLv/3Mo2XSTJGiQ6cZrd3iUCraD1RjLjrJUPmhpzzbOQ dlcz0tF7RZZwEiiZf3HvfuXEDomMK4SCOlVg93iMpJXBEsXHbGnTt6v5r95Wx4SFSGEa 97g8qiNSfq9fn+Rjt4EeXPWcRLXu4FVSAcAjQbBJS3UbAvaVao48xtyFWDQL1HKysw47 DCkq97ZG4TUgcpWajZVRirRU66aq2jw/f6pUSkkW1U0mXhU/NZNnmOEP6MEAF4hKiTN8 tfaFpBXJYJm+O/sYf8Sawvll1G/oizCXh5fR6yXus0HdwvQ2LyisiJLMKWF/0/8gWsQ7 CXKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695063312; x=1695668112; h=content-transfer-encoding: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=c6XBfUMuMoJTkusY1XIpbXp83P6U41KJBpqmqAkI4W4=; b=jDmhAEbh8tpNRyIJShQ1fdrctb3Gauq6jdrA6+km6b1VhXYVYWcg9qnzVBZYvR0jAP qoomovjhDKBlIoygPBRjz2ufYWYJzYI02EPff1CxtxhWS1HQkVKEYFAIVqKzaAID/jmh QNgcX/Dts3kA4S4Lr3GBJhbGJIiNKdd43Ge6YAPMOTAlBsiJ1377QB5SG2A1Ln5NF6UB vU4elkq9D8xEKZPnSHWD7FK74Z3YqwVznQz0B+5mIQS86kNSZsH+k2IdNk2A7hGyZlP0 BOCP0IrvWbkEiWc3XPbOvmqJbcuMmpWZEkLilrjxWXG6v7IALgEdT7BFkZrGEB05085L ZI8w== X-Gm-Message-State: AOJu0YzfgZcKD/4RNIia/NDrOYFFzNTM8+lk2qMWvyViov2qaD6sA8Zz csiL9GPUTPfsE2zqtAFhmAYdVuBz1Zyv9XISnp/OFBNUGDiJZA== X-Google-Smtp-Source: AGHT+IEW5+sU4+0JrjOCgUW5R2gvpFb2c0xIWtu5HhHJYpjCZGywHyr0oGAanV+rKtiOW30uaF307b/0NwLUGyGCrbo= X-Received: by 2002:a05:6512:28f:b0:4f8:6d9d:abe0 with SMTP id j15-20020a056512028f00b004f86d9dabe0mr188038lfp.33.1695063311598; Mon, 18 Sep 2023 11:55:11 -0700 (PDT) MIME-Version: 1.0 References: <1f9e98be-3248-56cf-b7fd-8301666675c6@gmail.com> <1e19cc18-9942-aa51-c49e-9441e873f037@gmail.com> <83edivg3rg.fsf@gnu.org> <83zg1jemi8.fsf@gnu.org> <83sf7beemv.fsf@gnu.org> <83edive6eu.fsf@gnu.org> In-Reply-To: <83edive6eu.fsf@gnu.org> From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= Date: Mon, 18 Sep 2023 19:55:00 +0100 Message-ID: Subject: Re: bug#66041: 30.0.50; Should 'flymake-note-echo' inherit from 'compilation-info'? To: Eli Zaretskii Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 66041 Cc: jporterbugs@gmail.com, 66041@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 (-) On Mon, Sep 18, 2023 at 6:29=E2=80=AFPM Eli Zaretskii wrote: > > > From: Jo=C3=A3o T=C3=A1vora > > Date: Mon, 18 Sep 2023 16:31:45 +0100 > > Cc: jporterbugs@gmail.com, 66041@debbugs.gnu.org > > > > On Mon, Sep 18, 2023 at 3:32=E2=80=AFPM Eli Zaretskii wr= ote: > > > > > > I guess you want the cursor on the first character of the > > > overlay-string that is displayed first (leftmost)? Are you asking ho= w > > > to implement this when there are more than one overlay at EOB? > > > > Yes, a direct answer to that question would be nice to know, too. > > Give your overlays different priorities, and use (cursor t) only in > the overlay of the highest priority. If they all have before-string > (which is what I saw in the example), then priority will determine > which overlay is processed first (and thus displayed first). > > > The idea is to have multiple bits of diagnostic text displayed > > after the end-of-line each related to a source overlay contained > > within that line. The idea of the feature is that source overlay > > and eol text are linked. If the source overlay is deleted, the > > end-of-line should disappear. > > > > It's similar to what happens with a simple 'after-string' overlay > > property, but with the 'after-string' skipping over all characters > > until the end of line. > > > > Currently, I'm doing this with a single "end-of-line" overlay placed > > as I explained properly (modulo bugs like this one, of course, since > > I intended a single overlay but unexpectedly got two). It's this > > second end-of-line overlay which has an 'after-string' property. I use > > after change functions to control the value of this property, so that > > if a source overlays gets destroyed, the corresponding text in value > > is deleted (and eventually also > > > > But I could probably use multiple end-of-line overlays, with a > > one-to-one correspondence to the source overlays. I've tried that too > > but abandoned it for difficulty in placing the cursor (similar problem > > to this one). > > > > And I think I tried an overlay modification hook instead of buffer afte= r > > change functions and abandoned it too for some reason. Maybe the > > modification hook isn't called at all when the overlay is completely > > deleted? > > > > Or, conceivably, it could be done without end-of-line overlays at all, > > if somehow a 'eol-string' property similar to 'after-string' was > > implemented in the C code. But I would prefer a Lisp solution, of > > course. > > > > So, in summary, there is a fair bit of design space for this feature > > (which exists in VS code, btw) and I wanted to know your thoughts > > on these possibilities and my decisions. > > Is placing the cursor the only problem you need to solve? No. It's one of them. The other main problem is that the display-only string carried by the overlay needs to react quickly to deletions of the "source overlays" that span ranges of characters in the line to the left (or to the right, if writing in the opposite direction, but I hope you get what I mean). > And do I understand correctly that you normally collect all the > diagnostics into a single sting, and display it as a single overlay > string? For purposes of the "end of line" overlay, yes. Max one per line. That was the intent at least. But it seemingly failed here, so we got two for that first line. However there are more overlays. These "end of line" overlays only appear once you activate flymake-show-diagnostics-at-end-of-line. But Flymake uses other overlays to underline and propertize the actual text that originated the diagnostic "inside the line". These I call the "source overlays": they are the source of truth for the diagnostic information and its their deletion that should immediately trigger an update of the "end of line" overlay text. Jo=C3=A3o From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 18 15:01:19 2023 Received: (at 66041) by debbugs.gnu.org; 18 Sep 2023 19:01:19 +0000 Received: from localhost ([127.0.0.1]:54559 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qiJUl-0003zq-Cc for submit@debbugs.gnu.org; Mon, 18 Sep 2023 15:01:19 -0400 Received: from mail-pg1-x534.google.com ([2607:f8b0:4864:20::534]:58431) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qiJUh-0003zX-2h for 66041@debbugs.gnu.org; Mon, 18 Sep 2023 15:01:17 -0400 Received: by mail-pg1-x534.google.com with SMTP id 41be03b00d2f7-577f6b414a4so4049789a12.0 for <66041@debbugs.gnu.org>; Mon, 18 Sep 2023 12:01:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1695063660; x=1695668460; darn=debbugs.gnu.org; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:mime-version:date:message-id:from:to:cc :subject:date:message-id:reply-to; bh=iS0Jyv4AqrSKJs1zOg/O+09cnPfbTuYBZWVpOoqBvjI=; b=J05rv5q0XZWlyN+bof745TV+XQtxNddN9RBPYQxLvvR7t+O/2emrkauBYxVaQkyXOi /+qvCHyC2ALYkYWTePSgkQNEHA3EkhSa5dVn3K5YIrl1q434m6AuasknXmPSkrIPL/pr U1JnnTIiTHdevtgnc7EkA63gq08oAjq5aZIGIHV0Sk07Zeksy3tTsGL8GDgUPd13tF7f 1FnbrENOgOnkG51lug7FKDGjbn4x6c5yppz6PtJQfjHgtObUH0QLUSZLkEGn+aosrj29 Ug9SoAv1YK6Hh4YmcBIaiwqwlYK5frFml/R6ShnhQ9nQmxrJwrEtXMULu1dwueLxMoRm +nqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695063660; x=1695668460; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=iS0Jyv4AqrSKJs1zOg/O+09cnPfbTuYBZWVpOoqBvjI=; b=TaRevhRAGBc3ZmAuNhJAZy2ldugb58N2Pjpw10F8e7vUIBDIZMvBKM5V1vbvJdFwn/ xb5vjeTD3PeSrD/SIsfSxBiJIlsHUvIRsaF2MZSpDatGgYlIbdPxv95ihHqnKbfKHBfK FZJZifY7+y5ajz+Q9bB833nOWrdBRWamZfkuIzEdqzLwZ0feyo52QM3EYgzZwasOy3Jh +zh4QN/IXsloCrpDRMYQJaxtGKAwaX7woW/12cUNJaclRF49tLMF2/8wxwsSfPAXxslt RuT+Y98H5NcBeIWOlJaqROphcOsjmxtgks//hyLxa6bQP5RcFu/vcPTyjojBHh/2r+6Q 8XpQ== X-Gm-Message-State: AOJu0YwlajnGYAp8LDgF9MFtO2+U+x/4hvI/lKlmNSg/qdQ09mjQXbY6 PlCDMTtQGtGi3Mzh2idbqEA= X-Google-Smtp-Source: AGHT+IGOe2KqrcCUKhQ0wNyUzbT3mrXv22c23bhqyYO/EyNXLxZwy+x7lHhDhMlWKu4q0aDBpEZPYw== X-Received: by 2002:a17:90a:f401:b0:26d:1a46:1646 with SMTP id ch1-20020a17090af40100b0026d1a461646mr8085258pjb.48.1695063660014; Mon, 18 Sep 2023 12:01:00 -0700 (PDT) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id 8-20020a17090a1a4800b0026b45fb4443sm1702012pjl.4.2023.09.18.12.00.59 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 18 Sep 2023 12:00:59 -0700 (PDT) Message-ID: Date: Mon, 18 Sep 2023 12:00:56 -0700 MIME-Version: 1.0 Subject: Re: bug#66041: 30.0.50; Should 'flymake-note-echo' inherit from 'compilation-info'? Content-Language: en-US To: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= References: <1f9e98be-3248-56cf-b7fd-8301666675c6@gmail.com> <1e19cc18-9942-aa51-c49e-9441e873f037@gmail.com> <83edivg3rg.fsf@gnu.org> <83zg1jemi8.fsf@gnu.org> From: Jim Porter In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 66041 Cc: Eli Zaretskii , 66041@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 (-) On 9/18/2023 11:49 AM, João Távora wrote: > That's possible to implement. > > But the single/multiple overlay decision is just an implementation detail > Currently Flymake uses one "end of line" overlay only, but here the logic > o control that uniqueness failed, so an extra unintended overlay was > created, and that created problems with cursor placement. > > But your suggestion is noted, though. Ah ha, that makes sense. I thought the multiple overlays was intentional. From debbugs-submit-bounces@debbugs.gnu.org Thu Sep 21 17:38:01 2023 Received: (at 66041-done) by debbugs.gnu.org; 21 Sep 2023 21:38:01 +0000 Received: from localhost ([127.0.0.1]:34923 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qjRN3-0001tD-5w for submit@debbugs.gnu.org; Thu, 21 Sep 2023 17:38:01 -0400 Received: from mail-lf1-x12d.google.com ([2a00:1450:4864:20::12d]:55299) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qjRN0-0001sy-Eu for 66041-done@debbugs.gnu.org; Thu, 21 Sep 2023 17:37:59 -0400 Received: by mail-lf1-x12d.google.com with SMTP id 2adb3069b0e04-5043120ffbcso1563175e87.2 for <66041-done@debbugs.gnu.org>; Thu, 21 Sep 2023 14:37:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1695332262; x=1695937062; darn=debbugs.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=VX2B5GyXQcbaYnUqB4DpD1Nl5rp/wdyt/fhdMzsetsQ=; b=fCAUUl2jSAGQlZ8CVnmoKtYE9lJw/7L4LCXdZAJYULsh+m0TObf0GjbD4eHP+PzTjK fcW432GYd34zqy7j2/1j7KKrsdsGdkS8z4rOU8BHekI3CKrjQusjOu4tTp3+MIg+iGsj 4L256HxmCfAHv2ZfWXCr3B14+DM05PL7Jx60tXUu/UeIV423+hsK3+GJOj0y5XT5vCMs iwOSeBeHcprUluQG9v3UZqmTYUyhKGzPdV2X4eUWwieloAPQ6JtouROm/8FmFRpcMJ+E yw4bMicZ3polfeFbmbmJKVNaQzoEa1UovlBY2puHSLHNlBoKxQUhzO9/cxNbUWOgWAaR wx8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695332262; x=1695937062; h=content-transfer-encoding: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=VX2B5GyXQcbaYnUqB4DpD1Nl5rp/wdyt/fhdMzsetsQ=; b=WZ9dPEw64wA7VdZCQV4qF1z7PsHzZfAkKnX+iJABYJ8A/f21iBZEP+eNudnP5TgYa8 i+odSYLh5ZLVqQHL1sNZiYnyqqEtjukQCcsaJz40iWBCPjrmkyiLY3NMBjPEM84b+Bif LzpOjVmC18X3JO5kVvq65JUKXo4ypLE48RDI0/sM5hfBZl2P7uJ9uRiGYmdSjneUjJW1 eD9Ri33Qsh94HoLKpE0McwTp9oyWLEFZ1jujgI7jra2lxQFju+QkStcwxxzecQzIWgUK EGTIvMH7CDy2J19kNb76Oyxtx2GWXEf+2UhbeuTM2OjHcJz52DvoaEG0zjcHJTT6DfZd dI9Q== X-Gm-Message-State: AOJu0YzqoynRUNMICZJMu39p8A0b6Gs0p55wMqKcGAVjmwZwiddPhCdT 3KR2Pvp/W720ZevvYsHTsfBDRqdKv3wXUx+8ruI= X-Google-Smtp-Source: AGHT+IH/3zveBMU6rlv4GfbreMk0ueMFJ0MV1N46QeUcZdfZLviRDEGV8+CQSjJbJ2AjFHtbrpENoSVRNYxSBba3Sf4= X-Received: by 2002:a05:6512:158f:b0:500:9a45:636 with SMTP id bp15-20020a056512158f00b005009a450636mr7015474lfb.13.1695332261969; Thu, 21 Sep 2023 14:37:41 -0700 (PDT) MIME-Version: 1.0 References: <1f9e98be-3248-56cf-b7fd-8301666675c6@gmail.com> <1e19cc18-9942-aa51-c49e-9441e873f037@gmail.com> <83edivg3rg.fsf@gnu.org> <83zg1jemi8.fsf@gnu.org> In-Reply-To: From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= Date: Thu, 21 Sep 2023 22:40:20 +0100 Message-ID: Subject: Re: bug#66041: 30.0.50; Should 'flymake-note-echo' inherit from 'compilation-info'? To: Jim Porter , 66041-done@debbugs.gnu.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 66041-done Cc: Eli Zaretskii 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 (-) On Mon, Sep 18, 2023 at 7:49=E2=80=AFPM Jo=C3=A3o T=C3=A1vora wrote: > That's possible to implement. > > But the single/multiple overlay decision is just an implementation detail > Currently Flymake uses one "end of line" overlay only, but here the logic > o control that uniqueness failed, so an extra unintended overlay was > created, and that created problems with cursor placement. > > But your suggestion is noted, though. Over the last 2 days, I've been working on this bug and pushed your patch. I also significantly reworked and robustified the end-of-line overlay logic= , fixing the two bugs I had identified. Then I also implemented your "and N more" suffix suggestion. Just set flymake-show-diagnostic-at-end-of-line to 'short'. I'm closing this bug, but let me know if you are satisfied with the changes or notice more points of possible improvement. Jo=C3=A3o From debbugs-submit-bounces@debbugs.gnu.org Sat Sep 23 23:38:26 2023 Received: (at 66041) by debbugs.gnu.org; 24 Sep 2023 03:38:26 +0000 Received: from localhost ([127.0.0.1]:40832 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qkFwv-0007lT-VU for submit@debbugs.gnu.org; Sat, 23 Sep 2023 23:38:26 -0400 Received: from mail-yb1-xb34.google.com ([2607:f8b0:4864:20::b34]:51616) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qkFwr-0007lB-EG for 66041@debbugs.gnu.org; Sat, 23 Sep 2023 23:38:24 -0400 Received: by mail-yb1-xb34.google.com with SMTP id 3f1490d57ef6-d818d65f23cso4975994276.3 for <66041@debbugs.gnu.org>; Sat, 23 Sep 2023 20:38:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1695526684; x=1696131484; darn=debbugs.gnu.org; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:mime-version:date:message-id:from:to:cc :subject:date:message-id:reply-to; bh=7cIzwooAC7XVkV9qYGjsQ7I6W0UgvfaooE/DTypi1Sg=; b=JMfTYegLxNBa2jhJvKn/4ePDEbqvETiMnXEHWxcSba4bW6sSjZggyku03oS/SekuIy azR6HbTdgpPRtiIIihlFA91dB8i63S8Xv8uN0vMgcqIlTU0PmoojbNGskRtqgCdX4RSq x9YtH9U7uj9fjSDMgoc4BRaizsImODyHjeMrQYHztG7P1qo7Yyb6jo4yXI5bFOkR5B5f m6Latl/WTTeh9q76C+RGmoXP/gfsxWINO6LQNT2iphsJUOnmsUxgEn1hZ08Vhs41RgCY KMaDyp9t66b3/T7EO9bLuWJeNx1IOkgFqBiN4Iy33o/Tu3CVXjFpqICwtSw/dzePLy/n DWkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695526684; x=1696131484; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=7cIzwooAC7XVkV9qYGjsQ7I6W0UgvfaooE/DTypi1Sg=; b=RnrDqb0nYoodtCXqvv60CEd5F8Fzbb1XzvnhPrU89lEpk1Zt2eC5/tN7q52NEXJzYh 5ezlUmSBOgEyG16qfgLiKhTa7EhEKripht1HmLPIsN0lrv08nb0H3a2rRlGJSIvIEjTi PBhukwMwk15luonkZRU5U7NiP35ipnczCSnTVnbkBltaCsgdkKU9n6rThFiI6xJkGwTY 91YSb0HP1Jy5FTm+j+ApQAUflWvpAXfmDlGKQzn7Oj67blpwCqyQ9KA/b/brWangdzyK zcBCkEG09cbCxiqVMEZwJyFhvXDHXbHet7Nx4OFrzMX0HwDd1GWHvuK8NSnpcccA4dWX A0hA== X-Gm-Message-State: AOJu0YzfuGb5KdYoDAWeQYpDaP4EnC7NC0rKNZGrN6D9cH64rG3l0uw0 0XkaV4hQ5YxRbLQfhMq0TSCLUhFEMTTjEA== X-Google-Smtp-Source: AGHT+IGkcBSJ+cdgIZEsnm1c/GpkGeBuEtXvBvHVVJXbVbsozOwpEdwhruEz8EMGQn6kSrjcOTdgSg== X-Received: by 2002:a25:510:0:b0:d84:afae:96a8 with SMTP id 16-20020a250510000000b00d84afae96a8mr2948528ybf.7.1695526684096; Sat, 23 Sep 2023 20:38:04 -0700 (PDT) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id e4-20020a170902744400b001c407fac227sm6079242plt.41.2023.09.23.20.38.03 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 23 Sep 2023 20:38:03 -0700 (PDT) Message-ID: <8d01b781-abac-e22b-39fe-8697a173ad7a@gmail.com> Date: Sat, 23 Sep 2023 20:38:03 -0700 MIME-Version: 1.0 Subject: Re: bug#66041: 30.0.50; Should 'flymake-note-echo' inherit from 'compilation-info'? Content-Language: en-US To: 66041@debbugs.gnu.org, joaotavora@gmail.com References: <1f9e98be-3248-56cf-b7fd-8301666675c6@gmail.com> <1e19cc18-9942-aa51-c49e-9441e873f037@gmail.com> <83edivg3rg.fsf@gnu.org> <83zg1jemi8.fsf@gnu.org> From: Jim Porter In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 66041 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 (-) On 9/21/2023 2:40 PM, João Távora wrote: > I'm closing this bug, but let me know if you are satisfied with the changes > or notice more points of possible improvement. Looks good to me. One question though: I don't see a change for the issue with the color of the exclamation point in the fringe (testing on commit 12fe4741b6f). Was that something you still wanted to fix? (See below.) On 9/17/2023 3:15 PM, João Távora wrote: > The first bug I find is that the exclamation mark on the fringe is > green, but it should be yellow, since, presumably a warning is > more important than a note From debbugs-submit-bounces@debbugs.gnu.org Sun Sep 24 04:16:10 2023 Received: (at 66041) by debbugs.gnu.org; 24 Sep 2023 08:16:10 +0000 Received: from localhost ([127.0.0.1]:40950 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qkKHi-00078E-DF for submit@debbugs.gnu.org; Sun, 24 Sep 2023 04:16:10 -0400 Received: from mail-lf1-x136.google.com ([2a00:1450:4864:20::136]:44324) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qkKHe-00077e-W6 for 66041@debbugs.gnu.org; Sun, 24 Sep 2023 04:16:09 -0400 Received: by mail-lf1-x136.google.com with SMTP id 2adb3069b0e04-502a4f33440so7434874e87.1 for <66041@debbugs.gnu.org>; Sun, 24 Sep 2023 01:15:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1695543348; x=1696148148; darn=debbugs.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=2/+eATQ1wgrnnSY8kEGBwJJ2BBR3tbYsRCTnrNMDgvI=; b=lvKTPQfbien8tA4M7n37Xbgjm3AkukasiIQjQyxzZKlk9I6BJdXG4/iViDIa1Y0I+J Jzry7iA0eHMQ0trqPIrMc3BKR1vAGQ3cTtuVis75QnKKREZC1TVAkMjJ5u2jfkP+ZpF5 Kj2DCXT2DBp9jddnQH7CWxmKEUvgz7oEpc8X3mgxG+DWl1DuKnHa7bbmS84bGNiN72qp fvCFBlRGVR09Fm4Vm5Qlp3N4if9y+574KdjwCtOSM04utYafUGhwMTro6b8TWMOO4cAw z4tvmVabHRmDFhIdBA9k9tprjQ8cSz846ZZPDDK3SYvOdSGJJpbCpHRTWJQhCQbxztVB XvPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695543348; x=1696148148; h=content-transfer-encoding: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=2/+eATQ1wgrnnSY8kEGBwJJ2BBR3tbYsRCTnrNMDgvI=; b=oiyM1CTgJgzRtAmDj80k7H50CW3sKlMziCsocC4HfRQzUKa4oM9jScxZsPWE1brhxK WPRL0KPUC2qAnmqPnlIcdRpHpBNJ1iDRqhHEByhE/QQsDMRyVzq/LdFuN8NWYbu+giCx O1RpjvNXSzFlSUVPIBAprnsairyfC69dp5zfxNXS4SrYLUDj84axUJNwWwyFP+FXTkjn pgKdMODH0Mqxo8ICcC0jZGYqirutmqCZZCKAMYsgfdVz/kPRhjBM7k1n1Bz2lQwHISG8 ifonhbMhbImyAzi2BpeC6cQLkn+cm6dt/Vk9jgR88Tvv4ZkyZmJ1XJYqoanSThiPwWsd u0gg== X-Gm-Message-State: AOJu0YzC9Aqrm4puVtb75LXci4S2AGEhjj/FODeeCCdmoRUbteczUnGh mz2bDx8hZneNAk/nMRhXcgwq+r/UoH03QL0jTSY= X-Google-Smtp-Source: AGHT+IHUjHwHDR7ByBivXxSqG3LjlKS0eoblFvZUHg4xxLM1mt40XtAnJrLuypQbvIY3uJyuNGnA5WZGXkiQz6+MmCw= X-Received: by 2002:a05:6512:308f:b0:503:985:92c4 with SMTP id z15-20020a056512308f00b00503098592c4mr3461569lfd.52.1695543348372; Sun, 24 Sep 2023 01:15:48 -0700 (PDT) MIME-Version: 1.0 References: <1f9e98be-3248-56cf-b7fd-8301666675c6@gmail.com> <1e19cc18-9942-aa51-c49e-9441e873f037@gmail.com> <83edivg3rg.fsf@gnu.org> <83zg1jemi8.fsf@gnu.org> <8d01b781-abac-e22b-39fe-8697a173ad7a@gmail.com> In-Reply-To: <8d01b781-abac-e22b-39fe-8697a173ad7a@gmail.com> From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= Date: Sun, 24 Sep 2023 09:18:28 +0100 Message-ID: Subject: Re: bug#66041: 30.0.50; Should 'flymake-note-echo' inherit from 'compilation-info'? To: Jim Porter Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 66041 Cc: 66041@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 (-) On Sun, Sep 24, 2023 at 4:38=E2=80=AFAM Jim Porter = wrote: > > On 9/21/2023 2:40 PM, Jo=C3=A3o T=C3=A1vora wrote: > > I'm closing this bug, but let me know if you are satisfied with the cha= nges > > or notice more points of possible improvement. > > Looks good to me. One question though: I don't see a change for the > issue with the color of the exclamation point in the fringe (testing on > commit 12fe4741b6f). Was that something you still wanted to fix? (See > below.) Yes, I thought I had seen it sort itself out, but it didn't, I just confirmed. Shouldn't be very hard, I'll look at this later this evening. Jo=C3=A3o --=20 Jo=C3=A3o T=C3=A1vora From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 25 04:57:04 2023 Received: (at 66041) by debbugs.gnu.org; 25 Sep 2023 08:57:04 +0000 Received: from localhost ([127.0.0.1]:44149 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qkhOq-0007hR-Fz for submit@debbugs.gnu.org; Mon, 25 Sep 2023 04:57:04 -0400 Received: from mail-lf1-x135.google.com ([2a00:1450:4864:20::135]:60516) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qkhOm-0007gt-Jx for 66041@debbugs.gnu.org; Mon, 25 Sep 2023 04:57:02 -0400 Received: by mail-lf1-x135.google.com with SMTP id 2adb3069b0e04-50444e756deso5472122e87.0 for <66041@debbugs.gnu.org>; Mon, 25 Sep 2023 01:56:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1695632202; x=1696237002; darn=debbugs.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=gS5e7aIPAPbUcHmhBu+R9qry8srLeY0fiPugBPfkbfM=; b=gV3zM7QlR7cAzgCspgQ3GunMbQO7E+qDpjXvgwfNREx66jEQ/HYd7ps8e9rMMCqhrB yJWOVP2JqS5ZwddV4+u3MvOruLaDYbA4MOGEK1GoUcuVZgFKma1qcJJ8BTOdWLm6Q+81 3/FpF7uPF1aPiYi1L4P4/GDkpgEeW+gKCMCe8poEM11g+vzDOqWH490NOzt4u5QTIBQ1 j+wqIDGyGCKprdGNOCEZfhjntRcHbLcJsPNLRCg6YMTiUfY00dk48lgyfKuHS/4nNGKa mrg/Wd82mMfuB2/HhpoGDbXxCUjJs5SxAkDMHKB+gJQFxZzfdxrCU9g1sEY5Ugab/xeG ASFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695632202; x=1696237002; h=content-transfer-encoding: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=gS5e7aIPAPbUcHmhBu+R9qry8srLeY0fiPugBPfkbfM=; b=hkecXwTxI72BhhKMv7c1Ctz3lIDUQcLEqV8QTShfrwOCbIaYsI92Vj+9T3MQ2Hmkfr 7r+M8i3RMpNhpitnTnG6xOyN6IeS5odq+7VV1285BL4SYUhlj0tN4RnC8GcaaOL52FDH vpLo3EHVDkyd8XoW0nbsKEwDSHz2aZL0LA8qyRlyNXbF5cO8urEJOXSEr7RN8lPnzd5A SkyLxgKGS0eCqmMFoCiekfdJvgOXgKYgMwyRjvKeRTnhtMSDzfWnUuppm1LRsz5i4/Zs AC+OVU1g9TN+IxI9CMx1XdrKGaHMcJMz1ekgo0oK+tYICrLxPij/67qQDr90/2JontJt XsFw== X-Gm-Message-State: AOJu0YxXTv7eSL+waUPKYeTKMYWdQeWWuPZQ9wY1RTmy8GepJ/dTeT5K kT5FFwwgptHLm4Ks3HOLZhhmjCHCSz9sEfK4GNA= X-Google-Smtp-Source: AGHT+IEY4h2omwoZFVsI7rcowyUKyEQZhrvBtEI/UwVvl/mV5X+PplpRWfaBPyodqhFBjlpaOadP2JKrAxtw2GNg8bk= X-Received: by 2002:a19:2d56:0:b0:4fe:1681:9377 with SMTP id t22-20020a192d56000000b004fe16819377mr4171257lft.44.1695632201976; Mon, 25 Sep 2023 01:56:41 -0700 (PDT) MIME-Version: 1.0 References: <1f9e98be-3248-56cf-b7fd-8301666675c6@gmail.com> <1e19cc18-9942-aa51-c49e-9441e873f037@gmail.com> <83edivg3rg.fsf@gnu.org> <83zg1jemi8.fsf@gnu.org> <8d01b781-abac-e22b-39fe-8697a173ad7a@gmail.com> In-Reply-To: From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= Date: Mon, 25 Sep 2023 09:59:22 +0100 Message-ID: Subject: Re: bug#66041: 30.0.50; Should 'flymake-note-echo' inherit from 'compilation-info'? To: Jim Porter , Eli Zaretskii Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 66041 Cc: 66041@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 (-) On Sun, Sep 24, 2023 at 9:18=E2=80=AFAM Jo=C3=A3o T=C3=A1vora wrote: > Yes, I thought I had seen it sort itself out, but it didn't, I just > confirmed. > > Shouldn't be very hard, I'll look at this later this evening. As usual, this turned out not to be true. It seems that even if though the overlay dedicated to the "warning" diagnostic has higher priority than the overlay dedicated to the "note/info" diagnostic the latter's 'before-string' property, which is: #("!" 0 1 (display (left-fringe exclamation-mark compilation-info))) still trumps the former's, which is: #("!" 0 1 (display (left-fringe exclamation-mark compilation-warning))) The priorities being used here are of the (PRIMARY . SECONDARY) form. Maybe that has something to do with it, but I tried just "normal" fixnum priorities and that didn't fix it. Pinging Eli again. Eli, here's the recipe again: emacs -Q -f flymake-mode M-x erase-buffer RET y h e l l o SPC On the left fringe, we expect to see an orange exclamation mark (compilation-warning face). Instead, we see a green one (compilation-info face). Using M-x describe-text-properties, one can see two overlays, one from 1 to 6, another from 6 to 7, with priorities (nil . 42) and (nil . 41), respectively. The 'before-string' chosen for display on the fringe seems to have more to do with the overlay that appears later in the line, rather than with priorities. Another thing worth mentioning is that this bug seems to happen in both pre- and post- noverlay code by Stefan Monnier, since I can reproduce back to Emacs 28. Also worth noting that this is a bug of relatively minor importance IMO. Jo=C3=A3o From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 25 06:32:57 2023 Received: (at 66041) by debbugs.gnu.org; 25 Sep 2023 10:32:57 +0000 Received: from localhost ([127.0.0.1]:44308 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qkitd-0007NT-CF for submit@debbugs.gnu.org; Mon, 25 Sep 2023 06:32:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38216) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qkitc-0007NE-5y for 66041@debbugs.gnu.org; Mon, 25 Sep 2023 06:32: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 1qkitK-0002g0-HJ; Mon, 25 Sep 2023 06:32:38 -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=PkzSRnJ0IUNtoCZ+5nEkDl69oG9l/+Eo7Iuf7mr/bnY=; b=UexwgIFhYACmzELTHnLS 2bXRSV/24GQZVLaInBOUcGit96g9yZNq5o0qs8fK95nixPFVpObolf7obo+eWXHNCwozFPso/CQyF t5+ZU587w62YfVd87kzsatrr60cWmD50LoYDddt4M/IPoJPi0xiy2xWHxn2HF0CtxVLK2SJ0BHzyl FCo6hATR5UrkaiydjtKIixMN4FV2W/Yj4/Gx8jnQMydsBN8p+C/uJDoo+7ZaImw2vxb7OIi3bnxH9 uZ0fzShq6t/mQUmnGUR37fjmFFNAGQKFPBP81DCYIDSbuwLH/Q42UTuJt5s6AGIW7dlaBwvCizWBE rTwjphrItCq0ow==; Date: Mon, 25 Sep 2023 13:32:07 +0300 Message-Id: <834jji35nc.fsf@gnu.org> From: Eli Zaretskii To: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= In-Reply-To: (message from =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= on Mon, 25 Sep 2023 09:59:22 +0100) Subject: Re: bug#66041: 30.0.50; Should 'flymake-note-echo' inherit from 'compilation-info'? References: <1f9e98be-3248-56cf-b7fd-8301666675c6@gmail.com> <1e19cc18-9942-aa51-c49e-9441e873f037@gmail.com> <83edivg3rg.fsf@gnu.org> <83zg1jemi8.fsf@gnu.org> <8d01b781-abac-e22b-39fe-8697a173ad7a@gmail.com> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 66041 Cc: jporterbugs@gmail.com, 66041@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 (---) > From: João Távora > Date: Mon, 25 Sep 2023 09:59:22 +0100 > Cc: 66041@debbugs.gnu.org > > As usual, this turned out not to be true. It seems that even if > though the overlay dedicated to the "warning" diagnostic has > higher priority than the overlay dedicated to the "note/info" > diagnostic the latter's 'before-string' property, which > is: > > #("!" 0 1 (display (left-fringe exclamation-mark compilation-info))) > > still trumps the former's, which is: > > #("!" 0 1 (display (left-fringe exclamation-mark compilation-warning))) > > The priorities being used here are of the (PRIMARY . SECONDARY) form. > Maybe that has something to do with it, but I tried just "normal" > fixnum priorities and that didn't fix it. > > Pinging Eli again. Eli, here's the recipe again: > > emacs -Q -f flymake-mode > M-x erase-buffer RET y > h e l l o SPC > > On the left fringe, we expect to see an orange exclamation mark > (compilation-warning face). Instead, we see a green one > (compilation-info face). > > Using M-x describe-text-properties, one can see two overlays, one > from 1 to 6, another from 6 to 7, with priorities (nil . 42) and > (nil . 41), respectively. > > The 'before-string' chosen for display on the fringe seems to have > more to do with the overlay that appears later in the line, rather > than with priorities. Add some character after the SPC, even a newline, and the display will be as you expect. Do we care about the corner case of the last character before EOB? From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 25 07:47:08 2023 Received: (at 66041) by debbugs.gnu.org; 25 Sep 2023 11:47:08 +0000 Received: from localhost ([127.0.0.1]:44505 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qkk3P-0006eU-S0 for submit@debbugs.gnu.org; Mon, 25 Sep 2023 07:47:08 -0400 Received: from mail-lf1-x134.google.com ([2a00:1450:4864:20::134]:46555) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qkk3N-0006dr-4I for 66041@debbugs.gnu.org; Mon, 25 Sep 2023 07:47:06 -0400 Received: by mail-lf1-x134.google.com with SMTP id 2adb3069b0e04-503397ee920so9744989e87.1 for <66041@debbugs.gnu.org>; Mon, 25 Sep 2023 04:46:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1695642407; x=1696247207; darn=debbugs.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=EvFAeUEYNUvxwYXYDVpowm8uuX3avhEQHAmhO0okfbo=; b=Sx23oUHbZgqyb3pnrJxu/M6/8uqQibFOAYdJLtU/2Z9Rsilws07HCE347OsMLmP6Z0 9ec0vXw5f/qn+yj0MEPCg/yNMcMuXW/tTgV2LTyIvR0Wd5PWN36A0O32ngeAKdJFzMWx 0dDsTJTLLE8sVveZYn8oWEFOc6mIxefZEBhx0jpZoSoU3syDEQEjRWzbEIX4FqhxeXak AwMPT6mBvJUc7L5+kMQaAJLbbmlxPTN2samFMipSBJf2xBZQMo03jCK1jIoQTIFRJeu8 R02Paf173ZjJzJBUYqsZGeSJUNccnvCE4WNIQGj1JFK6IB+zsa8ZzJLIk7sxWVn+IzRN xRRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695642407; x=1696247207; h=content-transfer-encoding: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=EvFAeUEYNUvxwYXYDVpowm8uuX3avhEQHAmhO0okfbo=; b=ks0I9B9MVjYe58qYhwow21g5+tRSbnWuDtq+SQ9bx2xIrRmZeXvQQFPIFuL3+A1CT/ Jo1ffrs2KdF8Ocs+Zi1ZV0O0FsKK+SUry7Y4Bx2rmGsDlsI12EqnmeIVJDY2lMvT1PGV 0TvrLXl5SdliGBNNgAfLAfkrTbwbNeSs5WLkCj3SR7Dlq+gkusyiY3pwAnMN/86kLX+I EWWIvn08JAKwO593rpoRxNg2VmUisb2dbHQAkgNbE2ceofZ2jA0w1Z/NGtoXRhS5NtMd Z8J+Rl2VFGPufHsGUwv5sdyFg4CtM7Lbh1DAzW4pcltvaRcG9tcOwIug2riANauqqt80 yaVA== X-Gm-Message-State: AOJu0Yyxf+I7aEk0dye8RdqK2cRnUEBdP0TUg0y3n1fZUT+o/Eg6gkx8 mHnAQjTBvDT/9h1txSHtorMWr2UsIeZQh8dHzrU= X-Google-Smtp-Source: AGHT+IG0s1VBZE4jjc/GmBmxwpy5juE5qGJKbYv6sbRifqhbRvvb7OO2t/H5VVOyb1kFnQq7CcDngMRJ6cO30DQPgAQ= X-Received: by 2002:ac2:5972:0:b0:503:367c:49c8 with SMTP id h18-20020ac25972000000b00503367c49c8mr4331774lfp.5.1695642406587; Mon, 25 Sep 2023 04:46:46 -0700 (PDT) MIME-Version: 1.0 References: <1f9e98be-3248-56cf-b7fd-8301666675c6@gmail.com> <1e19cc18-9942-aa51-c49e-9441e873f037@gmail.com> <83edivg3rg.fsf@gnu.org> <83zg1jemi8.fsf@gnu.org> <8d01b781-abac-e22b-39fe-8697a173ad7a@gmail.com> <834jji35nc.fsf@gnu.org> In-Reply-To: <834jji35nc.fsf@gnu.org> From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= Date: Mon, 25 Sep 2023 12:46:35 +0100 Message-ID: Subject: Re: bug#66041: 30.0.50; Should 'flymake-note-echo' inherit from 'compilation-info'? To: Eli Zaretskii Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 66041 Cc: jporterbugs@gmail.com, 66041@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 (-) On Mon, Sep 25, 2023 at 11:32=E2=80=AFAM Eli Zaretskii wrote= : > Add some character after the SPC, even a newline, and the display will > be as you expect. I think that's only because this newline will, by default, delete the SPC character and thus resolve the diagnostic from checkdoc, deleting the overlay. But there are very many ways in which a lower priority diagnostic may appear later in the same line as a higher priority one, and I think this will trigger the problem. > Do we care about the corner case of the last character before EOB? If it were that, I'd say "no, we don't", but it doesn't seem like it is. I think we should care _somewhat_ about this recipe, which represents the aforementioned use case, a case I don't think is particularly contrived: emacs -Q -f flymake-mode M-x erase-buffer RET y C-o h e l l o SPC Jo=C3=A3o From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 25 08:09:22 2023 Received: (at 66041) by debbugs.gnu.org; 25 Sep 2023 12:09:22 +0000 Received: from localhost ([127.0.0.1]:44516 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qkkOw-0007Lt-Hd for submit@debbugs.gnu.org; Mon, 25 Sep 2023 08:09:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38420) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qkkOs-0007Lc-Hm for 66041@debbugs.gnu.org; Mon, 25 Sep 2023 08:09:21 -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 1qkkOa-0001W3-HA; Mon, 25 Sep 2023 08:09:00 -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=SCYPz2cAddJcuKZZESJgS/5/nUaWtSuQdL2PRVm/YJY=; b=I040PDGDLGCdOGQsX42h rhph024FiWjEuk/2gCrO6URDUry+E4b+MBC0Gk2sPsnqGISTgi+A/p3RdptSiQPqZroZmlV+9MXDi ICy/wnk3ahHEeBt13DIJzbJ6IiAyH4For4I1D4VngdgP+yw2sYDUhQuTrAbTA6iLeNR1F5JW1/Q+K wcBOxgYh63FIm1BtC469ndGOcZwoVIQ+QzeAzhn0hueTV7KViWPiZHqlyW6xt+G/MitKGZ7X9V+uz gx1BEgLiovG7S7Jh8mvHdQZ97cxkYw3UsXJeegepim4DgbUsQoywvLYUu1w7K43g1eUsmN6s3JVPI /KcXIiZ0/FtTXw==; Date: Mon, 25 Sep 2023 15:08:32 +0300 Message-Id: <831qem316n.fsf@gnu.org> From: Eli Zaretskii To: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= In-Reply-To: (message from =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= on Mon, 25 Sep 2023 12:46:35 +0100) Subject: Re: bug#66041: 30.0.50; Should 'flymake-note-echo' inherit from 'compilation-info'? References: <1f9e98be-3248-56cf-b7fd-8301666675c6@gmail.com> <1e19cc18-9942-aa51-c49e-9441e873f037@gmail.com> <83edivg3rg.fsf@gnu.org> <83zg1jemi8.fsf@gnu.org> <8d01b781-abac-e22b-39fe-8697a173ad7a@gmail.com> <834jji35nc.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 66041 Cc: jporterbugs@gmail.com, 66041@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 (---) > From: João Távora > Date: Mon, 25 Sep 2023 12:46:35 +0100 > Cc: jporterbugs@gmail.com, 66041@debbugs.gnu.org > > On Mon, Sep 25, 2023 at 11:32 AM Eli Zaretskii wrote: > > > Add some character after the SPC, even a newline, and the display will > > be as you expect. > > I think that's only because this newline will, by default, delete the SPC > character and thus resolve the diagnostic from checkdoc, deleting the > overlay. No, because if you insert any other character after the space, the display will also be as you expect. From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 25 08:13:24 2023 Received: (at 66041) by debbugs.gnu.org; 25 Sep 2023 12:13:24 +0000 Received: from localhost ([127.0.0.1]:44520 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qkkSq-0007RU-5J for submit@debbugs.gnu.org; Mon, 25 Sep 2023 08:13:24 -0400 Received: from mail-lf1-x129.google.com ([2a00:1450:4864:20::129]:49349) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qkkSn-0007RC-IO for 66041@debbugs.gnu.org; Mon, 25 Sep 2023 08:13:22 -0400 Received: by mail-lf1-x129.google.com with SMTP id 2adb3069b0e04-5031ccf004cso10041135e87.2 for <66041@debbugs.gnu.org>; Mon, 25 Sep 2023 05:13:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1695643982; x=1696248782; darn=debbugs.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=F/rQsdswKbm9BZj8FWtlMBVvEzLN4yqX8d/DJ1gTQvc=; b=nsfwvYxR+EK+DmTv4CCA4jbc7obZJ3/FogqhGqN0MGYEUJiX6es48GvAGKylljUTUi arfMMNqCNtmdyEE7PV0GN+1+tYdmapjl3n6mucuGNeMFnB7ethUCZy/5/+rdrWjMveM+ GzRgGy03nZbh/BpYOHSABiT14VNayYQpEq0rIHBIBEZIdg/+Cybte6geoRE5X2nDgyHG 3PtD5jYU1EWIp5BPG4+Yi4KGBbaOfeIuuABdptf9lP8UvQh/sMdYcSKXcmLd0HZTJias 2+1Ej06bToyCv5f8gEcQlIWNy5XnlhKCzZeQ5jMqVPzc5ag7sD5zWPuaYTg9OKRA/5Yd 9wsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695643982; x=1696248782; h=content-transfer-encoding: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=F/rQsdswKbm9BZj8FWtlMBVvEzLN4yqX8d/DJ1gTQvc=; b=pFiHbKGoiWgOaj2b3Zf4uTod5sue8WJWZj0XvRNxEn1JMtQC9oH5l9dl2N4u2JBKEA yPAT1DH3zQGeEnyWenHdbGzJf3mSusC9N8dIffb0RMGMjao5stgBYzQgK6PM0k8Y56Nq 7ug0fMy4owWetPb3MiilpvHGhEMbJZca6ITHukIGm6aNu+qUe4wS7KlPKYr8I/ADQRw4 oTJyBv90/apUjJv/e2jnXmRFMRLqUsWPGA1vDth3ogFPdfWZTkLr9YueyUJMJBvxqifi xlkr6sfHep1d8hEh6NvnYQpaT6t7WjcKNE+zL3lwnzj3puprhg+32ZhUgXOjlvPUfIUF iOJA== X-Gm-Message-State: AOJu0YzgkJesJA4dOqBTpWYbrVEHSoQ3cVgFRrfQqEhPse1WUn6f7838 4+/+o7qXANxxpcj2bcXKWj8CKGdH9H0hVD/qdXTMIFu1 X-Google-Smtp-Source: AGHT+IFWUyOPcGf8hhZNfBpg5kuCLcRUosZY/ocD4/kfH5UuKP0ngg5LpXb40UDecUShus9grwRUknoNc5lFDYgMfsg= X-Received: by 2002:a05:6512:2311:b0:4fe:347d:7c4b with SMTP id o17-20020a056512231100b004fe347d7c4bmr7481580lfu.7.1695643982280; Mon, 25 Sep 2023 05:13:02 -0700 (PDT) MIME-Version: 1.0 References: <1f9e98be-3248-56cf-b7fd-8301666675c6@gmail.com> <1e19cc18-9942-aa51-c49e-9441e873f037@gmail.com> <83edivg3rg.fsf@gnu.org> <83zg1jemi8.fsf@gnu.org> <8d01b781-abac-e22b-39fe-8697a173ad7a@gmail.com> <834jji35nc.fsf@gnu.org> <831qem316n.fsf@gnu.org> In-Reply-To: <831qem316n.fsf@gnu.org> From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= Date: Mon, 25 Sep 2023 13:12:50 +0100 Message-ID: Subject: Re: bug#66041: 30.0.50; Should 'flymake-note-echo' inherit from 'compilation-info'? To: Eli Zaretskii Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 66041 Cc: jporterbugs@gmail.com, 66041@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 (-) On Mon, Sep 25, 2023 at 1:09=E2=80=AFPM Eli Zaretskii wrote: > > > From: Jo=C3=A3o T=C3=A1vora > > Date: Mon, 25 Sep 2023 12:46:35 +0100 > > Cc: jporterbugs@gmail.com, 66041@debbugs.gnu.org > > > > On Mon, Sep 25, 2023 at 11:32=E2=80=AFAM Eli Zaretskii w= rote: > > > > > Add some character after the SPC, even a newline, and the display wil= l > > > be as you expect. > > > > I think that's only because this newline will, by default, delete the S= PC > > character and thus resolve the diagnostic from checkdoc, deleting the > > overlay. > > No, because if you insert any other character after the space, the > display will also be as you expect. Obviously, because any other character which is not space will _also_ fix the trailing whitespace diagnostic issued by the checkdoc backend. By definition :-) I can give a more complicated recipe using the Eglot and LSP if you want, but it will require you install 'clangd'. Jo=C3=A3o From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 25 08:50:31 2023 Received: (at 66041) by debbugs.gnu.org; 25 Sep 2023 12:50:31 +0000 Received: from localhost ([127.0.0.1]:44543 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qkl2k-0008PA-V4 for submit@debbugs.gnu.org; Mon, 25 Sep 2023 08:50:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:56634) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qkl2e-0008Op-RJ for 66041@debbugs.gnu.org; Mon, 25 Sep 2023 08:50:28 -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 1qkl2L-000136-7n; Mon, 25 Sep 2023 08:50:06 -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=c6G5HOUf/tn4xAmdPMp60UZY0McStIEkQ3oHcC6FMxo=; b=i4+Ewwa8Hkkgzjz4OFi8 dcrw9dAXhCHpPEph0ExtFJWVknebWMBgpEXGPngdkIZgG+8a3lCT3EkrIBXVwJzZfkSARBs2zqPhj IcsJRLtI7Ye9tTNlCTfeiz1pQpqgeZhg0qCQ9FQXGkrlToJ38WNSmDjLfydNibGcH6WiRghg0l5DF dkR4iYztA7T0bMSfbhnY9ip9+oTlNXmUJL+WtM75ofEdYtuwtakZ22lr3PXwOX0UF0qsI83vsCXtM kGwCQq4/OsUF1sU7g/MMF/lnR6++OBla14ta6kGnQLIvMqmyZiT4nL0oDRhaiZHkEralDHpAeEcDT dUp+JuAxKzw2GQ==; Date: Mon, 25 Sep 2023 15:49:18 +0300 Message-Id: <83zg1a1kq9.fsf@gnu.org> From: Eli Zaretskii To: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= In-Reply-To: (message from =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= on Mon, 25 Sep 2023 13:12:50 +0100) Subject: Re: bug#66041: 30.0.50; Should 'flymake-note-echo' inherit from 'compilation-info'? References: <1f9e98be-3248-56cf-b7fd-8301666675c6@gmail.com> <1e19cc18-9942-aa51-c49e-9441e873f037@gmail.com> <83edivg3rg.fsf@gnu.org> <83zg1jemi8.fsf@gnu.org> <8d01b781-abac-e22b-39fe-8697a173ad7a@gmail.com> <834jji35nc.fsf@gnu.org> <831qem316n.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 66041 Cc: jporterbugs@gmail.com, 66041@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 (---) > From: João Távora > Date: Mon, 25 Sep 2023 13:12:50 +0100 > Cc: jporterbugs@gmail.com, 66041@debbugs.gnu.org > > On Mon, Sep 25, 2023 at 1:09 PM Eli Zaretskii wrote: > > > > > From: João Távora > > > Date: Mon, 25 Sep 2023 12:46:35 +0100 > > > Cc: jporterbugs@gmail.com, 66041@debbugs.gnu.org > > > > > > On Mon, Sep 25, 2023 at 11:32 AM Eli Zaretskii wrote: > > > > > > > Add some character after the SPC, even a newline, and the display will > > > > be as you expect. > > > > > > I think that's only because this newline will, by default, delete the SPC > > > character and thus resolve the diagnostic from checkdoc, deleting the > > > overlay. > > > > No, because if you insert any other character after the space, the > > display will also be as you expect. > > Obviously, because any other character which is not space > will _also_ fix the trailing whitespace diagnostic issued by the > checkdoc backend. By definition :-) OK, let's back up a notch, because I think I've misunderstood you. What you have here are two separate overlays, each with a before-string. The overlays cover two completely disjoint portions of buffer text: 1 to 6 for the first overlay, 6 to 7 for the second. Now, priorities are only relevant for overlays that cover overlapping portions of text. In your case, there's no overlap, so both overlays will be displayed. Try this variant: (let (ov) (setq ov (make-overlay 1 6)) (overlay-put ov 'before-string "B1") (overlay-put ov 'priority 42) (setq ov (make-overlay 6 7)) (overlay-put ov 'before-string "B2") (overlay-put ov 'priority 41)) You will see that "B1" is displayed before "hello" and "B2" is displayed before the space that follows "hello", like this: B1helloB2 Both overlays show on display regardless of their priorities. Right? That is exactly what happens in your case: both overlays are displayed. Except that in your case the before-strings have a 'display' property on them, whose value draws a bitmap on the fringe, instead of showing the string itself in the text-area. What Emacs does is again display both overlays, both of which draw a bitmap on the same fringe, so what you see is the bitmap which is drawn last. Because when some 'display' property draws on the fringe, we draw it unconditionally, regardless of priorities etc. So the last bitmap drawn on the fringe "wins". And since the display engine processes overlays in the order of buffer positions (for left-to-right text), the overlay that wins is always the last one. Does this explain what happens? From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 25 09:52:44 2023 Received: (at 66041) by debbugs.gnu.org; 25 Sep 2023 13:52:44 +0000 Received: from localhost ([127.0.0.1]:44588 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qkm0x-0001YV-7V for submit@debbugs.gnu.org; Mon, 25 Sep 2023 09:52:44 -0400 Received: from mail-lf1-x135.google.com ([2a00:1450:4864:20::135]:47257) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qkm0s-0001YD-4C for 66041@debbugs.gnu.org; Mon, 25 Sep 2023 09:52:42 -0400 Received: by mail-lf1-x135.google.com with SMTP id 2adb3069b0e04-50437c618b4so8065039e87.2 for <66041@debbugs.gnu.org>; Mon, 25 Sep 2023 06:52:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1695649939; x=1696254739; darn=debbugs.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=IQizJOgMRoXhJXcz0pywDxFMWMFIKjl2eeUM3+kxw80=; b=XObJvPn5UyVq1fEuKOCcV9csL+hDbFfBPlxDG7VlQbJcUJE6B1oiI8MCblPhusrbSK gtg37/IEUpNPGXZEtjm5jfEWJe9vv6T25wHtdh6a/uUgHgJCvfTsjQGs3jSrclj6QjK1 JGTyM4/j/76O/1KZb/zj0auy+GdiQbCzj+3cqeAYoYMD0N5Tr2rSYynWV4sy/Z4T2FBI zHLsBUDEECe2eIJRcFbmZPwRlOPK+PNHKFWmNPpR5V3vsFntrNDVvBVy9anpO2XiIxcs VJa9HgJaQQOcrhobNZZRi7APv7PVIrfpozECj+HPJ0C6uQwFOvwDRosQaqMo+u0tujNV mRxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695649939; x=1696254739; h=content-transfer-encoding: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=IQizJOgMRoXhJXcz0pywDxFMWMFIKjl2eeUM3+kxw80=; b=FFA1Egze20bMT9wkx0TF0f883nPh1EV8PegVYNY0WSnKyx20PZge9BlD8ffz209XES SKwWJne6lDgIAWSXU2DR/yRc4w4SowqOQGNgJqDlMcRehCO/5SV4xK8tK3S0MOcKuRvH OFDAmkgUH6opH3ACjOnO42Px51Vgisov16aDC+4/a+2MFckIUg5JA+9qsZwW713/k+Z7 p4OLy+MjLSTUPrFLKhbZ3iXCgRahrLj3MJjbkjZ1QDo2t+OvANmf2Y9EBFIxc9JEZl3d ekpfeqgM2wl6ay9pB/mOFEiGA5oK7OACrOEN3x44QhHxOIz3xDxKI1ljesgpyxtqoYmv n08g== X-Gm-Message-State: AOJu0YwXY4ecKwGIjkYTNw2uLfowZx16G+n97wr9tpvpLsxbKrngYZdv +YexKKlyWBCbM0cVv6PRXU25SUo1rDrx3Xm8YeM= X-Google-Smtp-Source: AGHT+IHbpTLxb3LZtIxMH30qf0hYF52v089qFrl639Pjj+yJuLDI02ZgYr4e9de806sBTF5nIRP6ljacN3ImYhRAIqQ= X-Received: by 2002:a05:6512:78:b0:500:90d1:90a6 with SMTP id i24-20020a056512007800b0050090d190a6mr5229166lfo.63.1695649939315; Mon, 25 Sep 2023 06:52:19 -0700 (PDT) MIME-Version: 1.0 References: <1f9e98be-3248-56cf-b7fd-8301666675c6@gmail.com> <1e19cc18-9942-aa51-c49e-9441e873f037@gmail.com> <83edivg3rg.fsf@gnu.org> <83zg1jemi8.fsf@gnu.org> <8d01b781-abac-e22b-39fe-8697a173ad7a@gmail.com> <834jji35nc.fsf@gnu.org> <831qem316n.fsf@gnu.org> <83zg1a1kq9.fsf@gnu.org> In-Reply-To: <83zg1a1kq9.fsf@gnu.org> From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= Date: Mon, 25 Sep 2023 14:52:07 +0100 Message-ID: Subject: Re: bug#66041: 30.0.50; Should 'flymake-note-echo' inherit from 'compilation-info'? To: Eli Zaretskii Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 66041 Cc: jporterbugs@gmail.com, 66041@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 (-) On Mon, Sep 25, 2023 at 1:50=E2=80=AFPM Eli Zaretskii wrote: > > Obviously, because any other character which is not space > > will _also_ fix the trailing whitespace diagnostic issued by the > > checkdoc backend. By definition :-) > > OK, let's back up a notch, because I think I've misunderstood you. Basically, both your suggestions effectively amounted to deleting the second overlay. It would indeed solve the problem but only by destroying the use case. > the overlay that wins is always the last one. > Does this explain what happens? Yes, it does. Although I would expect that when two overlays that compete for the same resource (in this case, the same portion of the left fringe) the overlay with the highest priority would win that competition -- not the "last one". Since I can't change the start and end positions of the overlays, (because they do quite a bit more than specify a 'before-string property), I can't choose which overlay is the "last one". So I guess this bug is very hard to solve until the "last one wins" behaviour your describe is changed. Jo=C3=A3o From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 25 10:19:52 2023 Received: (at 66041) by debbugs.gnu.org; 25 Sep 2023 14:19:52 +0000 Received: from localhost ([127.0.0.1]:46397 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qkmRE-0005Nn-2c for submit@debbugs.gnu.org; Mon, 25 Sep 2023 10:19:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46958) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qkmRB-0005NY-AX for 66041@debbugs.gnu.org; Mon, 25 Sep 2023 10:19:50 -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 1qkmQt-0002t6-BW; Mon, 25 Sep 2023 10:19:31 -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=FYh4q2o3vL7wLxnArD26hzvEjmNVvOk3BquO8Ii8uko=; b=UtTNSsiUdog3q6kMdH5z Z4WsWL/z81+a8QINkyIVQVZ6YMjP50lz6XiwjA+ernvsj7+xRChrw090CSmldZLqKO9VOg2AQF7sp DXRg6e1yNeDD0WpgAkJNDHtqq+AZBzvGA9mgi7TGsZxRO8Pi/ItDo0F4UFn7ZXlmht6QMunbjm2sY SVBSknOca0z5By4FPrNYEDzo+dEu473e1ygryvUofixwcdwD87ytYiWGAJ/+Bi7SdaVNgjp9VQdjR TGCzIHfy+4Ok+bOS/NQ0WWiVZFHy8fXk1AJ95iDefdl8suetfdJuVkqrlnLN90JoJxuybO4RJaXt1 6DZFXUtBLYiRUg==; Date: Mon, 25 Sep 2023 17:19:00 +0300 Message-Id: <83v8by1gkr.fsf@gnu.org> From: Eli Zaretskii To: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= In-Reply-To: (message from =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= on Mon, 25 Sep 2023 14:52:07 +0100) Subject: Re: bug#66041: 30.0.50; Should 'flymake-note-echo' inherit from 'compilation-info'? References: <1f9e98be-3248-56cf-b7fd-8301666675c6@gmail.com> <1e19cc18-9942-aa51-c49e-9441e873f037@gmail.com> <83edivg3rg.fsf@gnu.org> <83zg1jemi8.fsf@gnu.org> <8d01b781-abac-e22b-39fe-8697a173ad7a@gmail.com> <834jji35nc.fsf@gnu.org> <831qem316n.fsf@gnu.org> <83zg1a1kq9.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 66041 Cc: jporterbugs@gmail.com, 66041@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 (---) > From: João Távora > Date: Mon, 25 Sep 2023 14:52:07 +0100 > Cc: jporterbugs@gmail.com, 66041@debbugs.gnu.org > > > Does this explain what happens? > > Yes, it does. Although I would expect that when two overlays > that compete for the same resource (in this case, the > same portion of the left fringe) the overlay with the highest > priority would win that competition -- not the "last one". There's no built-in mechanism for the display engine to do that, and the fact that overlays are processed one by one in the order they are encountered doesn't help: when processing an overlay the display engine has no idea there are other overlays in the same screen line that will "compete" for the fringe display. > Since I can't change the start and end positions of the overlays, > (because they do quite a bit more than specify a 'before-string > property), I can't choose which overlay is the "last one". So I > guess this bug is very hard to solve until the "last one wins" > behaviour your describe is changed. The 'display' property can have the form (when CONDITION . SPEC) where SPEC is your (left-fringe exclamation-mark compilation-warning) spec, and CONDITION is evaluated by the display engine and must be non-nil for SPEC to have effect. The ELisp manual says: You can make any display specification conditional. To do that, package it in another list of the form ‘(when CONDITION . SPEC)’. Then the specification SPEC applies only when CONDITION evaluates to a non-‘nil’ value. During the evaluation, ‘object’ is bound to the string or buffer having the conditional ‘display’ property. ‘position’ and ‘buffer-position’ are bound to the position within ‘object’ and the buffer position where the ‘display’ property was found, respectively. Both positions can be different when ‘object’ is a string. Note that CONDITION will only be evaluated when redisplay examines the text where this display spec is located, so this feature is best suited for conditions that are relatively stable, i.e. yield, for each particular buffer position, the same results on every evaluation. If the results change for the same text location, e.g., if the result depends on the position of point, then the conditional specification might not do what you want, because redisplay examines only those parts of buffer text where it has reasons to assume that something changed since the last display cycle. Did you try using that here? From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 25 12:56:24 2023 Received: (at 66041) by debbugs.gnu.org; 25 Sep 2023 16:56:24 +0000 Received: from localhost ([127.0.0.1]:46525 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qkose-0001cc-CA for submit@debbugs.gnu.org; Mon, 25 Sep 2023 12:56:24 -0400 Received: from mail-lf1-x135.google.com ([2a00:1450:4864:20::135]:54593) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qkosZ-0001cM-G1 for 66041@debbugs.gnu.org; Mon, 25 Sep 2023 12:56:19 -0400 Received: by mail-lf1-x135.google.com with SMTP id 2adb3069b0e04-502e7d66c1eso11135837e87.1 for <66041@debbugs.gnu.org>; Mon, 25 Sep 2023 09:56:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1695660957; x=1696265757; darn=debbugs.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=PxjV4i/Klz/D0wp2Lc56wdBSr8Vv+cqt1XgVo0pqF9c=; b=Hl74pKIwFtfHVh6CXFw6QH4qroBwcGu4V4+4gHQlnUoBCRPhYuZoeZMK3365bqSq7+ bwkZQB7/FOqF/oCNt/7RwYl1XFs/6lGGIRJAmqbLMdl2hhX17C8iyucZxUDatpxtJm1f KuFQccxzbpAeqnOsy3euLT9XcAO42QhJjhhIS/veFAbMd3mlDSitwqls+k/QeB5eOXLN YCU9ktv+paDXVs/s8Q7uV8Zg5gWjqaTo/A1i5lvP5SHUJuTkY0rnjH/dmKz9IRQ7AQ4u N91bgVCRo4HVDdIaFlBIKGzIDz0zXZUHnfybH837J8bGpykYvMI1lM44rKMyjcvUT+f/ tUIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695660957; x=1696265757; h=content-transfer-encoding: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=PxjV4i/Klz/D0wp2Lc56wdBSr8Vv+cqt1XgVo0pqF9c=; b=bNXvBB+Xvyz2ApY23TJIHgHuxHz9oPab5zZOlFN/FCCamWnHZAjPs+MvwIWxJcwE3Q v4jQMs53B9feBI46ckIN3AVEXlR6YZ+pauzgj4SH17gP2SzItJXQDbqm4kIRDe9mqr6T Hl1gWgM8u9e+0T2La7yDshEPy0MTXseGUn7No7jwFJbp/LmMdswyrf+EvvsUGNHsI1K4 HvKUFhsKa0lZ3c/sZIoyhHAXPPZGGKQhrjiEY/rWA0opU60nl9WvwMw2UMzo82nIeacW E46uJcMTZmf0+G2CFdkr7AXqHFV3bB1Naw2E4Njief+/uHPvMPaUtcx0AUB4oWmUv0gG 5Qiw== X-Gm-Message-State: AOJu0Yylvno+NgiZFf161OE9DzCMPfQTCGEynmA4TG4qtVbrqdHBaxYq kgBGWLPApbMILSPegtozCFdPVDLdDhUW6Ybp4hE= X-Google-Smtp-Source: AGHT+IEatP3J+8mKpiJvEaMaq0y7GOxpmoWSlRrq/gN/WyLwHoL0h/O/z4Yk0k7OMHD3ALhQ4P8wrlHctH1CwI0ztj8= X-Received: by 2002:ac2:532d:0:b0:4ff:7046:984a with SMTP id f13-20020ac2532d000000b004ff7046984amr6113685lfh.7.1695660956621; Mon, 25 Sep 2023 09:55:56 -0700 (PDT) MIME-Version: 1.0 References: <1f9e98be-3248-56cf-b7fd-8301666675c6@gmail.com> <1e19cc18-9942-aa51-c49e-9441e873f037@gmail.com> <83edivg3rg.fsf@gnu.org> <83zg1jemi8.fsf@gnu.org> <8d01b781-abac-e22b-39fe-8697a173ad7a@gmail.com> <834jji35nc.fsf@gnu.org> <831qem316n.fsf@gnu.org> <83zg1a1kq9.fsf@gnu.org> <83v8by1gkr.fsf@gnu.org> In-Reply-To: <83v8by1gkr.fsf@gnu.org> From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= Date: Mon, 25 Sep 2023 17:55:45 +0100 Message-ID: Subject: Re: bug#66041: 30.0.50; Should 'flymake-note-echo' inherit from 'compilation-info'? To: Eli Zaretskii Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 66041 Cc: jporterbugs@gmail.com, 66041@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 (-) On Mon, Sep 25, 2023 at 3:19=E2=80=AFPM Eli Zaretskii wrote: > > > From: Jo=C3=A3o T=C3=A1vora > > Date: Mon, 25 Sep 2023 14:52:07 +0100 > > Cc: jporterbugs@gmail.com, 66041@debbugs.gnu.org > > > > > Does this explain what happens? > > > > Yes, it does. Although I would expect that when two overlays > > that compete for the same resource (in this case, the > > same portion of the left fringe) the overlay with the highest > > priority would win that competition -- not the "last one". > > There's no built-in mechanism for the display engine to do that, and > the fact that overlays are processed one by one in the order they are > encountered doesn't help: when processing an overlay the display > engine has no idea there are other overlays in the same screen line > that will "compete" for the fringe display. Could it be changed, as it analyses a line, to keep a record of which overlays have already touched the left fringe for that line (and then clear this record as it moves on to other lines). This would be easiest to implement if the the display doesn't sometimes consider only a fraction of a line.I don't know if this holds true. I assume it does, since otherwise that would mean that if a line is scrolled near the beginning and truncated, the current "last one" criteria you described before also doesn't always hold true. > Did you try using that here? No. It should work, though, but seems fairly complex to implement. Also sounds a bit slow, though the optimizations maybe solve that. IMHO this should be automatic and based on relative overlay priorities. It's too heavy a burden to place on overlay clients. Jo=C3=A3o From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 25 13:24:48 2023 Received: (at 66041) by debbugs.gnu.org; 25 Sep 2023 17:24:48 +0000 Received: from localhost ([127.0.0.1]:46562 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qkpKC-0002Pq-7B for submit@debbugs.gnu.org; Mon, 25 Sep 2023 13:24:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38268) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qkpK8-0002PZ-Rk for 66041@debbugs.gnu.org; Mon, 25 Sep 2023 13:24:46 -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 1qkpJr-0004jq-0V; Mon, 25 Sep 2023 13:24:27 -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=jsX+zoyLOGXzivE61RCxhMSMr3Vb7ghrQ/qrUG3J2Ss=; b=VRXQDs8RyFX46MS3xCAn s9PAaggrVdU3KjDB2DQd29NgKmJAcF1qRYOfvO3dRm8Gah2s+FjLKgT4n+WsPpovzs/eU8Ws3bOVq b45YlnKYWlxE+kSIvmMt3Bej0IH5WcNMSbO4xroqqGu3yitpgEjTaWZtus4uBVlc8hysTMhhjHuGh kw66m4F+kgIQsgVEff0MrbfYlErm05e++biB8o+o4J/T0U6qNZk0znnVDd0ITPk2CgwcZBpaCmS7h rNZ9i3RxEXj7MBZlymL+ICRRekP8fIGb8IfoyY8i+LUxhOhoqtbYSxgxIj/KEXGdxnanCk+2y1kU6 AXUHDRaM42U9sQ==; Date: Mon, 25 Sep 2023 20:23:57 +0300 Message-Id: <83sf72180i.fsf@gnu.org> From: Eli Zaretskii To: =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= In-Reply-To: (message from =?utf-8?B?Sm/Do28gVMOhdm9yYQ==?= on Mon, 25 Sep 2023 17:55:45 +0100) Subject: Re: bug#66041: 30.0.50; Should 'flymake-note-echo' inherit from 'compilation-info'? References: <1f9e98be-3248-56cf-b7fd-8301666675c6@gmail.com> <1e19cc18-9942-aa51-c49e-9441e873f037@gmail.com> <83edivg3rg.fsf@gnu.org> <83zg1jemi8.fsf@gnu.org> <8d01b781-abac-e22b-39fe-8697a173ad7a@gmail.com> <834jji35nc.fsf@gnu.org> <831qem316n.fsf@gnu.org> <83zg1a1kq9.fsf@gnu.org> <83v8by1gkr.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 66041 Cc: jporterbugs@gmail.com, 66041@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 (---) > From: João Távora > Date: Mon, 25 Sep 2023 17:55:45 +0100 > Cc: jporterbugs@gmail.com, 66041@debbugs.gnu.org > > > There's no built-in mechanism for the display engine to do that, and > > the fact that overlays are processed one by one in the order they are > > encountered doesn't help: when processing an overlay the display > > engine has no idea there are other overlays in the same screen line > > that will "compete" for the fringe display. > > Could it be changed, as it analyses a line, to keep a record of > which overlays have already touched the left fringe for that line > (and then clear this record as it moves on to other lines). The display engine does not analyze lines. It starts where it is told to start, and goes on, one buffer position at a time, until some other buffer position, where it was told to stop. To analyze lines means scan each line twice, and the apply some (as yet undefined) logic. > This would be easiest to implement if the the display doesn't > sometimes consider only a fraction of a line.I don't know if this > holds true. That happens in some situations, yes. > I assume it does, since otherwise that would mean that > if a line is scrolled near the beginning and truncated, the current > "last one" criteria you described before also doesn't always > hold true. The "last one" means the last overlay processed on a screen line. > IMHO this should be automatic and based on relative overlay > priorities. Overlay priorities are not for overlays that cover disjoint portions of text. Also, the same problem will happen when several 'display' properties that draw on the fringe are put on buffer text, without any overlays and thus without any priorities to begin with. So if we want to implement something like this in the display engine, we'd need to extend the format of the 'display' property in this case, adding some kind of "priority" there, or maybe extend the fringe bitmap data itself. From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 25 14:23:48 2023 Received: (at 66041) by debbugs.gnu.org; 25 Sep 2023 18:23:48 +0000 Received: from localhost ([127.0.0.1]:46645 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qkqFE-00018k-Bc for submit@debbugs.gnu.org; Mon, 25 Sep 2023 14:23:48 -0400 Received: from mail-lf1-x133.google.com ([2a00:1450:4864:20::133]:50685) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qkqF9-00018L-BD for 66041@debbugs.gnu.org; Mon, 25 Sep 2023 14:23:43 -0400 Received: by mail-lf1-x133.google.com with SMTP id 2adb3069b0e04-5046bf37daeso1720096e87.1 for <66041@debbugs.gnu.org>; Mon, 25 Sep 2023 11:23:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1695666200; x=1696271000; darn=debbugs.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=wl8gNlrVbAJcfjFq6feMXpDpYsYdrHXVGxDDXWfhqiw=; b=JWc/Rcv3NKAEhqk5G0CJBfN8dEerZqeRn43gINbn/iDNLh+6znlxq0lkXOAPKs4wrP SJgNoTueuni9OCTy/SPY9kj5JhCL/OH/r733aIf3qlv2qK44+lLQi64IJf7cuYRfS3TY huG+l3TXclZlP+fRqka6/FoHIJ24M9zU1mXAlc+xtFpoczUPKKf2skY+nND6hE+Syxfa 8OWJa+XQK353Gj3JVcS5YZ2ln3wZGFX8DQ5fhKcbLDuk38glJKzJ1mQGGE7uguQY9DMn GdKP2BJd+RQTlM41Nd6xQULyV2H1vFIitn+zzd6/zB+ouASVhmpIQ9VzDkp2CTvN/s17 zHCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695666200; x=1696271000; h=content-transfer-encoding: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=wl8gNlrVbAJcfjFq6feMXpDpYsYdrHXVGxDDXWfhqiw=; b=P/5D5b3s3cBaoMYl0hNekAFnBtgHvqTn8WB5i8VZAGLloSUawMkP9QzioBuiUQVHiv kQyTTUaJjl2BBHEptBS70RVq5n0gOcRqPR6yh/9oHd/ZQNBQprRWTFUELGABz5KSwCV/ U9wPQuP1sC9UQwabel0gFk8xU5mTFu5M/IkuLQFZxbPs7g5Od4ERyL8AyCGiBK9MO9nm pVeGy0NJUz+KSGGBcvwHj3cunumUG/xbyDHklQSCA9n9qyEP8bqLEX+ZAtVMzuIfYDf2 oOS9xeCKBsi7oJqPKs9gbKl+xvZf+TI6/oeJZScjOJYyuIFSP1xDRA95uwb6PFW0La2Y LakA== X-Gm-Message-State: AOJu0YzCDzZjGWquTKIHNKgTSncxYJa9/29NLMfFYNZrEOMcU5Vejr4H t8WoPq6on/JAgKNYj0Vtm66KNk3IiUGLd3YWBxA= X-Google-Smtp-Source: AGHT+IGbD5uw2cSW5UvpTYVV1NdA5zh5JLZHqQTat3uJVLLnF+MA6hQWeNY/DW96yIvV8MnsVZuNxpRrrtGlKK58i3A= X-Received: by 2002:ac2:5630:0:b0:4f8:7772:3dfd with SMTP id b16-20020ac25630000000b004f877723dfdmr5517176lff.11.1695666199919; Mon, 25 Sep 2023 11:23:19 -0700 (PDT) MIME-Version: 1.0 References: <1f9e98be-3248-56cf-b7fd-8301666675c6@gmail.com> <1e19cc18-9942-aa51-c49e-9441e873f037@gmail.com> <83edivg3rg.fsf@gnu.org> <83zg1jemi8.fsf@gnu.org> <8d01b781-abac-e22b-39fe-8697a173ad7a@gmail.com> <834jji35nc.fsf@gnu.org> <831qem316n.fsf@gnu.org> <83zg1a1kq9.fsf@gnu.org> <83v8by1gkr.fsf@gnu.org> <83sf72180i.fsf@gnu.org> In-Reply-To: <83sf72180i.fsf@gnu.org> From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= Date: Mon, 25 Sep 2023 19:23:08 +0100 Message-ID: Subject: Re: bug#66041: 30.0.50; Should 'flymake-note-echo' inherit from 'compilation-info'? To: Eli Zaretskii Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 66041 Cc: jporterbugs@gmail.com, 66041@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 (-) On Mon, Sep 25, 2023 at 6:24=E2=80=AFPM Eli Zaretskii wrote: > > I assume it does, since otherwise that would mean that > > if a line is scrolled near the beginning and truncated, the current > > "last one" criteria you described before also doesn't always > > hold true. > > The "last one" means the last overlay processed on a screen line. Ah, ok: good to know. > > > IMHO this should be automatic and based on relative overlay > > priorities. > > Overlay priorities are not for overlays that cover disjoint portions > of text. Also, the same problem will happen when several 'display' > properties that draw on the fringe are put on buffer text, without any > overlays and thus without any priorities to begin with. True, I forgot about that. > So if we want > to implement something like this in the display engine, we'd need to > extend the format of the 'display' property in this case, adding some > kind of "priority" there, or maybe extend the fringe bitmap data > itself. I think either is acceptable, though the former is slightly better as it allows one to use the same bitmap data in many priorities. Jo=C3=A3o From debbugs-submit-bounces@debbugs.gnu.org Mon Sep 25 16:55:45 2023 Received: (at 66041) by debbugs.gnu.org; 25 Sep 2023 20:55:45 +0000 Received: from localhost ([127.0.0.1]:46770 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qkscK-0005Q4-LZ for submit@debbugs.gnu.org; Mon, 25 Sep 2023 16:55:45 -0400 Received: from mail-pf1-x433.google.com ([2607:f8b0:4864:20::433]:59557) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qkscF-0005Pm-C7 for 66041@debbugs.gnu.org; Mon, 25 Sep 2023 16:55:43 -0400 Received: by mail-pf1-x433.google.com with SMTP id d2e1a72fcca58-68c576d35feso6622350b3a.2 for <66041@debbugs.gnu.org>; Mon, 25 Sep 2023 13:55:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1695675321; x=1696280121; darn=debbugs.gnu.org; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:mime-version:date:message-id:from:to:cc :subject:date:message-id:reply-to; bh=KJQUl+OEmI/g+fKvWEXk7ZoU0cliUJYUlD3XMKcQbLM=; b=M7gQc4GWWyK+lYfO7WXT1pb6b3f+BDsPhlY2wDDyjmbW+4D+QOFfm3fEu+2qYd3On4 JJAw2L/eOl6OSD104LFsNvj/CUUzPtMhxkxnQwlI4fJUbs0ySKdGWkudwhWzTosfRpOQ lN/OimrtPwBG7DX6vNmgYJpEpmsQEAtClc/UKIfmaJ8U6L9e4ghHneqgMANxXoX7bEkj Yl5glCGCWW/UqKcsL+kaydF0XwPxtPmIO7Q6osooXAnh0mUoEtdeTIJtOc8hI7PFROy0 0924qZbFXkkXG2VSGi/uZnNax7PoC62pErd+AOBqmBczmfv+7oL6NL+SINkgCyu1N/Mi 99/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695675321; x=1696280121; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=KJQUl+OEmI/g+fKvWEXk7ZoU0cliUJYUlD3XMKcQbLM=; b=TwXHsKjE4ARZxP4KvffAkhQ0MUIfRsCJlKLg3CkIgaivec7hBMz0Fh0eww7mdP5JDp 4/CosBWC56ffq4/omp/XO82rIz698WKCCivu5uRB1Zbp75EhCBLV7glhmvS4RvO8Nrq8 lrfsWTNHxLrHT8YIqtp58XOj48guMSErriBk8BL6rcQi1rW3fsK92yTLutkkBHMhTRHj 2Y6ySR0aAAuPc9TZsVSWmPwKgHFLPsmotx32+L0Z87/dRBYN7toahKEeVQuDBZzJ00qq zJUPYVX0P4H8hXcvtFlaqzumDKjzBbLyhZJ1ULvjugrzhL9RQrLdqKlu47VMbyduC8Oz azHA== X-Gm-Message-State: AOJu0YyqOBUfmCalL1T+3xxOODr5wV1ZS653mILEbpjFpmXeBOulEcSz OSYN/oc+AIh2tQDhotZx4jQ= X-Google-Smtp-Source: AGHT+IF3eTVyjJS7FSXbg/LCjZ39P59KFYyPJCrcb5Uz4BgkMa0p6pbUrATQsMrCaUM41afZPJkQtQ== X-Received: by 2002:a05:6a00:1488:b0:68f:e121:b37c with SMTP id v8-20020a056a00148800b0068fe121b37cmr10981627pfu.4.1695675320913; Mon, 25 Sep 2023 13:55:20 -0700 (PDT) Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id s14-20020a62e70e000000b0068fea7d401esm8699916pfh.177.2023.09.25.13.55.19 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 25 Sep 2023 13:55:20 -0700 (PDT) Message-ID: Date: Mon, 25 Sep 2023 13:55:19 -0700 MIME-Version: 1.0 Subject: Re: bug#66041: 30.0.50; Should 'flymake-note-echo' inherit from 'compilation-info'? Content-Language: en-US To: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= , Eli Zaretskii References: <1f9e98be-3248-56cf-b7fd-8301666675c6@gmail.com> <83zg1jemi8.fsf@gnu.org> <8d01b781-abac-e22b-39fe-8697a173ad7a@gmail.com> <834jji35nc.fsf@gnu.org> <831qem316n.fsf@gnu.org> <83zg1a1kq9.fsf@gnu.org> <83v8by1gkr.fsf@gnu.org> <83sf72180i.fsf@gnu.org> From: Jim Porter In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 66041 Cc: 66041@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 (-) On 9/25/2023 11:23 AM, João Távora wrote: > On Mon, Sep 25, 2023 at 6:24 PM Eli Zaretskii wrote: > >> So if we want >> to implement something like this in the display engine, we'd need to >> extend the format of the 'display' property in this case, adding some >> kind of "priority" there, or maybe extend the fringe bitmap data >> itself. > > I think either is acceptable, though the former is slightly better > as it allows one to use the same bitmap data in many priorities. This may or may not be helpful, but back in commit b87400c78b04, I added the ability to specify the particular bitmap to use for a fringe icon. For example, you can set 'bookmark-fringe-mark' to any known fringe bitmap, and then you'll see that bitmap in the fringe for your bookmarks. In essence, this lets you split the semantic meaning for a fringe marker ("this marker means there's a bookmark here") from the actual bitmap data ("what it looks like"). There's probably room to expand this convention from bookmarks to other parts of Emacs, and maybe Flymake could benefit from it. From unknown Tue Jun 17 20:19:42 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Tue, 24 Oct 2023 11:24:07 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator