From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 14 17:07:02 2025 Received: (at submit) by debbugs.gnu.org; 14 Apr 2025 21:07:02 +0000 Received: from localhost ([127.0.0.1]:49272 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u4R1B-0001v1-SY for submit@debbugs.gnu.org; Mon, 14 Apr 2025 17:07:02 -0400 Received: from lists.gnu.org ([2001:470:142::17]:58982) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u4R19-0001uc-PR for submit@debbugs.gnu.org; Mon, 14 Apr 2025 17:07:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1u4R12-0000Fm-D1 for bug-gnu-emacs@gnu.org; Mon, 14 Apr 2025 17:06:53 -0400 Received: from mail-qk1-x72b.google.com ([2607:f8b0:4864:20::72b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1u4R10-0005RP-IS for bug-gnu-emacs@gnu.org; Mon, 14 Apr 2025 17:06:52 -0400 Received: by mail-qk1-x72b.google.com with SMTP id af79cd13be357-7c54a9d3fcaso521842685a.2 for ; Mon, 14 Apr 2025 14:06:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744664804; x=1745269604; darn=gnu.org; h=mime-version:message-id:date:subject:to:from:from:to:cc:subject :date:message-id:reply-to; bh=0M2luttl0Cx85xiXJE69bqLqb2RzBAFxudwLeEWL5PI=; b=dlNLyPsrBIIPIiyhfQfQJiJjYcfslnLQooeQX0AgHqPwwKQXHjkBMSjN/3vu5Yo79g 8OsHlFZ3GQB7tkzpZtY23oTi5QMYHpF+t26+yuyN1A82OrSXabGgaGnJ5Cap1fOTqgwq Gh2+eWdm6k2kWY6fL2M7zLgjJgt/VWURS4kKOAu2nsTVr997fSb0+cKuqX5wPpBWm12C 51SKF/iaEPz4Q06Oh/CHvn3/DWP5MAQkXzYTXcjyU4WBSrcWR66t6dtpC99xmAdDW6oJ ZuuIaG/4AErlUp0Zpcedk7hrzNG5gj9IWoeVEko+dhC81N+xUFT68kyFua1rMP3qrl/H SAvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744664804; x=1745269604; h=mime-version:message-id:date:subject:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=0M2luttl0Cx85xiXJE69bqLqb2RzBAFxudwLeEWL5PI=; b=Q/KEnv74Za1bWb1oHJwQAq5y3aaGe3P1YLinDgP1L/yi1K5Zf8JGlTepeer9SPKbZV +6OgAUP/mtU2JHIN+85fGR65sc5acD1xAU7dUcnIihxkqOSOVJ2sR9Q75095nhwti1yU G19NN+RNKb5eUAGZ24FNRyPUzmaMnDrHUKqyoCZfopZwhWuHq5wwVH/vkyEKM5vhhbDg mbRcjXesX17IKcocQeugI3M3bxjY5nDVg4DGctQV4OFQ+IMPSVHml8LVlMDRqnIfH1qg Hd2UkePftYnInompMCh82Jq2cGMZJJQ/fJiM92zDlBblyIvzIvDKvCid0ZGI767rXvXI XIOg== X-Gm-Message-State: AOJu0Yzib/YfLLdQQr7k/zKzFrH/RRpYA1LK1tqIOvoOwKdaC9hTb9+O ijg0X8T/7G7+xfcDMzuHKascEWkG0PY3rJn/T373hbZr0FwiickKuINjt7cI X-Gm-Gg: ASbGncvGTMhdzy4rEWeKdpKgjHFfv9STcSRdE2ZoDEhAauLtWFQRFTvOr8SOuezhbwP W5NmTxz2tqEHmy6hY0iH0GKl+LnAfJnssaCJcoKm1KozyT4v/xx1ovOZ74pb+X4nRpoiasXVjSd EvziUc4EDDiQlhEzpPONFfebUY3so2cGWQqvCJJeWN5gS8Gi/xQRxN4OtccN/wm3HbvUKr7RJ5J pmlvQmnynR8SOqGl8keHUjEjwtTd2LUeMjlP/OYCaj4j6Gru1tK11Lz7lgk6ATByn0MOEAKbUZp 3YfYXcUbKGwH1Fbd/zAE4oRM1NUkmaPjZ0hROZAKsAVO6gF0SsTJ X-Google-Smtp-Source: AGHT+IGn08AXikM4EA5xV8wjyuuG7voo1XPVoCc6DD6gcMIBbIzxVCK8JZltCftrP2YjlCPKMWqhmw== X-Received: by 2002:a05:620a:d89:b0:7c5:42c8:ac82 with SMTP id af79cd13be357-7c7af10c952mr1972227585a.23.1744664804165; Mon, 14 Apr 2025 14:06:44 -0700 (PDT) Received: from localhost ([96.224.136.38]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7c7a895273csm786147285a.33.2025.04.14.14.06.23 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 14 Apr 2025 14:06:25 -0700 (PDT) From: matthewktromp@gmail.com To: bug-gnu-emacs@gnu.org Subject: adding next-error support for flymake diagnostics buffers Date: Mon, 14 Apr 2025 17:06:21 -0400 Message-ID: <85o6wy78s2.fsf@gmail.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=2607:f8b0:4864:20::72b; envelope-from=matthewktromp@gmail.com; helo=mail-qk1-x72b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: submit 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 (/) --=-=-= Content-Type: text/plain Tags: patch This patch adds next-error support for flymake diagnostics buffers. Buffers created with `flymake-show-buffer-diagnostics' and `flymake-show-project-diagnostics' are now next-error enabled, and `next-error' and `previous-error' will navigate through their listed diagnostics. In GNU Emacs 30.1.50 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo version 1.18.2, Xaw3d scroll bars) Windowing system distributor 'The X.Org Foundation', version 11.0.12101016 System Description: NixOS 24.11 (Vicuna) Configured using: 'configure --prefix=/nix/store/yffwm14bwi3vask5wfx6pcrdgxck61ba-emacs-30.1 --disable-build-details --with-modules --with-x-toolkit=lucid --with-cairo --with-xft --with-compress-install --with-toolkit-scroll-bars --with-native-compilation --without-imagemagick --with-mailutils --without-small-ja-dic --with-tree-sitter --with-xinput2 --without-xwidgets --with-dbus --with-selinux' --=-=-= Content-Type: text/patch Content-Disposition: attachment; filename=0001-next-error-support-for-flymake-diagnostics-buffers.patch diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el index 6cc7e1f7a79..002e587b029 100644 --- a/lisp/progmodes/flymake.el +++ b/lisp/progmodes/flymake.el @@ -1390,6 +1390,10 @@ flymake-mode-map (format "<%s> " flymake-fringe-indicator-position) #'flymake-show-buffer-diagnostics-at-event-line) +(defvar-local flymake-current-diagnostic-line 0 + "The line of the most recently focused diagnostic in the flymake +diagnostics buffer.") + ;;;###autoload (define-minor-mode flymake-mode "Toggle Flymake mode on or off. @@ -1881,7 +1885,8 @@ flymake-pulse-momentary-highlight-region (defun flymake-show-diagnostic (pos &optional other-window) "Show location of diagnostic at POS." (interactive (list (point) t)) - (let* ((id (or (tabulated-list-get-id pos) + (let* ((diagnostics-buffer (current-buffer)) + (id (or (tabulated-list-get-id pos) (user-error "Nothing at point"))) (diag (plist-get id :diagnostic)) (locus (flymake--diag-locus diag)) @@ -1890,6 +1895,7 @@ flymake-show-diagnostic (visit (lambda (b e) (goto-char b) (flymake-pulse-momentary-highlight-region b e)))) + (setq flymake-current-diagnostic-line (line-number-at-pos pos)) (with-current-buffer (cond ((bufferp locus) locus) (t (find-file-noselect locus))) (with-selected-window @@ -1905,6 +1911,8 @@ flymake-show-diagnostic (car beg) (cdr beg)))) (funcall visit bbeg bend))))) + (setq next-error-buffer diagnostics-buffer + next-error-last-buffer diagnostics-buffer) (current-buffer)))) (defun flymake-goto-diagnostic (pos) @@ -2008,6 +2016,23 @@ flymake--diagnostics-base-tabulated-list-format ("Backend" 8 t) ("Message" 0 t)]) +(defun flymake--diagnostics-next-error (n &optional reset) + "`next-error-function' for flymake diagnostics buffers. +N is an integer representing how many errors to move. +If RESET is non-nil, returns to the beginning of the errors before +moving." + (let ((line (if reset 1 flymake-current-diagnostic-line)) + (total-lines (count-lines (point-min) (point-max)))) + (goto-char (point-min)) + (unless (zerop total-lines) + (let ((target-line (+ line n))) + (setq target-line (max 1 target-line)) + (setq target-line (min target-line total-lines)) + (forward-line (1- target-line)))) + (when-let ((win (get-buffer-window nil t))) + (set-window-point win (point))) + (flymake-goto-diagnostic (point)))) + (define-derived-mode flymake-diagnostics-buffer-mode tabulated-list-mode "Flymake diagnostics" "A mode for listing Flymake diagnostics." @@ -2015,6 +2040,9 @@ flymake-diagnostics-buffer-mode (setq tabulated-list-format flymake--diagnostics-base-tabulated-list-format) (setq tabulated-list-entries 'flymake--diagnostics-buffer-entries) + + (setq-local next-error-function #'flymake--diagnostics-next-error) + (tabulated-list-init-header)) (defun flymake--diagnostics-buffer-name () @@ -2036,6 +2064,7 @@ flymake-show-buffer-diagnostics (current-buffer))))) (with-current-buffer target (setq flymake--diagnostics-buffer-source source) + (setq next-error-last-buffer (current-buffer)) (revert-buffer) (display-buffer (current-buffer) `((display-buffer-reuse-window @@ -2085,6 +2114,9 @@ flymake-project-diagnostics-mode (setq tabulated-list-format (vconcat [("File" 25 t)] flymake--diagnostics-base-tabulated-list-format)) + + (setq-local next-error-function #'flymake--diagnostics-next-error) + (setq tabulated-list-entries 'flymake--project-diagnostics-entries) (tabulated-list-init-header)) @@ -2149,6 +2181,7 @@ flymake-show-project-diagnostics (with-current-buffer buffer (flymake-project-diagnostics-mode) (setq-local flymake--project-diagnostic-list-project prj) + (setq next-error-last-buffer (current-buffer)) (revert-buffer) (display-buffer (current-buffer) `((display-buffer-reuse-window --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Tue Apr 15 02:31:30 2025 Received: (at 77809) by debbugs.gnu.org; 15 Apr 2025 06:31:30 +0000 Received: from localhost ([127.0.0.1]:50224 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u4ZpS-00078X-2z for submit@debbugs.gnu.org; Tue, 15 Apr 2025 02:31:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46528) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u4ZpM-00078C-Nc for 77809@debbugs.gnu.org; Tue, 15 Apr 2025 02:31:25 -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 1u4ZpH-0004s4-4c; Tue, 15 Apr 2025 02:31:19 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=0Zh8zK9kRXYs9NcsRI/xv5DqBr5bxyFoHOJHZjeXTVY=; b=ZTdofu4AAtm7 9jfoGfpqgbCnLR3mf9yJlWe8p6hNuOXZvBwXlqJSjwhc5RlC60OvIdv6jnk5x5JEqNf2XiuR0ltB+ NlDuYR8FO7m1mgzTATyNL2PizYLYchD7mdoQW8CANI1ooqYvnJDeSLGa+fZtkekoiN0KxD3X5+1eX 01edfS+UD5JYjGPhioaiiMnJVAtIw0DA+f9vK5XB+LE33/17Ur2llVRculVWFEQDupjwzuf0lCzO0 vvjpVL51M5kmoh6XFXNr04sW+g3h+h9gHB7GZ2OEl3mpModIW5B6BcGCVkbLW8jIZfCQrFe8Uo6Pb hlImDwhJd7TOcGh7e/8FjQ==; Date: Tue, 15 Apr 2025 09:30:23 +0300 Message-Id: <867c3mhr7k.fsf@gnu.org> From: Eli Zaretskii To: matthewktromp@gmail.com, Spencer Baugh In-Reply-To: <85o6wy78s2.fsf@gmail.com> (matthewktromp@gmail.com) Subject: Re: bug#77809: adding next-error support for flymake diagnostics buffers References: <85o6wy78s2.fsf@gmail.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 77809 Cc: 77809@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: matthewktromp@gmail.com > Date: Mon, 14 Apr 2025 17:06:21 -0400 > > Tags: patch > > This patch adds next-error support for flymake diagnostics buffers. > Buffers created with `flymake-show-buffer-diagnostics' and > `flymake-show-project-diagnostics' are now next-error enabled, and > `next-error' and `previous-error' will navigate through their listed > diagnostics. Many buffers which use Flymake already support next-error, don't they? Won't this conflict with those cases? Adding Spencer to the discussion. From debbugs-submit-bounces@debbugs.gnu.org Tue Apr 15 11:36:40 2025 Received: (at 77809) by debbugs.gnu.org; 15 Apr 2025 15:36:40 +0000 Received: from localhost ([127.0.0.1]:53779 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u4iL1-0005ya-Br for submit@debbugs.gnu.org; Tue, 15 Apr 2025 11:36:40 -0400 Received: from mxout5.mail.janestreet.com ([64.215.233.18]:47295) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u4iKx-0005xU-RC for 77809@debbugs.gnu.org; Tue, 15 Apr 2025 11:36:37 -0400 From: Spencer Baugh To: Eli Zaretskii Subject: Re: bug#77809: adding next-error support for flymake diagnostics buffers In-Reply-To: <867c3mhr7k.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 15 Apr 2025 09:30:23 +0300") References: <85o6wy78s2.fsf@gmail.com> <867c3mhr7k.fsf@gnu.org> Date: Tue, 15 Apr 2025 11:36:30 -0400 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=janestreet.com; s=waixah; t=1744731390; bh=FfWbfHbDjInkfmhQXV9wXk5UHMB99SSaKnBNUmnfCQc=; h=From:To:Cc:Subject:In-Reply-To:References:Date; b=2hWoS5mdl78jiD3RP8PpAIbd+/TSbQWXPQFNjsDAQuqZgYcclnmjPW1SFm/PqIVfv B9CnigiJwdSiBpMQn5Ngvb1sp1GsgRDMbY3YY1y3EJmHousok1utIBu+Yoy1cboFHp GI6kAcJTfK/onirIoRMHq/+Rc9poORRM7FJwgOA3De0m/SXDcRjXBsiSEzfPVs8zoR S8D/tiV0ABUP/xa4m0E+lICnVes8sAfysxwdpkW9CIEckvp9QuNHkpxIbEu7gm6bKf wAf/rbwTA1ZX+SgF3UkWGSapX9MCev2dbOvZOA8DmRxzeVTzO1NhbcShCcZWCUhFTQ k5SVZ8Ox6MpoA== X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77809 Cc: 77809@debbugs.gnu.org, matthewktromp@gmail.com 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 (---) Thank you for this long-awaited contribution! Eli Zaretskii writes: >> From: matthewktromp@gmail.com >> Date: Mon, 14 Apr 2025 17:06:21 -0400 >> >> Tags: patch >> >> This patch adds next-error support for flymake diagnostics buffers. >> Buffers created with `flymake-show-buffer-diagnostics' and >> `flymake-show-project-diagnostics' are now next-error enabled, and >> `next-error' and `previous-error' will navigate through their listed >> diagnostics. > > Many buffers which use Flymake already support next-error, don't they? > Won't this conflict with those cases? No, I think this is just giving the diagnostic overview buffers a next-error-function, so that when you use those buffers they will integrate with next-error. >> diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el >> index 6cc7e1f7a79..002e587b029 100644 >> --- a/lisp/progmodes/flymake.el >> +++ b/lisp/progmodes/flymake.el >> @@ -1390,6 +1390,10 @@ flymake-mode-map >> (format "<%s> " flymake-fringe-indicator-position) >> #'flymake-show-buffer-diagnostics-at-event-line) >> >> +(defvar-local flymake-current-diagnostic-line 0 >> + "The line of the most recently focused diagnostic in the flymake >> +diagnostics buffer.") >> + >> ;;;###autoload >> (define-minor-mode flymake-mode >> "Toggle Flymake mode on or off. >> @@ -1881,7 +1885,8 @@ flymake-pulse-momentary-highlight-region >> (defun flymake-show-diagnostic (pos &optional other-window) >> "Show location of diagnostic at POS." >> (interactive (list (point) t)) >> - (let* ((id (or (tabulated-list-get-id pos) >> + (let* ((diagnostics-buffer (current-buffer)) >> + (id (or (tabulated-list-get-id pos) >> (user-error "Nothing at point"))) >> (diag (plist-get id :diagnostic)) >> (locus (flymake--diag-locus diag)) >> @@ -1890,6 +1895,7 @@ flymake-show-diagnostic >> (visit (lambda (b e) >> (goto-char b) >> (flymake-pulse-momentary-highlight-region b e)))) >> + (setq flymake-current-diagnostic-line (line-number-at-pos pos)) >> (with-current-buffer (cond ((bufferp locus) locus) >> (t (find-file-noselect locus))) >> (with-selected-window >> @@ -1905,6 +1911,8 @@ flymake-show-diagnostic >> (car beg) >> (cdr beg)))) >> (funcall visit bbeg bend))))) >> + (setq next-error-buffer diagnostics-buffer >> + next-error-last-buffer diagnostics-buffer) Setting next-error-last-buffer makes sense and matches other buffers which set next-error-function (e.g. xref-goto-xref), but do we need to set next-error-buffer? It seems like setting that is managed by next-error itself. >> (current-buffer)))) >> >> (defun flymake-goto-diagnostic (pos) >> @@ -2008,6 +2016,23 @@ flymake--diagnostics-base-tabulated-list-format >> ("Backend" 8 t) >> ("Message" 0 t)]) >> >> +(defun flymake--diagnostics-next-error (n &optional reset) >> + "`next-error-function' for flymake diagnostics buffers. >> +N is an integer representing how many errors to move. >> +If RESET is non-nil, returns to the beginning of the errors before >> +moving." >> + (let ((line (if reset 1 flymake-current-diagnostic-line)) >> + (total-lines (count-lines (point-min) (point-max)))) >> + (goto-char (point-min)) >> + (unless (zerop total-lines) >> + (let ((target-line (+ line n))) >> + (setq target-line (max 1 target-line)) >> + (setq target-line (min target-line total-lines)) >> + (forward-line (1- target-line)))) >> + (when-let ((win (get-buffer-window nil t))) >> + (set-window-point win (point))) >> + (flymake-goto-diagnostic (point)))) >> + >> (define-derived-mode flymake-diagnostics-buffer-mode tabulated-list-mode >> "Flymake diagnostics" >> "A mode for listing Flymake diagnostics." >> @@ -2015,6 +2040,9 @@ flymake-diagnostics-buffer-mode >> (setq tabulated-list-format flymake--diagnostics-base-tabulated-list-format) >> (setq tabulated-list-entries >> 'flymake--diagnostics-buffer-entries) >> + >> + (setq-local next-error-function #'flymake--diagnostics-next-error) >> + This should be set in the major mode initialization (the body of the define-derived-mode). >> (tabulated-list-init-header)) >> >> (defun flymake--diagnostics-buffer-name () >> @@ -2036,6 +2064,7 @@ flymake-show-buffer-diagnostics >> (current-buffer))))) >> (with-current-buffer target >> (setq flymake--diagnostics-buffer-source source) >> + (setq next-error-last-buffer (current-buffer)) >> (revert-buffer) >> (display-buffer (current-buffer) >> `((display-buffer-reuse-window >> @@ -2085,6 +2114,9 @@ flymake-project-diagnostics-mode >> (setq tabulated-list-format >> (vconcat [("File" 25 t)] >> flymake--diagnostics-base-tabulated-list-format)) >> + >> + (setq-local next-error-function #'flymake--diagnostics-next-error) >> + Likewise, this should be set in the major mode initialization (the body of the define-derived-mode). >> (setq tabulated-list-entries >> 'flymake--project-diagnostics-entries) >> (tabulated-list-init-header)) >> @@ -2149,6 +2181,7 @@ flymake-show-project-diagnostics >> (with-current-buffer buffer >> (flymake-project-diagnostics-mode) >> (setq-local flymake--project-diagnostic-list-project prj) >> + (setq next-error-last-buffer (current-buffer)) >> (revert-buffer) >> (display-buffer (current-buffer) >> `((display-buffer-reuse-window >> From debbugs-submit-bounces@debbugs.gnu.org Tue Apr 15 18:04:02 2025 Received: (at 77809) by debbugs.gnu.org; 15 Apr 2025 22:04:03 +0000 Received: from localhost ([127.0.0.1]:57101 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u4oNq-0001AA-VU for submit@debbugs.gnu.org; Tue, 15 Apr 2025 18:04:02 -0400 Received: from mail-qv1-xf2a.google.com ([2607:f8b0:4864:20::f2a]:58487) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u4oMn-000159-3q for 77809@debbugs.gnu.org; Tue, 15 Apr 2025 18:02:59 -0400 Received: by mail-qv1-xf2a.google.com with SMTP id 6a1803df08f44-6e8f94c2698so30703636d6.0 for <77809@debbugs.gnu.org>; Tue, 15 Apr 2025 15:02:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744754567; x=1745359367; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=s2deR/uvM/oNKWehf4sZPT2wekb0l1w3p+thlPhN8TI=; b=FudEeUnWhPkFdQ1m+3X0MIFdIbQyOdHLyTfPZDPxWg/IpgS9tWtzU7Xy8pQ7+sHAQd niwm4K/SIv1X90W/U2UGVyCfiWop1sdLPw5ndHFhERbiH6QBpCONEvhk1T0vxKMPGTJC usgAAbmLjFpBGI6krYwJzQdGHlLkNqXKkMfwaFLZ4V3B/5md99EGsNvaZTvBROqxYq1U awgcNmBbFfulQd4/3XgJ9B0SPwIcmPnGbaPwCBbyLFO5/DdoI1J5qHLuj+joH9j8ZO4p KVcFvHBz6LJUxst+LAZlGtiPAKDLahIUshD9FOP1vF680i9khHE8to4U8Ho5YLa3j6vB NDMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744754567; x=1745359367; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=s2deR/uvM/oNKWehf4sZPT2wekb0l1w3p+thlPhN8TI=; b=RiBYxBUVJhzMjD8OKBG0xtclu8QgkydNoQxQMSBrjkVX0AHh4IcYzD4qOlnlbz9Q1U uH1QngfHBIhSVJDJikxhCFJDJbu+VwQMWh4F6EDfIBty5k6r9Wlb0WHy6Bfag2+l8ebV GGKFw+px0uIfZQnzqz5rM9+lON/qRmFE7VLhoofrF5TZ89Hw/U5MNimTYT66C2pMIIYy adWV1mASfgWx7q5XgVie1chpuy5xbShZokMnzL/e9MM+rQmGHPXWrJcWVvxqeWey3P3n ehU/lVJLbSPzXUT2hjYpcVWvB9FFYvY7nNcZtPIurct4tcB14CYh/K6i0ZidE7vEE6id h8wQ== X-Forwarded-Encrypted: i=1; AJvYcCWTGGGqfn0TKRIx8UM/Ssux23cGxXe/SpgppDf8PiogyB+1jOwR3qqkVUcQOxmRZbhqoTYkfQ==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yz79N+/TZ0g04Y1L7THXVtgWmU3YQZwKRqXrXwGWoL4JG3nzRr2 d0/RpQw1dmIJNw6YKZE6NQxXLfvVVlPRVUl1saS76cJT+9G3oO3EKySWvcEJYBI= X-Gm-Gg: ASbGnctg8jCsT+mZOgLjwdYNPkjdUP5muGRh6AIr3FvdXI0sqil+1BS9vm7YzUlhPT9 aZVvEtsm2cBH0xmIvmXlb01y5LhZrElvmKa0Rtc7bF6smt2dGom9bwXj6wFoFx91DAXwb7az4F4 picbYdrwvEGIqBcUk1R46DAl4bFsYeXEwyX5KJVs31+WfcPx+RKuqg6Y5d8LtrNmue0naUQEP5m 5MZWyarVFpluKC2e+ftFglEUNhQUfgsY0IFIJHbW84XZE6f5tGNtC/7iNnIQ99viGO80OEl+CMR xdhvmxiMaK/xy9k4f0tDsQO5SQ5I1OgaUOCrftpQ8Q== X-Google-Smtp-Source: AGHT+IGNhtkacQ2qVD1kupuZcInPWOTzUhEgW5odOIuOQdVrQb7CoEsXvaJ+4/AlWSHRlxJ8DuJiQg== X-Received: by 2002:a05:6214:e61:b0:6e8:9a55:824f with SMTP id 6a1803df08f44-6f2ad8c01eamr16921826d6.6.1744754566878; Tue, 15 Apr 2025 15:02:46 -0700 (PDT) Received: from localhost ([96.224.136.38]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-6f0de980505sm106026416d6.53.2025.04.15.15.02.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 15 Apr 2025 15:02:46 -0700 (PDT) From: matthewktromp@gmail.com To: Spencer Baugh Subject: Re: bug#77809: adding next-error support for flymake diagnostics buffers In-Reply-To: (Spencer Baugh's message of "Tue, 15 Apr 2025 11:36:30 -0400") References: <85o6wy78s2.fsf@gmail.com> <867c3mhr7k.fsf@gnu.org> Date: Tue, 15 Apr 2025 18:02:45 -0400 Message-ID: <85lds16q2i.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77809 Cc: 77809@debbugs.gnu.org, 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 (-) --=-=-= Content-Type: text/plain Spencer Baugh writes: >>> (funcall visit bbeg bend))))) >>> + (setq next-error-buffer diagnostics-buffer >>> + next-error-last-buffer diagnostics-buffer) > > Setting next-error-last-buffer makes sense and matches other buffers > which set next-error-function (e.g. xref-goto-xref), but do we need to > set next-error-buffer? It seems like setting that is managed by > next-error itself. I think you're right. That should be removed. >>> (define-derived-mode flymake-diagnostics-buffer-mode tabulated-list-mode >>> "Flymake diagnostics" >>> "A mode for listing Flymake diagnostics." >>> @@ -2015,6 +2040,9 @@ flymake-diagnostics-buffer-mode >>> (setq tabulated-list-format flymake--diagnostics-base-tabulated-list-format) >>> (setq tabulated-list-entries >>> 'flymake--diagnostics-buffer-entries) >>> + >>> + (setq-local next-error-function #'flymake--diagnostics-next-error) >>> + > > This should be set in the major mode initialization (the body of the > define-derived-mode). It is set in the body of the define-derived-mode. >>> @@ -2085,6 +2114,9 @@ flymake-project-diagnostics-mode >>> (setq tabulated-list-format >>> (vconcat [("File" 25 t)] >>> flymake--diagnostics-base-tabulated-list-format)) >>> + >>> + (setq-local next-error-function #'flymake--diagnostics-next-error) >>> + > > Likewise, this should be set in the major mode initialization (the body > of the define-derived-mode). Ditto here. See this patch for changes: --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0001-next-error-support-for-flymake-diagnostics-buffers.patch diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el index 6cc7e1f7a79..8d478f3489a 100644 --- a/lisp/progmodes/flymake.el +++ b/lisp/progmodes/flymake.el @@ -1390,6 +1390,10 @@ flymake-mode-map (format "<%s> " flymake-fringe-indicator-position) #'flymake-show-buffer-diagnostics-at-event-line) +(defvar-local flymake-current-diagnostic-line 0 + "The line of the most recently focused diagnostic in the flymake +diagnostics buffer.") + ;;;###autoload (define-minor-mode flymake-mode "Toggle Flymake mode on or off. @@ -1881,7 +1885,8 @@ flymake-pulse-momentary-highlight-region (defun flymake-show-diagnostic (pos &optional other-window) "Show location of diagnostic at POS." (interactive (list (point) t)) - (let* ((id (or (tabulated-list-get-id pos) + (let* ((diagnostics-buffer (current-buffer)) + (id (or (tabulated-list-get-id pos) (user-error "Nothing at point"))) (diag (plist-get id :diagnostic)) (locus (flymake--diag-locus diag)) @@ -1890,6 +1895,7 @@ flymake-show-diagnostic (visit (lambda (b e) (goto-char b) (flymake-pulse-momentary-highlight-region b e)))) + (setq flymake-current-diagnostic-line (line-number-at-pos pos)) (with-current-buffer (cond ((bufferp locus) locus) (t (find-file-noselect locus))) (with-selected-window @@ -1905,6 +1911,8 @@ flymake-show-diagnostic (car beg) (cdr beg)))) (funcall visit bbeg bend))))) + ;; Emacs < 27 + (setq next-error-last-buffer diagnostics-buffer) (current-buffer)))) (defun flymake-goto-diagnostic (pos) @@ -2008,6 +2016,23 @@ flymake--diagnostics-base-tabulated-list-format ("Backend" 8 t) ("Message" 0 t)]) +(defun flymake--diagnostics-next-error (n &optional reset) + "`next-error-function' for flymake diagnostics buffers. +N is an integer representing how many errors to move. +If RESET is non-nil, returns to the beginning of the errors before +moving." + (let ((line (if reset 1 flymake-current-diagnostic-line)) + (total-lines (count-lines (point-min) (point-max)))) + (goto-char (point-min)) + (unless (zerop total-lines) + (let ((target-line (+ line n))) + (setq target-line (max 1 target-line)) + (setq target-line (min target-line total-lines)) + (forward-line (1- target-line)))) + (when-let ((win (get-buffer-window nil t))) + (set-window-point win (point))) + (flymake-goto-diagnostic (point)))) + (define-derived-mode flymake-diagnostics-buffer-mode tabulated-list-mode "Flymake diagnostics" "A mode for listing Flymake diagnostics." @@ -2015,6 +2040,9 @@ flymake-diagnostics-buffer-mode (setq tabulated-list-format flymake--diagnostics-base-tabulated-list-format) (setq tabulated-list-entries 'flymake--diagnostics-buffer-entries) + + (setq-local next-error-function #'flymake--diagnostics-next-error) + (tabulated-list-init-header)) (defun flymake--diagnostics-buffer-name () @@ -2036,6 +2064,7 @@ flymake-show-buffer-diagnostics (current-buffer))))) (with-current-buffer target (setq flymake--diagnostics-buffer-source source) + (setq next-error-last-buffer (current-buffer)) (revert-buffer) (display-buffer (current-buffer) `((display-buffer-reuse-window @@ -2085,6 +2114,9 @@ flymake-project-diagnostics-mode (setq tabulated-list-format (vconcat [("File" 25 t)] flymake--diagnostics-base-tabulated-list-format)) + + (setq-local next-error-function #'flymake--diagnostics-next-error) + (setq tabulated-list-entries 'flymake--project-diagnostics-entries) (tabulated-list-init-header)) @@ -2149,6 +2181,7 @@ flymake-show-project-diagnostics (with-current-buffer buffer (flymake-project-diagnostics-mode) (setq-local flymake--project-diagnostic-list-project prj) + (setq next-error-last-buffer (current-buffer)) (revert-buffer) (display-buffer (current-buffer) `((display-buffer-reuse-window --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 16 13:42:36 2025 Received: (at 77809) by debbugs.gnu.org; 16 Apr 2025 17:42:38 +0000 Received: from localhost ([127.0.0.1]:41395 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u56mP-0002SY-Ne for submit@debbugs.gnu.org; Wed, 16 Apr 2025 13:42:36 -0400 Received: from mxout5.mail.janestreet.com ([64.215.233.18]:42543) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u56mI-0002Re-TG for 77809@debbugs.gnu.org; Wed, 16 Apr 2025 13:42:30 -0400 From: Spencer Baugh To: matthewktromp@gmail.com Subject: Re: bug#77809: adding next-error support for flymake diagnostics buffers In-Reply-To: <85lds16q2i.fsf@gmail.com> (matthewktromp@gmail.com's message of "Tue, 15 Apr 2025 18:02:45 -0400") References: <85o6wy78s2.fsf@gmail.com> <867c3mhr7k.fsf@gnu.org> <85lds16q2i.fsf@gmail.com> Date: Wed, 16 Apr 2025 13:42:21 -0400 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=janestreet.com; s=waixah; t=1744825341; bh=sDatR2iBnwH8ASLbmZ6nYVEn5mN15/+xWLRtUS4FUFU=; h=From:To:Cc:Subject:In-Reply-To:References:Date; b=FKorFpkAqF8dVil7h8nbajGkK2grtGS/Pnkn+Gj5VMCl+dyJ9O29QHBlnWAPDlXv7 RQd0xUDCFf36wEO5GmakxaqsHYSRwIl9sGycyqqXE6KUIE9LhTeNRfHGOuk6f4RFPK JvRDQwMFd8kOvfFsUTRWSM3K2y608kjNOvYOi0pSU8BrjFcxrzkDQl3gxijBc93YSf DAJzQNDlCqIoWPj8YFP4Q0Dp72OareuVu1w8FdHGrgNwRrdg0Ymv5BigRRlIrtcfbI PgciKKSV0jFQ5XKMqt4RQZPGSM7+h3AOjQkColC0uh4D1Xy/Pr6F+B99lNVKgrhlX1 2YOX3O9PQuqiw== X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 77809 Cc: 77809@debbugs.gnu.org, 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: -3.3 (---) matthewktromp@gmail.com writes: > Spencer Baugh writes: >>>> (funcall visit bbeg bend))))) >>>> + (setq next-error-buffer diagnostics-buffer >>>> + next-error-last-buffer diagnostics-buffer) >> >> Setting next-error-last-buffer makes sense and matches other buffers >> which set next-error-function (e.g. xref-goto-xref), but do we need to >> set next-error-buffer? It seems like setting that is managed by >> next-error itself. > > I think you're right. That should be removed. OK, make sure to include that in the next version of the patch, if one is needed. >>>> (define-derived-mode flymake-diagnostics-buffer-mode tabulated-list-mode >>>> "Flymake diagnostics" >>>> "A mode for listing Flymake diagnostics." >>>> @@ -2015,6 +2040,9 @@ flymake-diagnostics-buffer-mode >>>> (setq tabulated-list-format flymake--diagnostics-base-tabulated-list-format) >>>> (setq tabulated-list-entries >>>> 'flymake--diagnostics-buffer-entries) >>>> + >>>> + (setq-local next-error-function #'flymake--diagnostics-next-error) >>>> + >> >> This should be set in the major mode initialization (the body of the >> define-derived-mode). > > It is set in the body of the define-derived-mode. > >>>> @@ -2085,6 +2114,9 @@ flymake-project-diagnostics-mode >>>> (setq tabulated-list-format >>>> (vconcat [("File" 25 t)] >>>> flymake--diagnostics-base-tabulated-list-format)) >>>> + >>>> + (setq-local next-error-function #'flymake--diagnostics-next-error) >>>> + >> >> Likewise, this should be set in the major mode initialization (the body >> of the define-derived-mode). Oh, my mistake, sorry. This looks good to me then, seems to work fine. Let's wait a few more days for comments and then I think this can be installed. From debbugs-submit-bounces@debbugs.gnu.org Tue Apr 22 15:37:58 2025 Received: (at 77809) by debbugs.gnu.org; 22 Apr 2025 19:37:58 +0000 Received: from localhost ([127.0.0.1]:49986 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u7JRN-0004aa-UL for submit@debbugs.gnu.org; Tue, 22 Apr 2025 15:37:58 -0400 Received: from mxout5.mail.janestreet.com ([64.215.233.18]:35105) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u7JRK-0004aI-WE for 77809@debbugs.gnu.org; Tue, 22 Apr 2025 15:37:55 -0400 From: Spencer Baugh To: matthewktromp@gmail.com Subject: Re: bug#77809: adding next-error support for flymake diagnostics buffers In-Reply-To: (Spencer Baugh's message of "Wed, 16 Apr 2025 13:42:21 -0400") References: <85o6wy78s2.fsf@gmail.com> <867c3mhr7k.fsf@gnu.org> <85lds16q2i.fsf@gmail.com> Date: Tue, 22 Apr 2025 15:37:49 -0400 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=janestreet.com; s=waixah; t=1745350669; bh=derp96Yc8YtbnsoJqJUOpU4FZOdis1or+yn0C0gC52o=; h=From:To:Cc:Subject:In-Reply-To:References:Date; b=XlAvQ5AsP7usVR4X/krGwnHMD3yxLwgqATG3GdK/NAussh2h+BTRuRG8SvJvExfsy gr13RUbSvdbCPwE0O1uthbeWelHrgNuaPykFj9UP2DsgfyapWq99knbbmt20vyeqvP WKSRkvj2EeEttk2SmMijwAyy4UEhlazHxoBcVHSduwC1ntfoM7zLtApEQozvqAO8Yw l/0MXaI716Mi2CNUfOJBX03TPq5y7fDcwIaiOP5s0qettq/YMgm9fFjWwdHXL1Am2X hcxn8bNzh8ovis6N4MuJ1hX9wRKOpcBhWOZ5i1SmjqirKywHkde1G0V2fPVUfIp3qg ndaKSGgEza3Sg== X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 77809 Cc: 77809@debbugs.gnu.org, 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: -3.3 (---) --=-=-= Content-Type: text/plain Spencer Baugh writes: > This looks good to me then, seems to work fine. Let's wait a few more > days for comments and then I think this can be installed. I think this is ready to be installed. I went ahead and updated your commit message to include a changelog entry - please include that in future changes, see "Generating ChangeLog entries" in CONTRIBUTE. Eli, can you please install the attached change? --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0001-Add-next-error-support-for-flymake-diagnostics-buffe.patch >From cdfac45643803685b60c09d0f45b7d6e2f8f4289 Mon Sep 17 00:00:00 2001 From: Matthew Tromp Date: Tue, 22 Apr 2025 15:27:58 -0400 Subject: [PATCH] Add next-error support for flymake diagnostics buffers This patch adds next-error support for flymake diagnostics buffers. Buffers created with `flymake-show-buffer-diagnostics' and `flymake-show-project-diagnostics' are now next-error enabled, and `next-error' and `previous-error' will navigate through their listed diagnostics. * lisp/progmodes/flymake.el (flymake-current-diagnostic-line) (flymake--diagnostics-next-error): Add. (flymake-show-diagnostic, flymake-show-buffer-diagnostics) (flymake-show-project-diagnostics): Set next-error-last-buffer. (flymake--tabulated-setup): Set next-error-function. (bug#77809) --- lisp/progmodes/flymake.el | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/lisp/progmodes/flymake.el b/lisp/progmodes/flymake.el index 8d63b23f2b8..3e2c24339a8 100644 --- a/lisp/progmodes/flymake.el +++ b/lisp/progmodes/flymake.el @@ -1457,6 +1457,10 @@ flymake-mode-map map) "Keymap for `flymake-mode'") +(defvar-local flymake-current-diagnostic-line 0 + "The line of the most recently focused diagnostic in the flymake +diagnostics buffer.") + ;;;###autoload (define-minor-mode flymake-mode "Toggle Flymake mode on or off. @@ -1917,7 +1921,8 @@ flymake-diagnostics-buffer-mode-map (defun flymake-show-diagnostic (pos &optional other-window) "From Flymake diagnostics buffer, show source of diagnostic at POS." (interactive (list (point) t)) - (let* ((id (or (tabulated-list-get-id pos) + (let* ((diagnostics-buffer (current-buffer)) + (id (or (tabulated-list-get-id pos) (user-error "Nothing at point"))) (diag (plist-get id :diagnostic)) (locus (flymake--diag-locus diag)) @@ -1927,6 +1932,7 @@ flymake-show-diagnostic (goto-char b) (pulse-momentary-highlight-region b (or e (line-end-position)))))) + (setq flymake-current-diagnostic-line (line-number-at-pos pos)) (with-current-buffer (cond ((bufferp locus) locus) (t (find-file-noselect locus))) (with-selected-window @@ -1942,6 +1948,8 @@ flymake-show-diagnostic (car beg) (cdr beg)))) (funcall visit bbeg bend))))) + ;; Emacs < 27 + (setq next-error-last-buffer diagnostics-buffer) (current-buffer)))) (defun flymake-goto-diagnostic (pos) @@ -2055,6 +2063,7 @@ flymake--tabulated-setup-1 (defun flymake--tabulated-setup (use-project) "Helper for `flymake-diagnostics-buffer-mode'. And also `flymake-project-diagnostics-mode'." + (setq-local next-error-function #'flymake--diagnostics-next-error) (let ((saved-r-b-f revert-buffer-function) (refresh (lambda () @@ -2084,6 +2093,23 @@ flymake--tabulated-setup (funcall refresh) (apply saved-r-b-f args))))) +(defun flymake--diagnostics-next-error (n &optional reset) + "`next-error-function' for flymake diagnostics buffers. +N is an integer representing how many errors to move. +If RESET is non-nil, returns to the beginning of the errors before +moving." + (let ((line (if reset 1 flymake-current-diagnostic-line)) + (total-lines (count-lines (point-min) (point-max)))) + (goto-char (point-min)) + (unless (zerop total-lines) + (let ((target-line (+ line n))) + (setq target-line (max 1 target-line)) + (setq target-line (min target-line total-lines)) + (forward-line (1- target-line)))) + (when-let ((win (get-buffer-window nil t))) + (set-window-point win (point))) + (flymake-goto-diagnostic (point)))) + (define-derived-mode flymake-diagnostics-buffer-mode tabulated-list-mode "Flymake diagnostics" "A mode for listing Flymake diagnostics." @@ -2140,6 +2166,7 @@ flymake-show-buffer-diagnostics window) (with-current-buffer target (setq flymake--diagnostics-buffer-source source) + (setq next-error-last-buffer (current-buffer)) (revert-buffer) (setq window (display-buffer (current-buffer) @@ -2246,6 +2273,7 @@ flymake-show-project-diagnostics (with-current-buffer buffer (flymake-project-diagnostics-mode) (setq-local flymake--project-diagnostic-list-project prj) + (setq next-error-last-buffer (current-buffer)) (revert-buffer) (display-buffer (current-buffer) `((display-buffer-reuse-window -- 2.39.3 --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Wed Apr 23 07:47:01 2025 Received: (at 77809) by debbugs.gnu.org; 23 Apr 2025 11:47:01 +0000 Received: from localhost ([127.0.0.1]:54976 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u7YZ9-0007xA-OV for submit@debbugs.gnu.org; Wed, 23 Apr 2025 07:47:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57760) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u7YZ5-0007vs-N8 for 77809@debbugs.gnu.org; Wed, 23 Apr 2025 07:46: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 1u7YYy-0005OA-3S; Wed, 23 Apr 2025 07:46:48 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=ONXkY6ZEm8GMme1MSmu5ObckT5mtQxr3IJvv/UdGtv0=; b=Dll7qIwp98Mi lMiAyktn7kWBFxUfB/JnOEuuuwiRSer1fkSsphB+Se+6eLia9FF0CbqGX4qhTL+gdEYLQ0LVzQCRh F32bzSszua1tRykYcaTY5M5GTPgTVo3FK1Fg0QQ2x2tWmjoFl3+ETQDXPtAIgbSvp9CfZlRzWR9PP cTXoSP/TmIWwTIUIwFfjPqSL4GX2MyKRWXTP99Yo/oLLHyhhysxVfU4Hk6pP12Zkk/kTksW8Yv3d2 LIcqggYy/kKPgN7lz52ZO5LC/fWbckgZxEhpSk3MRLcNkfD77nwOX7GGy4AmJ77Ajn5sC3UHrDaPL /E9r9FgOAGr37OJvjeRs4g==; Date: Wed, 23 Apr 2025 14:46:37 +0300 Message-Id: <86plh314o2.fsf@gnu.org> From: Eli Zaretskii To: Spencer Baugh In-Reply-To: (message from Spencer Baugh on Tue, 22 Apr 2025 15:37:49 -0400) Subject: Re: bug#77809: adding next-error support for flymake diagnostics buffers References: <85o6wy78s2.fsf@gmail.com> <867c3mhr7k.fsf@gnu.org> <85lds16q2i.fsf@gmail.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 77809 Cc: 77809@debbugs.gnu.org, matthewktromp@gmail.com 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: Spencer Baugh > Cc: 77809@debbugs.gnu.org, Eli Zaretskii > Date: Tue, 22 Apr 2025 15:37:49 -0400 > > I think this is ready to be installed. I went ahead and updated your > commit message to include a changelog entry - please include that in > future changes, see "Generating ChangeLog entries" in CONTRIBUTE. > > Eli, can you please install the attached change? See below. > +(defvar-local flymake-current-diagnostic-line 0 > + "The line of the most recently focused diagnostic in the flymake > +diagnostics buffer.") The first line of a doc string should be a single complete sentence. > +(defun flymake--diagnostics-next-error (n &optional reset) > + "`next-error-function' for flymake diagnostics buffers. > +N is an integer representing how many errors to move. > +If RESET is non-nil, returns to the beginning of the errors before ^^^^^^^ "return" Thanks. From debbugs-submit-bounces@debbugs.gnu.org Fri Apr 25 13:44:30 2025 Received: (at 77809) by debbugs.gnu.org; 25 Apr 2025 17:44:30 +0000 Received: from localhost ([127.0.0.1]:52494 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u8N6D-00021C-Hx for submit@debbugs.gnu.org; Fri, 25 Apr 2025 13:44:30 -0400 Received: from mail-ed1-x534.google.com ([2a00:1450:4864:20::534]:53715) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u8N6A-00020k-ND for 77809@debbugs.gnu.org; Fri, 25 Apr 2025 13:44:27 -0400 Received: by mail-ed1-x534.google.com with SMTP id 4fb4d7f45d1cf-5f4d28d9fd8so3168836a12.3 for <77809@debbugs.gnu.org>; Fri, 25 Apr 2025 10:44:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745603060; x=1746207860; 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=/nsveUmIwtPaADNLAS1vatqmv0T6srK45evcWyW2gm0=; b=UC5+wk6Zd0eza1E6HEQL8xi46bvXAbfquR00kRrWuenEMb4RLVqnqgEzFlNpAl7EP6 RNvFXwuv6IJqbFhFyyddMuQVAUg3AashdDyrVSu+eELwjloTrvfcF5dCJKKJu95p2F2M 7Kumt6B2i75lDQtxslTomS6EduvHf+tEpigS+zPnu/L35tj7rn75p3UC0XGwqxs3sYIU PgggVdjcPEBwBK3Qbp+klWbkmE8esWQKiJvXVLXpbCNR8t3PZE0fRN9miMbMFGCRnUUw b5x7p953MGwbUBOFhaX+kfYdQrfWxWcBPbwIEIvMOz6De3EOwcks83V+Q8i/OiRs6xVz QQqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745603060; x=1746207860; 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=/nsveUmIwtPaADNLAS1vatqmv0T6srK45evcWyW2gm0=; b=JFEq8++PL76Ze2aH87QK95xtlrBjdRIp+5dN0ejy6tICKh10HvIPf2HF/0m8iBzqOJ DHvs4fX4GIghAEnDJYce5mUnJLq7x/ENQQ+24LuV2S8Oa5Ky5R6vQsquPn+9BEb+ka8n G4ib9yymiDOvkDc7q9Gi5MKssuWHQ3uroYRTFyHXRjW2COxDSiq4vab8Svsy/W2wxIfh eWmYZili+9RjBwu0pB8504jRIH7/77xcwxEvPcVIZvhDmgD5G6begWUXfxEm8lfEclhv 4nvT4pn7Pk8AJY/4yqBxofFNyxccbCt53T2UnxnPBpChbZWBUqTkIMver8KfVbb4Nlnm 4VhQ== X-Forwarded-Encrypted: i=1; AJvYcCUd6UeeVRvZa4gTGuKhpxDHwTRIK5UQ8/apWfFO/SOSwcb62GH1LJ4LaMRXU+VxKvjluqIRvQ==@debbugs.gnu.org X-Gm-Message-State: AOJu0YzfaAop0khPe53FCHMFQLwUiuIasqWRxuDABva49GUxFX7Va9tQ UvucvSzcD5yLpP3FrJwpJW8wqFq6H7PoW0fEsNbOWosHx18wBN2MpPgrudc08676ttB8iT7KRAk hFvMZrQ5d579djj6W9cVkKlA+gp8= X-Gm-Gg: ASbGncvze4J580NHRGrFtM++Ik2z43UkPr+4g8XNfq36UWFnQVU9yPxwPlyxL9YMLwT CNR52tyVDKgB5aUIntTNADk3h/waTVL88HzTUsjwmAhjm/fQIQvK4L9nJ/piuwhD0t01k+Iqg8f nu6F06/MxIuY6EQHDwjNxIhQ== X-Google-Smtp-Source: AGHT+IHZ4Ck+GlHDCNTRts1bXLGSH2UkFa0ycwCJIBRQEdeA1/zRNfCrKbJOt1tSIQ5Psf7Un9C+9Y4LJk7X0dQDFOA= X-Received: by 2002:a17:907:7e95:b0:ac7:16eb:8499 with SMTP id a640c23a62f3a-ace848c0148mr25321066b.5.1745603060013; Fri, 25 Apr 2025 10:44:20 -0700 (PDT) MIME-Version: 1.0 References: <85o6wy78s2.fsf@gmail.com> <867c3mhr7k.fsf@gnu.org> <85lds16q2i.fsf@gmail.com> <86plh314o2.fsf@gnu.org> In-Reply-To: <86plh314o2.fsf@gnu.org> From: Matthew Tromp Date: Fri, 25 Apr 2025 13:43:57 -0400 X-Gm-Features: ATxdqUEYnMwsyYpu5zMsnXeti9-SE4elmAc-baNqfuIv-jLquULOtKKqcQbu0l4 Message-ID: Subject: Re: bug#77809: adding next-error support for flymake diagnostics buffers To: Eli Zaretskii Content-Type: multipart/mixed; boundary="00000000000050088e06339de2f0" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77809 Cc: 77809@debbugs.gnu.org, Spencer Baugh 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 (-) --00000000000050088e06339de2f0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Here you go On Wed, Apr 23, 2025 at 7:46=E2=80=AFAM Eli Zaretskii wrote: > > > From: Spencer Baugh > > Cc: 77809@debbugs.gnu.org, Eli Zaretskii > > Date: Tue, 22 Apr 2025 15:37:49 -0400 > > > > I think this is ready to be installed. I went ahead and updated your > > commit message to include a changelog entry - please include that in > > future changes, see "Generating ChangeLog entries" in CONTRIBUTE. > > > > Eli, can you please install the attached change? > > See below. > > > +(defvar-local flymake-current-diagnostic-line 0 > > + "The line of the most recently focused diagnostic in the flymake > > +diagnostics buffer.") > > The first line of a doc string should be a single complete sentence. > > > +(defun flymake--diagnostics-next-error (n &optional reset) > > + "`next-error-function' for flymake diagnostics buffers. > > +N is an integer representing how many errors to move. > > +If RESET is non-nil, returns to the beginning of the errors before > ^^^^^^^ > "return" > > Thanks. --00000000000050088e06339de2f0 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Add-next-error-support-for-flymake-diagnostics-buffe.patch" Content-Disposition: attachment; filename="0001-Add-next-error-support-for-flymake-diagnostics-buffe.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m9x2xp150 RnJvbSBkZTdmZTdkMjQxMjllZDYwMzljNDVlMDczNDE0MTgxNTFiYzc1ZjBlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXR0aGV3IFRyb21wIDxtYXR0aGV3a3Ryb21wQGdtYWlsLmNv bT4KRGF0ZTogVHVlLCAyMiBBcHIgMjAyNSAxNToyNzo1OCAtMDQwMApTdWJqZWN0OiBbUEFUQ0hd IEFkZCBuZXh0LWVycm9yIHN1cHBvcnQgZm9yIGZseW1ha2UgZGlhZ25vc3RpY3MgYnVmZmVycwoK VGhpcyBwYXRjaCBhZGRzIG5leHQtZXJyb3Igc3VwcG9ydCBmb3IgZmx5bWFrZSBkaWFnbm9zdGlj cyBidWZmZXJzLgpCdWZmZXJzIGNyZWF0ZWQgd2l0aCBgZmx5bWFrZS1zaG93LWJ1ZmZlci1kaWFn bm9zdGljcycgYW5kCmBmbHltYWtlLXNob3ctcHJvamVjdC1kaWFnbm9zdGljcycgYXJlIG5vdyBu ZXh0LWVycm9yIGVuYWJsZWQsIGFuZApgbmV4dC1lcnJvcicgYW5kIGBwcmV2aW91cy1lcnJvcicg d2lsbCBuYXZpZ2F0ZSB0aHJvdWdoIHRoZWlyIGxpc3RlZApkaWFnbm9zdGljcy4KCiogbGlzcC9w cm9nbW9kZXMvZmx5bWFrZS5lbCAoZmx5bWFrZS1jdXJyZW50LWRpYWdub3N0aWMtbGluZSkKKGZs eW1ha2UtLWRpYWdub3N0aWNzLW5leHQtZXJyb3IpOiBBZGQuCihmbHltYWtlLXNob3ctZGlhZ25v c3RpYywgZmx5bWFrZS1zaG93LWJ1ZmZlci1kaWFnbm9zdGljcykKKGZseW1ha2Utc2hvdy1wcm9q ZWN0LWRpYWdub3N0aWNzKTogU2V0IG5leHQtZXJyb3ItbGFzdC1idWZmZXIuCihmbHltYWtlLS10 YWJ1bGF0ZWQtc2V0dXApOiBTZXQgbmV4dC1lcnJvci1mdW5jdGlvbi4gKGJ1ZyM3NzgwOSkKLS0t CiBsaXNwL3Byb2dtb2Rlcy9mbHltYWtlLmVsIHwgMjkgKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0KIDEgZmlsZSBjaGFuZ2VkLCAyOCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpk aWZmIC0tZ2l0IGEvbGlzcC9wcm9nbW9kZXMvZmx5bWFrZS5lbCBiL2xpc3AvcHJvZ21vZGVzL2Zs eW1ha2UuZWwKaW5kZXggOTc0YWM2NjQ4MjIuLjE1MmM0ZThkOTlhIDEwMDY0NAotLS0gYS9saXNw L3Byb2dtb2Rlcy9mbHltYWtlLmVsCisrKyBiL2xpc3AvcHJvZ21vZGVzL2ZseW1ha2UuZWwKQEAg LTE0NjAsNiArMTQ2MCw5IEBAIGZseW1ha2UtbW9kZS1tYXAKICAgICBtYXApCiAgICJLZXltYXAg Zm9yIGBmbHltYWtlLW1vZGUnIikKIAorKGRlZnZhci1sb2NhbCBmbHltYWtlLWN1cnJlbnQtZGlh Z25vc3RpYy1saW5lIDAKKyAgIlRoZSBsaW5lIG9mIHRoZSBtb3N0IHJlY2VudGx5IGZvY3VzZWQg ZGlhZ25vc3RpYyBpbiBhIGRpYWdub3N0aWNzIGJ1ZmZlci4iKQorCiA7OzsjIyNhdXRvbG9hZAog KGRlZmluZS1taW5vci1tb2RlIGZseW1ha2UtbW9kZQogICAiVG9nZ2xlIEZseW1ha2UgbW9kZSBv biBvciBvZmYuCkBAIC0xOTIwLDcgKzE5MjMsOCBAQCBmbHltYWtlLWRpYWdub3N0aWNzLWJ1ZmZl ci1tb2RlLW1hcAogKGRlZnVuIGZseW1ha2Utc2hvdy1kaWFnbm9zdGljIChwb3MgJm9wdGlvbmFs IG90aGVyLXdpbmRvdykKICAgIkZyb20gRmx5bWFrZSBkaWFnbm9zdGljcyBidWZmZXIsIHNob3cg c291cmNlIG9mIGRpYWdub3N0aWMgYXQgUE9TLiIKICAgKGludGVyYWN0aXZlIChsaXN0IChwb2lu dCkgdCkpCi0gIChsZXQqICgoaWQgKG9yICh0YWJ1bGF0ZWQtbGlzdC1nZXQtaWQgcG9zKQorICAo bGV0KiAoKGRpYWdub3N0aWNzLWJ1ZmZlciAoY3VycmVudC1idWZmZXIpKQorICAgICAgICAgKGlk IChvciAodGFidWxhdGVkLWxpc3QtZ2V0LWlkIHBvcykKICAgICAgICAgICAgICAgICAgKHVzZXIt ZXJyb3IgIk5vdGhpbmcgYXQgcG9pbnQiKSkpCiAgICAgICAgICAoZGlhZyAocGxpc3QtZ2V0IGlk IDpkaWFnbm9zdGljKSkKICAgICAgICAgIChsb2N1cyAoZmx5bWFrZS0tZGlhZy1sb2N1cyBkaWFn KSkKQEAgLTE5MzAsNiArMTkzNCw3IEBAIGZseW1ha2Utc2hvdy1kaWFnbm9zdGljCiAgICAgICAg ICAgICAgICAgICAoZ290by1jaGFyIGIpCiAgICAgICAgICAgICAgICAgICAocHVsc2UtbW9tZW50 YXJ5LWhpZ2hsaWdodC1yZWdpb24KICAgICAgICAgICAgICAgICAgICBiIChvciBlIChsaW5lLWVu ZC1wb3NpdGlvbikpKSkpKQorICAgIChzZXRxIGZseW1ha2UtY3VycmVudC1kaWFnbm9zdGljLWxp bmUgKGxpbmUtbnVtYmVyLWF0LXBvcyBwb3MpKQogICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIChj b25kICgoYnVmZmVycCBsb2N1cykgbG9jdXMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHQgKGZpbmQtZmlsZS1ub3NlbGVjdCBsb2N1cykpKQogICAgICAgKHdpdGgtc2VsZWN0ZWQt d2luZG93CkBAIC0xOTQ1LDYgKzE5NTAsOCBAQCBmbHltYWtlLXNob3ctZGlhZ25vc3RpYwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYXIgYmVnKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjZHIgYmVn KSkpKQogICAgICAgICAgICAgICAgICAoZnVuY2FsbCB2aXNpdCBiYmVnIGJlbmQpKSkpKQorICAg ICAgOzsgRW1hY3MgPCAyNworICAgICAgKHNldHEgbmV4dC1lcnJvci1sYXN0LWJ1ZmZlciBkaWFn bm9zdGljcy1idWZmZXIpCiAgICAgICAoY3VycmVudC1idWZmZXIpKSkpCiAKIChkZWZ1biBmbHlt YWtlLWdvdG8tZGlhZ25vc3RpYyAocG9zKQpAQCAtMjA1OCw2ICsyMDY1LDcgQEAgZmx5bWFrZS0t dGFidWxhdGVkLXNldHVwLTEKIChkZWZ1biBmbHltYWtlLS10YWJ1bGF0ZWQtc2V0dXAgKHVzZS1w cm9qZWN0KQogICAiSGVscGVyIGZvciBgZmx5bWFrZS1kaWFnbm9zdGljcy1idWZmZXItbW9kZScu CiBBbmQgYWxzbyBgZmx5bWFrZS1wcm9qZWN0LWRpYWdub3N0aWNzLW1vZGUnLiIKKyAgKHNldHEt bG9jYWwgbmV4dC1lcnJvci1mdW5jdGlvbiAjJ2ZseW1ha2UtLWRpYWdub3N0aWNzLW5leHQtZXJy b3IpCiAgIChsZXQgKChzYXZlZC1yLWItZiByZXZlcnQtYnVmZmVyLWZ1bmN0aW9uKQogICAgICAg ICAocmVmcmVzaAogICAgICAgICAgKGxhbWJkYSAoKQpAQCAtMjA4Nyw2ICsyMDk1LDIzIEBAIGZs eW1ha2UtLXRhYnVsYXRlZC1zZXR1cAogICAgICAgICAgICAgKGZ1bmNhbGwgcmVmcmVzaCkKICAg ICAgICAgICAgIChhcHBseSBzYXZlZC1yLWItZiBhcmdzKSkpKSkKIAorKGRlZnVuIGZseW1ha2Ut LWRpYWdub3N0aWNzLW5leHQtZXJyb3IgKG4gJm9wdGlvbmFsIHJlc2V0KQorICAiYG5leHQtZXJy b3ItZnVuY3Rpb24nIGZvciBmbHltYWtlIGRpYWdub3N0aWNzIGJ1ZmZlcnMuCitOIGlzIGFuIGlu dGVnZXIgcmVwcmVzZW50aW5nIGhvdyBtYW55IGVycm9ycyB0byBtb3ZlLgorSWYgUkVTRVQgaXMg bm9uLW5pbCwgcmV0dXJuIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGVycm9ycyBiZWZvcmUKK21v dmluZy4iCisgIChsZXQgKChsaW5lIChpZiByZXNldCAxIGZseW1ha2UtY3VycmVudC1kaWFnbm9z dGljLWxpbmUpKQorICAgICAgICAodG90YWwtbGluZXMgKGNvdW50LWxpbmVzIChwb2ludC1taW4p IChwb2ludC1tYXgpKSkpCisgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAgICAodW5sZXNz ICh6ZXJvcCB0b3RhbC1saW5lcykKKyAgICAgIChsZXQgKCh0YXJnZXQtbGluZSAoKyBsaW5lIG4p KSkKKyAgICAgICAgKHNldHEgdGFyZ2V0LWxpbmUgKG1heCAxIHRhcmdldC1saW5lKSkKKyAgICAg ICAgKHNldHEgdGFyZ2V0LWxpbmUgKG1pbiB0YXJnZXQtbGluZSB0b3RhbC1saW5lcykpCisgICAg ICAgIChmb3J3YXJkLWxpbmUgKDEtIHRhcmdldC1saW5lKSkpKQorICAgICh3aGVuLWxldCAoKHdp biAoZ2V0LWJ1ZmZlci13aW5kb3cgbmlsIHQpKSkKKyAgICAgIChzZXQtd2luZG93LXBvaW50IHdp biAocG9pbnQpKSkKKyAgICAoZmx5bWFrZS1nb3RvLWRpYWdub3N0aWMgKHBvaW50KSkpKQorCiAo ZGVmaW5lLWRlcml2ZWQtbW9kZSBmbHltYWtlLWRpYWdub3N0aWNzLWJ1ZmZlci1tb2RlIHRhYnVs YXRlZC1saXN0LW1vZGUKICAgIkZseW1ha2UgZGlhZ25vc3RpY3MiCiAgICJBIG1vZGUgZm9yIGxp c3RpbmcgRmx5bWFrZSBkaWFnbm9zdGljcy4iCkBAIC0yMTQzLDYgKzIxNjgsNyBAQCBmbHltYWtl LXNob3ctYnVmZmVyLWRpYWdub3N0aWNzCiAgICAgICAgICB3aW5kb3cpCiAgICAgKHdpdGgtY3Vy cmVudC1idWZmZXIgdGFyZ2V0CiAgICAgICAoc2V0cSBmbHltYWtlLS1kaWFnbm9zdGljcy1idWZm ZXItc291cmNlIHNvdXJjZSkKKyAgICAgIChzZXRxIG5leHQtZXJyb3ItbGFzdC1idWZmZXIgKGN1 cnJlbnQtYnVmZmVyKSkKICAgICAgIChyZXZlcnQtYnVmZmVyKQogICAgICAgKHNldHEgd2luZG93 CiAgICAgICAgICAgICAoZGlzcGxheS1idWZmZXIgKGN1cnJlbnQtYnVmZmVyKQpAQCAtMjI0OSw2 ICsyMjc1LDcgQEAgZmx5bWFrZS1zaG93LXByb2plY3QtZGlhZ25vc3RpY3MKICAgICAod2l0aC1j dXJyZW50LWJ1ZmZlciBidWZmZXIKICAgICAgIChmbHltYWtlLXByb2plY3QtZGlhZ25vc3RpY3Mt bW9kZSkKICAgICAgIChzZXRxLWxvY2FsIGZseW1ha2UtLXByb2plY3QtZGlhZ25vc3RpYy1saXN0 LXByb2plY3QgcHJqKQorICAgICAgKHNldHEgbmV4dC1lcnJvci1sYXN0LWJ1ZmZlciAoY3VycmVu dC1idWZmZXIpKQogICAgICAgKHJldmVydC1idWZmZXIpCiAgICAgICAoZGlzcGxheS1idWZmZXIg KGN1cnJlbnQtYnVmZmVyKQogICAgICAgICAgICAgICAgICAgICAgIGAoKGRpc3BsYXktYnVmZmVy LXJldXNlLXdpbmRvdwotLSAKMi4zMS4xCgo= --00000000000050088e06339de2f0-- From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 27 03:40:36 2025 Received: (at 77809) by debbugs.gnu.org; 27 Apr 2025 07:40:36 +0000 Received: from localhost ([127.0.0.1]:38573 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u8wct-0004wq-Ke for submit@debbugs.gnu.org; Sun, 27 Apr 2025 03:40:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41686) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1u8wcp-0004vu-HL for 77809@debbugs.gnu.org; Sun, 27 Apr 2025 03:40:32 -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 1u8wcj-0001nP-QB; Sun, 27 Apr 2025 03:40:25 -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=OWJkCjotFjHqITxiLdid3mT32aPZlaQnSVFLKYgcdAQ=; b=JDF8h3y5qv4UJgXWZolY ANVqm5TS7ehlqVzXgkE9HyUrcY6dnSLFr2ZAQMXFsafHXcbJPZizCH6o039lBlbrVQ1gIVx2zgs9I 8/AqoyX8W1kSbT6ySG/DKxV9yQ6rWmYLuhlpHbxNJpI+kTEo1ngYtsK3Lp/hiMIc1uwL7WEZfD8hX k0oFFw1lELcLTeaYkZOSlJnfZQa01mfXYBd1t3yI0EhqfYhlwEpiJlTa9bfS2Iw9O3UzjpSAaLggp GnNV8m9b5/uZ+9oU9fqdrhZh5hqlAix32dZLkhsMQU/RXQ/HmwLcDSp78ergZ4Zoh/pasUTVojbZy Ka/t5QViujFkXg==; Date: Sun, 27 Apr 2025 10:40:19 +0300 Message-Id: <865xiqrr18.fsf@gnu.org> From: Eli Zaretskii To: Matthew Tromp In-Reply-To: (message from Matthew Tromp on Fri, 25 Apr 2025 13:43:57 -0400) Subject: Re: bug#77809: adding next-error support for flymake diagnostics buffers References: <85o6wy78s2.fsf@gmail.com> <867c3mhr7k.fsf@gnu.org> <85lds16q2i.fsf@gmail.com> <86plh314o2.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: 77809 Cc: 77809@debbugs.gnu.org, sbaugh@janestreet.com 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: Matthew Tromp > Date: Fri, 25 Apr 2025 13:43:57 -0400 > Cc: Spencer Baugh , 77809@debbugs.gnu.org > > Here you go > > On Wed, Apr 23, 2025 at 7:46 AM Eli Zaretskii wrote: > > > > > From: Spencer Baugh > > > Cc: 77809@debbugs.gnu.org, Eli Zaretskii > > > Date: Tue, 22 Apr 2025 15:37:49 -0400 > > > > > > I think this is ready to be installed. I went ahead and updated your > > > commit message to include a changelog entry - please include that in > > > future changes, see "Generating ChangeLog entries" in CONTRIBUTE. > > > > > > Eli, can you please install the attached change? > > > > See below. > > > > > +(defvar-local flymake-current-diagnostic-line 0 > > > + "The line of the most recently focused diagnostic in the flymake > > > +diagnostics buffer.") > > > > The first line of a doc string should be a single complete sentence. > > > > > +(defun flymake--diagnostics-next-error (n &optional reset) > > > + "`next-error-function' for flymake diagnostics buffers. > > > +N is an integer representing how many errors to move. > > > +If RESET is non-nil, returns to the beginning of the errors before > > ^^^^^^^ > > "return" > > > > Thanks. Thanks. Byte-compiling the modified flymake.el produces this warning: ELC progmodes/flymake.elc In flymake--diagnostics-next-error: progmodes/flymake.el:2111:6: Warning: `when-let' is an obsolete macro (as of 31.1); use `when-let*' or `and-let*' instead. Could you please fix the code to avoid this warning? Also, you don't seem to have copyright assignment on file. So we can accept this contribution from you, but any further contributions will require that you do the paperwork of assigning the copyright to the FSF. If you agree, I will send you the form to fill and the instructions to go with them, so you could get your legal paperwork rolling. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 27 11:24:01 2025 Received: (at 77809) by debbugs.gnu.org; 27 Apr 2025 15:24:02 +0000 Received: from localhost ([127.0.0.1]:43620 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1u93rN-0007xq-0G for submit@debbugs.gnu.org; Sun, 27 Apr 2025 11:24:01 -0400 Received: from mail-ej1-x62c.google.com ([2a00:1450:4864:20::62c]:46322) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1u93rK-0007xS-Bp for 77809@debbugs.gnu.org; Sun, 27 Apr 2025 11:23:59 -0400 Received: by mail-ej1-x62c.google.com with SMTP id a640c23a62f3a-ac345bd8e13so533712766b.0 for <77809@debbugs.gnu.org>; Sun, 27 Apr 2025 08:23:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745767432; x=1746372232; 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=IKgtk1+KaCvYXErspplQNVXfn2f+8PTr5kh9VDXMNRY=; b=J1DlHFoKKmsTNK1WxiraZjOiAlD6sEp47zSCxC830MavX27uf/grcVFb9qTGHzLKd8 pbAnj4lZwBqD9qlDssVWUIDbYt4++At4CrfYx42AZInwRMBKVrMFvzBRGEMEVd1xm0VL vXRIG4bjdxwzpxgvhw9Q8cwJzdUVr1j45RZB5T0e0gNZDCa41VNNVRQkNM98p/64aMl3 YmvYkMKGiiF7WRtxe7nt+MpRjVCWdFk2fwwfF6fL/7Lv/+Y9wkXKG7IXPiLNPBvDZJnT FYHjfFzT9MDECmHs5nXnc5Aj9cTRppNKBejaSMksrj/C0cncAzdtrJLhSZDADMQQOODf fGbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745767432; x=1746372232; 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=IKgtk1+KaCvYXErspplQNVXfn2f+8PTr5kh9VDXMNRY=; b=J7hDI0b2zHSSb3OUKUW0G7Vtpom4hnqwNZ9VbzEmJpGoPRBA6j6tq75v8eeNmUozHG eFSzLfb4QGI7tdoPRbMUsU2B+CCZCTw+5mEDW3GkdOtVh3FPyZSUbkWVYtvSYSFCIR3K cdWPx4BALX84AUVcYw3rVho/lWLlaYPZjn31EjN2DIaQszbkUyqyxB3Qy2HNoFHonjKD v7qFd9fH6eWouwG3X3Uz4XOpcrDUe16mF7NgHyTLxrzrQCG+TFMrp9FtVTD+dC7ofXLC zbDMeByMDGZW68h2WW8YwpmiCeCiW9DP5Q3ErFQ/6vOhHXjWf6XwRLA3owqviSLQ1Vtu 5CnA== X-Forwarded-Encrypted: i=1; AJvYcCV+n+gPfiFJLm0xZrlH1Ui1n8uzZa5fx5uUE+WuefHfBqUAmXtlLFIn8FamYFaVSJhuS3r3Fg==@debbugs.gnu.org X-Gm-Message-State: AOJu0YwKuo45K6VOgXAXm2VyLcAosLRFsYrdtTlddsKRQnVPQztRqjmF D+2sgM6c/EiwqMa/hwwus7Sf10imFFs2YthZKIQv8/vMwpB+3DXhCAx6E4np6U+QaTh3EFhcqm7 RX4seNaMod7dVlf0B4VsCQobLXwM= X-Gm-Gg: ASbGncu2YXLLGlpr7KaR6sG2JXCjfWYg/KaCVTv5yry7LC9ZQsSmKPjFQnbyNIo8gd3 I34eZsdAmu4MU02vT1MEod+iOVt79mmQBC1f1rbaPgQN6K91T3k0xBtonBDeH8Q0bXvlxEI5JKW pzWnPKtAI3sI1AqRjEfMHCxw== X-Google-Smtp-Source: AGHT+IFFENejfvo5sAyB7yxVM2L1lz3GamyX3Y8kTqKQ2SNDoiWvY9zDFYXgPmVkJUGsaOHu/EeWegvJwunwKFspVY4= X-Received: by 2002:a17:907:60cc:b0:ace:37d6:a5ce with SMTP id a640c23a62f3a-ace710c6b8bmr887951466b.19.1745767431941; Sun, 27 Apr 2025 08:23:51 -0700 (PDT) MIME-Version: 1.0 References: <85o6wy78s2.fsf@gmail.com> <867c3mhr7k.fsf@gnu.org> <85lds16q2i.fsf@gmail.com> <86plh314o2.fsf@gnu.org> <865xiqrr18.fsf@gnu.org> In-Reply-To: <865xiqrr18.fsf@gnu.org> From: Matthew Tromp Date: Sun, 27 Apr 2025 11:23:40 -0400 X-Gm-Features: ATxdqUFqbQC-XVG66Aa9gyuuuPzg192BJbFMFK28pqiMwv-i75QIdVKSfolY7I0 Message-ID: Subject: Re: bug#77809: adding next-error support for flymake diagnostics buffers To: Eli Zaretskii Content-Type: multipart/mixed; boundary="000000000000a4ac2c0633c42711" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 77809 Cc: 77809@debbugs.gnu.org, sbaugh@janestreet.com 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 (-) --000000000000a4ac2c0633c42711 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Okay, here you go. Yes, please send me the copyright assignment paperwork. On Sun, Apr 27, 2025 at 3:40=E2=80=AFAM Eli Zaretskii wrote: > > > From: Matthew Tromp > > Date: Fri, 25 Apr 2025 13:43:57 -0400 > > Cc: Spencer Baugh , 77809@debbugs.gnu.org > > > > Here you go > > > > On Wed, Apr 23, 2025 at 7:46=E2=80=AFAM Eli Zaretskii wr= ote: > > > > > > > From: Spencer Baugh > > > > Cc: 77809@debbugs.gnu.org, Eli Zaretskii > > > > Date: Tue, 22 Apr 2025 15:37:49 -0400 > > > > > > > > I think this is ready to be installed. I went ahead and updated yo= ur > > > > commit message to include a changelog entry - please include that i= n > > > > future changes, see "Generating ChangeLog entries" in CONTRIBUTE. > > > > > > > > Eli, can you please install the attached change? > > > > > > See below. > > > > > > > +(defvar-local flymake-current-diagnostic-line 0 > > > > + "The line of the most recently focused diagnostic in the flymake > > > > +diagnostics buffer.") > > > > > > The first line of a doc string should be a single complete sentence. > > > > > > > +(defun flymake--diagnostics-next-error (n &optional reset) > > > > + "`next-error-function' for flymake diagnostics buffers. > > > > +N is an integer representing how many errors to move. > > > > +If RESET is non-nil, returns to the beginning of the errors before > > > ^^^^^^^ > > > "return" > > > > > > Thanks. > > Thanks. Byte-compiling the modified flymake.el produces this warning: > > ELC progmodes/flymake.elc > > In flymake--diagnostics-next-error: > progmodes/flymake.el:2111:6: Warning: `when-let' is an obsolete macro (= as of 31.1); use `when-let*' or `and-let*' instead. > > Could you please fix the code to avoid this warning? > > Also, you don't seem to have copyright assignment on file. So we can > accept this contribution from you, but any further contributions will > require that you do the paperwork of assigning the copyright to the > FSF. If you agree, I will send you the form to fill and the > instructions to go with them, so you could get your legal paperwork > rolling. > > Thanks. --000000000000a4ac2c0633c42711 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Add-next-error-support-for-flymake-diagnostics-buffe.patch" Content-Disposition: attachment; filename="0001-Add-next-error-support-for-flymake-diagnostics-buffe.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m9zste9n0 RnJvbSBlYzFlMDk3ZmY3MTNlNWU2YzIxODk4OTQ0ZGI1YTQ4NGM2ZTBlNTU4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXR0aGV3IFRyb21wIDxtYXR0aGV3a3Ryb21wQGdtYWlsLmNv bT4KRGF0ZTogVHVlLCAyMiBBcHIgMjAyNSAxNToyNzo1OCAtMDQwMApTdWJqZWN0OiBbUEFUQ0hd IEFkZCBuZXh0LWVycm9yIHN1cHBvcnQgZm9yIGZseW1ha2UgZGlhZ25vc3RpY3MgYnVmZmVycwoK VGhpcyBwYXRjaCBhZGRzIG5leHQtZXJyb3Igc3VwcG9ydCBmb3IgZmx5bWFrZSBkaWFnbm9zdGlj cyBidWZmZXJzLgpCdWZmZXJzIGNyZWF0ZWQgd2l0aCBgZmx5bWFrZS1zaG93LWJ1ZmZlci1kaWFn bm9zdGljcycgYW5kCmBmbHltYWtlLXNob3ctcHJvamVjdC1kaWFnbm9zdGljcycgYXJlIG5vdyBu ZXh0LWVycm9yIGVuYWJsZWQsIGFuZApgbmV4dC1lcnJvcicgYW5kIGBwcmV2aW91cy1lcnJvcicg d2lsbCBuYXZpZ2F0ZSB0aHJvdWdoIHRoZWlyIGxpc3RlZApkaWFnbm9zdGljcy4KCiogbGlzcC9w cm9nbW9kZXMvZmx5bWFrZS5lbCAoZmx5bWFrZS1jdXJyZW50LWRpYWdub3N0aWMtbGluZSkKKGZs eW1ha2UtLWRpYWdub3N0aWNzLW5leHQtZXJyb3IpOiBBZGQuCihmbHltYWtlLXNob3ctZGlhZ25v c3RpYywgZmx5bWFrZS1zaG93LWJ1ZmZlci1kaWFnbm9zdGljcykKKGZseW1ha2Utc2hvdy1wcm9q ZWN0LWRpYWdub3N0aWNzKTogU2V0IG5leHQtZXJyb3ItbGFzdC1idWZmZXIuCihmbHltYWtlLS10 YWJ1bGF0ZWQtc2V0dXApOiBTZXQgbmV4dC1lcnJvci1mdW5jdGlvbi4gKGJ1ZyM3NzgwOSkKLS0t CiBsaXNwL3Byb2dtb2Rlcy9mbHltYWtlLmVsIHwgMjkgKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0KIDEgZmlsZSBjaGFuZ2VkLCAyOCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpk aWZmIC0tZ2l0IGEvbGlzcC9wcm9nbW9kZXMvZmx5bWFrZS5lbCBiL2xpc3AvcHJvZ21vZGVzL2Zs eW1ha2UuZWwKaW5kZXggOTc0YWM2NjQ4MjIuLjQxMDkxNjZjZDE1IDEwMDY0NAotLS0gYS9saXNw L3Byb2dtb2Rlcy9mbHltYWtlLmVsCisrKyBiL2xpc3AvcHJvZ21vZGVzL2ZseW1ha2UuZWwKQEAg LTE0NjAsNiArMTQ2MCw5IEBAIGZseW1ha2UtbW9kZS1tYXAKICAgICBtYXApCiAgICJLZXltYXAg Zm9yIGBmbHltYWtlLW1vZGUnIikKIAorKGRlZnZhci1sb2NhbCBmbHltYWtlLWN1cnJlbnQtZGlh Z25vc3RpYy1saW5lIDAKKyAgIlRoZSBsaW5lIG9mIHRoZSBtb3N0IHJlY2VudGx5IGZvY3VzZWQg ZGlhZ25vc3RpYyBpbiBhIGRpYWdub3N0aWNzIGJ1ZmZlci4iKQorCiA7OzsjIyNhdXRvbG9hZAog KGRlZmluZS1taW5vci1tb2RlIGZseW1ha2UtbW9kZQogICAiVG9nZ2xlIEZseW1ha2UgbW9kZSBv biBvciBvZmYuCkBAIC0xOTIwLDcgKzE5MjMsOCBAQCBmbHltYWtlLWRpYWdub3N0aWNzLWJ1ZmZl ci1tb2RlLW1hcAogKGRlZnVuIGZseW1ha2Utc2hvdy1kaWFnbm9zdGljIChwb3MgJm9wdGlvbmFs IG90aGVyLXdpbmRvdykKICAgIkZyb20gRmx5bWFrZSBkaWFnbm9zdGljcyBidWZmZXIsIHNob3cg c291cmNlIG9mIGRpYWdub3N0aWMgYXQgUE9TLiIKICAgKGludGVyYWN0aXZlIChsaXN0IChwb2lu dCkgdCkpCi0gIChsZXQqICgoaWQgKG9yICh0YWJ1bGF0ZWQtbGlzdC1nZXQtaWQgcG9zKQorICAo bGV0KiAoKGRpYWdub3N0aWNzLWJ1ZmZlciAoY3VycmVudC1idWZmZXIpKQorICAgICAgICAgKGlk IChvciAodGFidWxhdGVkLWxpc3QtZ2V0LWlkIHBvcykKICAgICAgICAgICAgICAgICAgKHVzZXIt ZXJyb3IgIk5vdGhpbmcgYXQgcG9pbnQiKSkpCiAgICAgICAgICAoZGlhZyAocGxpc3QtZ2V0IGlk IDpkaWFnbm9zdGljKSkKICAgICAgICAgIChsb2N1cyAoZmx5bWFrZS0tZGlhZy1sb2N1cyBkaWFn KSkKQEAgLTE5MzAsNiArMTkzNCw3IEBAIGZseW1ha2Utc2hvdy1kaWFnbm9zdGljCiAgICAgICAg ICAgICAgICAgICAoZ290by1jaGFyIGIpCiAgICAgICAgICAgICAgICAgICAocHVsc2UtbW9tZW50 YXJ5LWhpZ2hsaWdodC1yZWdpb24KICAgICAgICAgICAgICAgICAgICBiIChvciBlIChsaW5lLWVu ZC1wb3NpdGlvbikpKSkpKQorICAgIChzZXRxIGZseW1ha2UtY3VycmVudC1kaWFnbm9zdGljLWxp bmUgKGxpbmUtbnVtYmVyLWF0LXBvcyBwb3MpKQogICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIChj b25kICgoYnVmZmVycCBsb2N1cykgbG9jdXMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHQgKGZpbmQtZmlsZS1ub3NlbGVjdCBsb2N1cykpKQogICAgICAgKHdpdGgtc2VsZWN0ZWQt d2luZG93CkBAIC0xOTQ1LDYgKzE5NTAsOCBAQCBmbHltYWtlLXNob3ctZGlhZ25vc3RpYwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYXIgYmVnKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjZHIgYmVn KSkpKQogICAgICAgICAgICAgICAgICAoZnVuY2FsbCB2aXNpdCBiYmVnIGJlbmQpKSkpKQorICAg ICAgOzsgRW1hY3MgPCAyNworICAgICAgKHNldHEgbmV4dC1lcnJvci1sYXN0LWJ1ZmZlciBkaWFn bm9zdGljcy1idWZmZXIpCiAgICAgICAoY3VycmVudC1idWZmZXIpKSkpCiAKIChkZWZ1biBmbHlt YWtlLWdvdG8tZGlhZ25vc3RpYyAocG9zKQpAQCAtMjA1OCw2ICsyMDY1LDcgQEAgZmx5bWFrZS0t dGFidWxhdGVkLXNldHVwLTEKIChkZWZ1biBmbHltYWtlLS10YWJ1bGF0ZWQtc2V0dXAgKHVzZS1w cm9qZWN0KQogICAiSGVscGVyIGZvciBgZmx5bWFrZS1kaWFnbm9zdGljcy1idWZmZXItbW9kZScu CiBBbmQgYWxzbyBgZmx5bWFrZS1wcm9qZWN0LWRpYWdub3N0aWNzLW1vZGUnLiIKKyAgKHNldHEt bG9jYWwgbmV4dC1lcnJvci1mdW5jdGlvbiAjJ2ZseW1ha2UtLWRpYWdub3N0aWNzLW5leHQtZXJy b3IpCiAgIChsZXQgKChzYXZlZC1yLWItZiByZXZlcnQtYnVmZmVyLWZ1bmN0aW9uKQogICAgICAg ICAocmVmcmVzaAogICAgICAgICAgKGxhbWJkYSAoKQpAQCAtMjA4Nyw2ICsyMDk1LDIzIEBAIGZs eW1ha2UtLXRhYnVsYXRlZC1zZXR1cAogICAgICAgICAgICAgKGZ1bmNhbGwgcmVmcmVzaCkKICAg ICAgICAgICAgIChhcHBseSBzYXZlZC1yLWItZiBhcmdzKSkpKSkKIAorKGRlZnVuIGZseW1ha2Ut LWRpYWdub3N0aWNzLW5leHQtZXJyb3IgKG4gJm9wdGlvbmFsIHJlc2V0KQorICAiYG5leHQtZXJy b3ItZnVuY3Rpb24nIGZvciBmbHltYWtlIGRpYWdub3N0aWNzIGJ1ZmZlcnMuCitOIGlzIGFuIGlu dGVnZXIgcmVwcmVzZW50aW5nIGhvdyBtYW55IGVycm9ycyB0byBtb3ZlLgorSWYgUkVTRVQgaXMg bm9uLW5pbCwgcmV0dXJuIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGVycm9ycyBiZWZvcmUKK21v dmluZy4iCisgIChsZXQgKChsaW5lIChpZiByZXNldCAxIGZseW1ha2UtY3VycmVudC1kaWFnbm9z dGljLWxpbmUpKQorICAgICAgICAodG90YWwtbGluZXMgKGNvdW50LWxpbmVzIChwb2ludC1taW4p IChwb2ludC1tYXgpKSkpCisgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAgICAodW5sZXNz ICh6ZXJvcCB0b3RhbC1saW5lcykKKyAgICAgIChsZXQgKCh0YXJnZXQtbGluZSAoKyBsaW5lIG4p KSkKKyAgICAgICAgKHNldHEgdGFyZ2V0LWxpbmUgKG1heCAxIHRhcmdldC1saW5lKSkKKyAgICAg ICAgKHNldHEgdGFyZ2V0LWxpbmUgKG1pbiB0YXJnZXQtbGluZSB0b3RhbC1saW5lcykpCisgICAg ICAgIChmb3J3YXJkLWxpbmUgKDEtIHRhcmdldC1saW5lKSkpKQorICAgICh3aGVuLWxldCogKCh3 aW4gKGdldC1idWZmZXItd2luZG93IG5pbCB0KSkpCisgICAgICAoc2V0LXdpbmRvdy1wb2ludCB3 aW4gKHBvaW50KSkpCisgICAgKGZseW1ha2UtZ290by1kaWFnbm9zdGljIChwb2ludCkpKSkKKwog KGRlZmluZS1kZXJpdmVkLW1vZGUgZmx5bWFrZS1kaWFnbm9zdGljcy1idWZmZXItbW9kZSB0YWJ1 bGF0ZWQtbGlzdC1tb2RlCiAgICJGbHltYWtlIGRpYWdub3N0aWNzIgogICAiQSBtb2RlIGZvciBs aXN0aW5nIEZseW1ha2UgZGlhZ25vc3RpY3MuIgpAQCAtMjE0Myw2ICsyMTY4LDcgQEAgZmx5bWFr ZS1zaG93LWJ1ZmZlci1kaWFnbm9zdGljcwogICAgICAgICAgd2luZG93KQogICAgICh3aXRoLWN1 cnJlbnQtYnVmZmVyIHRhcmdldAogICAgICAgKHNldHEgZmx5bWFrZS0tZGlhZ25vc3RpY3MtYnVm ZmVyLXNvdXJjZSBzb3VyY2UpCisgICAgICAoc2V0cSBuZXh0LWVycm9yLWxhc3QtYnVmZmVyIChj dXJyZW50LWJ1ZmZlcikpCiAgICAgICAocmV2ZXJ0LWJ1ZmZlcikKICAgICAgIChzZXRxIHdpbmRv dwogICAgICAgICAgICAgKGRpc3BsYXktYnVmZmVyIChjdXJyZW50LWJ1ZmZlcikKQEAgLTIyNDks NiArMjI3NSw3IEBAIGZseW1ha2Utc2hvdy1wcm9qZWN0LWRpYWdub3N0aWNzCiAgICAgKHdpdGgt Y3VycmVudC1idWZmZXIgYnVmZmVyCiAgICAgICAoZmx5bWFrZS1wcm9qZWN0LWRpYWdub3N0aWNz LW1vZGUpCiAgICAgICAoc2V0cS1sb2NhbCBmbHltYWtlLS1wcm9qZWN0LWRpYWdub3N0aWMtbGlz dC1wcm9qZWN0IHByaikKKyAgICAgIChzZXRxIG5leHQtZXJyb3ItbGFzdC1idWZmZXIgKGN1cnJl bnQtYnVmZmVyKSkKICAgICAgIChyZXZlcnQtYnVmZmVyKQogICAgICAgKGRpc3BsYXktYnVmZmVy IChjdXJyZW50LWJ1ZmZlcikKICAgICAgICAgICAgICAgICAgICAgICBgKChkaXNwbGF5LWJ1ZmZl ci1yZXVzZS13aW5kb3cKLS0gCjIuMzEuMQoK --000000000000a4ac2c0633c42711-- From debbugs-submit-bounces@debbugs.gnu.org Sat May 03 04:53:12 2025 Received: (at 77809-done) by debbugs.gnu.org; 3 May 2025 08:53:12 +0000 Received: from localhost ([127.0.0.1]:38091 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uB8cR-0006UB-RM for submit@debbugs.gnu.org; Sat, 03 May 2025 04:53:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43360) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uB8cP-0006Tu-RV for 77809-done@debbugs.gnu.org; Sat, 03 May 2025 04:53:10 -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 1uB8cJ-0002WK-QT; Sat, 03 May 2025 04:53:03 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=K/COIrKXEh9NnPp+bNbG9x/yyN43MRDw9TMKi3AmppA=; b=HOQOTVmtvjN7 7VcGmGeCUvTwuPUS44QH6uDWrta6mil3h7ryY3TSMlBBEXxw4mVY96MSHQqEFlqAYPoFWaxyDlyax 9h5/QcTyB2nN4+5vEFvVlr/4YM2d2EBDz66wKQS+7JygfeHzmUf6QZQ1QOCeZVCcN/X8er7e+G+Md +L6zhSG7yPkELzX2thq+qLQ2hK+dmquklV7mdkkELmi1lm2XxfFLguJnGMUIyKfc5kwcQA2vk2Ypy tZhXxNNBYleMSceeMNbf6cUmkooq26DCWBI2l1kVXBTOjIujD9qZazu8WPqeWB/cUjys2bHTHdSDR pqPWYmNCmzfWu/gerq8zpw==; Date: Sat, 03 May 2025 11:53:01 +0300 Message-Id: <86selmjcsy.fsf@gnu.org> From: Eli Zaretskii To: Matthew Tromp In-Reply-To: (message from Matthew Tromp on Sun, 27 Apr 2025 11:23:40 -0400) Subject: Re: bug#77809: adding next-error support for flymake diagnostics buffers References: <85o6wy78s2.fsf@gmail.com> <867c3mhr7k.fsf@gnu.org> <85lds16q2i.fsf@gmail.com> <86plh314o2.fsf@gnu.org> <865xiqrr18.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 77809-done Cc: 77809-done@debbugs.gnu.org, sbaugh@janestreet.com 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: Matthew Tromp > Date: Sun, 27 Apr 2025 11:23:40 -0400 > Cc: sbaugh@janestreet.com, 77809@debbugs.gnu.org > > Okay, here you go. Thanks, installed on the master branch, and closing the bug. > Yes, please send me the copyright assignment paperwork. Form sent off-list. From unknown Sun Jun 15 13:01:09 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sat, 31 May 2025 11:24:08 +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