Package: emacs;
Reported by: Eason Huang <aqua0210 <at> foxmail.com>
Date: Sun, 22 Jun 2025 07:13:02 UTC
Severity: normal
Found in version 31.0.50
To reply to this bug, email your comments to 78862 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
bug-gnu-emacs <at> gnu.org
:bug#78862
; Package emacs
.
(Sun, 22 Jun 2025 07:13:02 GMT) Full text and rfc822 format available.Eason Huang <aqua0210 <at> foxmail.com>
:bug-gnu-emacs <at> gnu.org
.
(Sun, 22 Jun 2025 07:13:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Eason Huang <aqua0210 <at> foxmail.com> To: bug-gnu-emacs <at> gnu.org Subject: 31.0.50; Eglot couldn't refresh Flymake diagnostics on Rust project Date: Sun, 22 Jun 2025 15:05:06 +0800
Hello Emacs dev, Recently, I found that if flymake-mode enabled before eglot,eglot can not refresh the Flymake diagnostics. Disable flymake with `M-x flymake-mode`, and then enable eglot with `M-x eglot` can fix the issue. Or with the below snippet can fix it: ``` (with-eval-after-load 'eglot (add-hook 'eglot-managed-mode-hook (lambda () (flymake-mode -1) (flymake-mode 1)))) ``` Steps to reproduce: 1. put below config into the init.el file ``` (use-package flymake :hook (prog-mode . flymake-mode)) (use-package rust-mode :ensure t :defer t :custom (rust-mode-treesitter-derive (and (fboundp 'treesit-available-p) (treesit-available-p)))) ``` 2. Start Emacs 31 3. Open any Rust project with a dependency 4. Open any Rust file in a rust project(make sure it use a dependency), such as main.rs, then flymake will report errors. Because I don't have flymake rust backends,the errors is expected. 5. Make sure `rust-analyzer` is in the PATH,My rust toolchain is as below: ``` rustc --version rustc 1.87.0 (17067e9ac 2025-05-09) rust-analyzer --version rust-analyzer 1.87.0 (17067e9ac6d 2025-05-09) `` 6. Start eglot with `M-x eglot`, now the errors still exist. This is the issue. 7. `M-x flymake-mode` to disable flymake 8. `M-x eglot-reconnect` will refresh the Flymake diagnostics,and no errors reported if your Rust project is compiled. The issue only happened on Emacs 31, it works as expected on Emacs 30. ---- Eason Huang In GNU Emacs 31.0.50 (build 1, x86_64-apple-darwin24.5.0, NS appkit-2575.60 Version 15.5 (Build 24F74), git sha1 c916f816e0f) of 2025-06-22 built on 192.168.1.9 Windowing system distributor 'Apple', version 10.3.2575 System Description: macOS 15.5 Configured using: 'configure --without-native-compilation --without-dbus 'CPPFLAGS=-I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk' 'LDFLAGS=-L/opt/local/lib -Wl,-headerpad_max_install_names -Wl,-rpath /opt/local/lib/gcc14 -Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -arch x86_64'' Configured features: ACL GIF GLIB GMP GNUTLS JPEG LCMS2 LIBXML2 MODULES NOTIFY KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM ZLIB Important settings: value of $LANG: zh_CN.UTF-8 locale-coding-system: utf-8-unix Major mode: Elisp/l Minor modes in effect: flymake-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t minibuffer-regexp-mode: t line-number-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: None found. Features: (shadow sort mail-extr emacsbug message yank-media puny rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils noutline outline eglot tree-widget wid-edit external-completion jsonrpc xref diff ert pp ewoc debug backtrace find-func filenotify imenu pcase vc-git diff-mode track-changes easy-mmode files-x vc-dispatcher rust-utils rust-mode-treesitter rust-ts-mode rx c-ts-common treesit rust-mode rust-playpen rust-compile rust-cargo rust-common rust-rustfmt dired-aux dired dired-loaddefs time-date checkdoc lisp-mnt flymake project compile text-property-search comint ansi-osc ansi-color ring warnings thingatpt use-package-ensure cl-extra help-mode use-package-core emacs-git-version rust-mode-autoloads package browse-url xdg url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs icons password-cache json subr-x map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib china-util rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/ns-win ns-win ucs-normalize mule-util term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads kqueue cocoa ns lcms2 multi-tty make-network-process tty-child-frames emacs) Memory information: ((conses 16 124358 19418) (symbols 48 13713 0) (strings 32 38113 1660) (string-bytes 1 1006591) (vectors 16 25656) (vector-slots 8 302210 13180) (floats 8 63 99) (intervals 56 820 2) (buffers 1064 21)) -- Eason Huang
bug-gnu-emacs <at> gnu.org
:bug#78862
; Package emacs
.
(Sun, 22 Jun 2025 08:00:02 GMT) Full text and rfc822 format available.Message #8 received at 78862 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Eason Huang <aqua0210 <at> foxmail.com>, João Távora <joaotavora <at> gmail.com>, Spencer Baugh <sbaugh <at> janestreet.com> Cc: 78862 <at> debbugs.gnu.org Subject: Re: bug#78862: 31.0.50; Eglot couldn't refresh Flymake diagnostics on Rust project Date: Sun, 22 Jun 2025 10:59:27 +0300
> From: Eason Huang <aqua0210 <at> foxmail.com> > Date: Sun, 22 Jun 2025 15:05:06 +0800 > > Hello Emacs dev, > > Recently, I found that if flymake-mode enabled before eglot,eglot can not > refresh the Flymake diagnostics. > Disable flymake with `M-x flymake-mode`, and then enable eglot > with `M-x eglot` can fix the issue. Or with the below snippet can fix > it: > > ``` > (with-eval-after-load 'eglot > (add-hook 'eglot-managed-mode-hook (lambda () > (flymake-mode -1) > (flymake-mode 1)))) > > ``` > > Steps to reproduce: > > 1. put below config into the init.el file > ``` > (use-package flymake > :hook (prog-mode . flymake-mode)) > > (use-package rust-mode > :ensure t > :defer t > :custom (rust-mode-treesitter-derive (and (fboundp 'treesit-available-p) > (treesit-available-p)))) > ``` > 2. Start Emacs 31 > 3. Open any Rust project with a dependency > 4. Open any Rust file in a rust project(make sure it use a dependency), > such as main.rs, then flymake will report errors. Because I don't have > flymake rust backends,the errors is expected. > > 5. Make sure `rust-analyzer` is in the PATH,My rust toolchain is as > below: > > ``` > rustc --version > rustc 1.87.0 (17067e9ac 2025-05-09) > > rust-analyzer --version > rust-analyzer 1.87.0 (17067e9ac6d 2025-05-09) > `` > 6. Start eglot with `M-x eglot`, now the errors still exist. This is the > issue. > > 7. `M-x flymake-mode` to disable flymake > 8. `M-x eglot-reconnect` will refresh the Flymake diagnostics,and no > errors reported if your Rust project is compiled. > > > The issue only happened on Emacs 31, it works as expected on Emacs 30. Thanks, I hope João and Spencer will have comments or suggestions about this. > ---- > Eason Huang > > > In GNU Emacs 31.0.50 (build 1, x86_64-apple-darwin24.5.0, NS > appkit-2575.60 Version 15.5 (Build 24F74), git sha1 c916f816e0f) of > 2025-06-22 built on 192.168.1.9 > Windowing system distributor 'Apple', version 10.3.2575 > System Description: macOS 15.5 > > Configured using: > 'configure --without-native-compilation --without-dbus > 'CPPFLAGS=-I/opt/local/include > -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk' > 'LDFLAGS=-L/opt/local/lib -Wl,-headerpad_max_install_names -Wl,-rpath > /opt/local/lib/gcc14 > -Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk > -arch x86_64'' > > Configured features: > ACL GIF GLIB GMP GNUTLS JPEG LCMS2 LIBXML2 MODULES NOTIFY KQUEUE NS > PDUMPER PNG RSVG SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER > WEBP XIM ZLIB > > Important settings: > value of $LANG: zh_CN.UTF-8 > locale-coding-system: utf-8-unix > > Major mode: Elisp/l > > Minor modes in effect: > flymake-mode: t > tooltip-mode: t > global-eldoc-mode: t > eldoc-mode: t > show-paren-mode: t > electric-indent-mode: t > mouse-wheel-mode: t > tool-bar-mode: t > menu-bar-mode: t > file-name-shadow-mode: t > global-font-lock-mode: t > font-lock-mode: t > blink-cursor-mode: t > minibuffer-regexp-mode: t > line-number-mode: t > transient-mark-mode: t > auto-composition-mode: t > auto-encryption-mode: t > auto-compression-mode: t > > Load-path shadows: > None found. > > Features: > (shadow sort mail-extr emacsbug message yank-media puny rfc822 mml > mml-sec epa derived epg rfc6068 epg-config gnus-util mm-decode mm-bodies > mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail > rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils noutline > outline eglot tree-widget wid-edit external-completion jsonrpc xref diff > ert pp ewoc debug backtrace find-func filenotify imenu pcase vc-git > diff-mode track-changes easy-mmode files-x vc-dispatcher rust-utils > rust-mode-treesitter rust-ts-mode rx c-ts-common treesit rust-mode > rust-playpen rust-compile rust-cargo rust-common rust-rustfmt dired-aux > dired dired-loaddefs time-date checkdoc lisp-mnt flymake project compile > text-property-search comint ansi-osc ansi-color ring warnings thingatpt > use-package-ensure cl-extra help-mode use-package-core emacs-git-version > rust-mode-autoloads package browse-url xdg url url-proxy url-privacy > url-expand url-methods url-history url-cookie generate-lisp-file > url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq > eieio eieio-core cl-macs icons password-cache json subr-x map byte-opt > gv bytecomp byte-compile url-vars cl-loaddefs cl-lib china-util rmc > iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook > vc-hooks lisp-float-type elisp-mode mwheel term/ns-win ns-win > ucs-normalize mule-util term/common-win tool-bar dnd fontset image > regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode > prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu > timer select scroll-bar mouse jit-lock font-lock syntax font-core > term/tty-colors frame minibuffer nadvice seq simple cl-generic > indonesian philippine cham georgian utf-8-lang misc-lang vietnamese > tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek > romanian slovak czech european ethiopic indian cyrillic chinese > composite emoji-zwj charscript charprop case-table epa-hook > jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs > theme-loaddefs faces cus-face macroexp files window text-properties > overlay sha1 md5 base64 format env code-pages mule custom widget keymap > hashtable-print-readable backquote threads kqueue cocoa ns lcms2 > multi-tty make-network-process tty-child-frames emacs) > > Memory information: > ((conses 16 124358 19418) (symbols 48 13713 0) (strings 32 38113 1660) > (string-bytes 1 1006591) (vectors 16 25656) > (vector-slots 8 302210 13180) (floats 8 63 99) (intervals 56 820 2) > (buffers 1064 21)) > > -- > Eason Huang > > > > >
bug-gnu-emacs <at> gnu.org
:bug#78862
; Package emacs
.
(Sun, 22 Jun 2025 11:34:02 GMT) Full text and rfc822 format available.Message #11 received at 78862 <at> debbugs.gnu.org (full text, mbox):
From: Eason Huang <aqua0210 <at> foxmail.com> To: Eli Zaretskii <eliz <at> gnu.org> Cc: Spencer Baugh <sbaugh <at> janestreet.com>, 78862 <at> debbugs.gnu.org, João Távora <joaotavora <at> gmail.com> Subject: Re: bug#78862: 31.0.50; Eglot couldn't refresh Flymake diagnostics on Rust project Date: Sun, 22 Jun 2025 19:27:56 +0800
Eli Zaretskii <eliz <at> gnu.org> writes: >> From: Eason Huang <aqua0210 <at> foxmail.com> >> Date: Sun, 22 Jun 2025 15:05:06 +0800 >> >> Hello Emacs dev, >> >> Recently, I found that if flymake-mode enabled before eglot,eglot can not >> refresh the Flymake diagnostics. >> Disable flymake with `M-x flymake-mode`, and then enable eglot >> with `M-x eglot` can fix the issue. Or with the below snippet can fix >> it: >> >> ``` >> (with-eval-after-load 'eglot >> (add-hook 'eglot-managed-mode-hook (lambda () >> (flymake-mode -1) >> (flymake-mode 1)))) >> >> ``` >> >> Steps to reproduce: >> >> 1. put below config into the init.el file >> ``` >> (use-package flymake >> :hook (prog-mode . flymake-mode)) >> >> (use-package rust-mode >> :ensure t >> :defer t >> :custom (rust-mode-treesitter-derive (and (fboundp 'treesit-available-p) >> (treesit-available-p)))) >> ``` >> 2. Start Emacs 31 >> 3. Open any Rust project with a dependency >> 4. Open any Rust file in a rust project(make sure it use a dependency), >> such as main.rs, then flymake will report errors. Because I don't have >> flymake rust backends,the errors is expected. >> >> 5. Make sure `rust-analyzer` is in the PATH,My rust toolchain is as >> below: >> >> ``` >> rustc --version >> rustc 1.87.0 (17067e9ac 2025-05-09) >> >> rust-analyzer --version >> rust-analyzer 1.87.0 (17067e9ac6d 2025-05-09) >> `` >> 6. Start eglot with `M-x eglot`, now the errors still exist. This is the >> issue. >> >> 7. `M-x flymake-mode` to disable flymake >> 8. `M-x eglot-reconnect` will refresh the Flymake diagnostics,and no >> errors reported if your Rust project is compiled. >> >> >> The issue only happened on Emacs 31, it works as expected on Emacs 30. > > Thanks, I hope João and Spencer will have comments or suggestions > about this. > > > Hello Eli, João and Spencer, I find out that it is related to `rust-ts-flymake-command`, when customize it's value to `'("cargo" "clippy")`, it works as expected. It works with below rust config: ``` (use-package rust-mode :defer t :custom (rust-mode-treesitter-derive (and (fboundp 'treesit-available-p) (treesit-available-p))) (rust-ts-flymake-command '("cargo" "clippy"))) ``` May be this information help. -- Eason Huang
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.