GNU bug report logs - #75978
31.0.50; Using fill-region doesn't produce commented lines in go-ts-mode

Previous Next

Package: emacs;

Reported by: the_wurfkreuz <the_wurfkreuz <at> proton.me>

Date: Fri, 31 Jan 2025 19:23:02 UTC

Severity: normal

Found in version 31.0.50

To reply to this bug, email your comments to 75978 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


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#75978; Package emacs. (Fri, 31 Jan 2025 19:23:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to the_wurfkreuz <the_wurfkreuz <at> proton.me>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Fri, 31 Jan 2025 19:23:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: the_wurfkreuz <the_wurfkreuz <at> proton.me>
To: "bug-gnu-emacs <at> gnu.org" <bug-gnu-emacs <at> gnu.org>
Subject: 31.0.50;
 Using fill-region doesn't produce commented lines in go-ts-mode
Date: Fri, 31 Jan 2025 19:21:40 +0000
[Message part 1 (text/plain, inline)]
I noticed that, unlike in other built-in language modes, in go-ts-mode, using fill-region on a comment line doesn't automatically comment the new line.

Steps to reproduce:
1. emacs -Q
2. Paste this text so that it takes only a single line: "To make our function interact with Waitgroup, we need to send a reference to this group. Once we have its reference, the function can defer, calling Done(), to ensure that we signal correctly for our group every time the function is complete."
3. Run set-mark-command and select the whole line using
move-beginning-of-line.
4. Enable go-ts-mode (assuming that the grammar is already compiled).
5. Use comment-region on the selected text.
6. Then select the whole line again and execute fill-region.

The newly created lines aren't commented. If I do the same thing in

python-ts-mode

, the new lines are commented out.

In GNU Emacs 31.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
3.24.43, cairo version 1.18.0) of 2025-01-20 built on ub-void
Repository revision: b568ff418ce7147c27d7f82fe4a8eef325b9de2c
Repository branch: master
System Description: Void Linux

Configured using:
'configure --with-native-compilation=aot --with-tree-sitter --with-gif
--with-png --with-jpeg --with-rsvg --with-tiff --with-imagemagick
--with-pgtk --with-mailutils'

Configured features:
CAIRO DBUS FREETYPE GLIB GMP GNUTLS GSETTINGS HARFBUZZ IMAGEMAGICK JPEG
LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PGTK PNG RSVG
SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER XIM
GTK3 ZLIB

Important settings:
value of $LC_COLLATE: C
value of $LANG: en_US.UTF-8
locale-coding-system: utf-8-unix

Major mode: ELisp/l

Minor modes in effect:
windmove-mode: t
savehist-mode: t
meow-global-mode: t
meow-mode: t
meow-normal-mode: t
meow-esc-mode: t
envrc-global-mode: t
envrc-mode: t
buffer-terminator-mode: t
global-git-commit-mode: t
magit-auto-revert-mode: t
marginalia-mode: t
vertico-mode: t
corfu-popupinfo-mode: t
corfu-history-mode: t
corfu-echo-mode: t
global-corfu-mode: t
corfu-mode: t
which-key-mode: t
undo-fu-session-global-mode: t
undo-fu-session-mode: t
global-treesit-auto-mode: t
global-auto-revert-mode: t
save-place-mode: t
electric-pair-mode: t
recentf-mode: t
global-display-line-numbers-mode: t
display-line-numbers-mode: t
override-global-mode: t
tooltip-mode: t
show-paren-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
tab-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-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:
/home/wurfkreuz/.emacs.d/elpa/transient-20250108.1351/transient hides /home/wurfkreuz/.source/emacs/lisp/transient

Features:
(shadow sort mail-extr emacsbug python face-remap ido find-dired
help-fns radix-tree tramp-cmds windmove dired-aux vc-git vc-dispatcher
org-appear image-file image-converter oc-basic ol-eww eww vtable
mule-util url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus
nnselect gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig
gnus-sum shr pixel-fill kinsoku url-file svg dom gnus-group gnus-undo
gnus-start gnus-dbus dbus xml gnus-cloud nnimap nnmail mail-source utf7
nnoo gnus-spec gnus-int gnus-range gnus-win gnus nnheader range
ol-docview doc-view image-mode exif ol-bibtex bibtex ol-bbdb ol-w3m
ol-doi org-link-doi jka-compr go-ts-mode savehist f em-tramp meow
meow-tutor meow-cheatsheet meow-cheatsheet-layout meow-core meow-shims
meow-esc meow-command array meow-thing meow-visual meow-keypad
meow-beacon meow-helpers meow-util meow-keymap meow-face meow-var delsel
org-tempo tempo org-drill persist org-agenda embark-org org-element
org-persist org-id org-refile org-element-ast inline avl-tree org ob
ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src ob-comint
org-pcomplete org-list org-footnote org-faces org-entities org-version
ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold
org-fold-core org-keys oc org-loaddefs cal-menu calendar cal-loaddefs
org-compat org-macs eglot external-completion jsonrpc ert ewoc debug
backtrace kdl-mode generic markdown-mode color nix-mode nix-repl
nix-shell nix-store nix-log nix-instantiate nix-shebang nix-format nix
yaml-mode haskell-mode haskell-cabal haskell-utils haskell-font-lock
haskell-indentation haskell-string haskell-sort-imports haskell-lexeme
haskell-align-imports haskell-complete-module haskell-ghc-support
flymake-proc flymake dabbrev haskell-customize dockerfile-mode sh-script
executable terraform-mode noutline outline hcl-mode lua-mode go-mode
find-file etags fileloop xref raku-mode raku-repl raku-imenu raku-indent
smie raku-font-lock raku-detect envrc inheritenv buffer-terminator
transpose-frame magit-bookmark magit-submodule magit-blame magit-stash
magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone
magit-remote magit-commit magit-sequence magit-notes magit-worktree
magit-tag magit-merge magit-branch magit-reset magit-files magit-refs
magit-status magit magit-repos magit-apply magit-wip magit-log
which-func imenu magit-diff git-commit log-edit message sendmail
yank-media puny rfc822 mml mml-sec epa derived epg rfc6068 epg-config
gnus-util mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047
rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils
mailheader pcvs-util add-log magit-core magit-autorevert magit-margin
magit-transient magit-process magit-mode benchmark magit-git magit-base
magit-section cursor-sensor crm smerge-mode diff-mode track-changes diff
hydra lv with-editor server embark-consult embark ffap thingatpt consult
bookmark marginalia vertico project exec-path-from-shell fish-completion
em-cmpl em-dirs esh-mode esh-var esh-cmd esh-ext esh-proc esh-opt esh-io
esh-arg esh-module esh-module-loaddefs esh-util cape corfu-popupinfo
corfu-history corfu-echo corfu orderless tempel-collection tempel wgrep
grep compile text-property-search which-key docker docker-context
docker-volume docker-network docker-image docker-container docker-faces
docker-core docker-compose docker-process docker-utils tablist advice
tablist-filter semantic/wisent/comp semantic/wisent
semantic/wisent/wisent semantic/util-modes semantic/util semantic
semantic/tag semantic/lex semantic/fw mode-local find-func cedet dired
dired-loaddefs docker-group transient edmacro kmacro compat dash aio
generator s avy goto-chg undo-fu-session undo-fu zig-ts-mode
clojure-ts-mode treesit-auto treesit rose-pine-theme cus-edit pp
cus-load midnight autorevert filenotify saveplace tramp-cache time-stamp
tramp-sh tramp trampver tramp-integration files-x tramp-message
tramp-compat shell pcomplete comint ansi-osc ring parse-time iso8601
time-date format-spec ansi-color tramp-loaddefs desktop frameset
elec-pair recentf tree-widget wid-edit comp comp-cstr warnings comp-run
comp-common display-line-numbers cl-extra help-mode use-package
use-package-ensure use-package-delight use-package-diminish
use-package-bind-key bind-key easy-mmode use-package-core finder-inf
avy-autoloads buffer-terminator-autoloads cape-autoloads
clojure-ts-mode-autoloads corfu-autoloads cursor-undo-autoloads
docker-autoloads aio-autoloads dockerfile-mode-autoloads
dot-mode-autoloads embark-consult-autoloads consult-autoloads
embark-autoloads envrc-autoloads exec-path-from-shell-autoloads
f-autoloads fish-completion-autoloads go-mode-autoloads
goto-chg-autoloads haskell-mode-autoloads hydra-autoloads
inheritenv-autoloads lua-mode-autoloads lv-autoloads magit-autoloads
pcase marginalia-autoloads markdown-mode-autoloads meow-autoloads
nix-mode-autoloads magit-section-autoloads orderless-autoloads
org-appear-autoloads org-drill-autoloads persist-autoloads
queue-autoloads raku-mode-autoloads rx s-autoloads tablist-autoloads
tempel-collection-autoloads tempel-autoloads terraform-mode-autoloads
dash-autoloads hcl-mode-autoloads transient-autoloads
transpose-frame-autoloads treesit-auto-autoloads undo-fu-autoloads
undo-fu-session-autoloads vertico-autoloads wgrep-autoloads info
with-editor-autoloads yaml-mode-autoloads zig-ts-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 rmc iso-transl tooltip cconv eldoc paren
electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
term/pgtk-win pgtk-win term/common-win touch-screen pgtk-dnd 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 dbusbind inotify
dynamic-setting system-font-setting font-render-setting cairo gtk pgtk
lcms2 multi-tty move-toolbar make-network-process tty-child-frames
native-compile emacs)

Memory information:
((conses 16 859029 224316) (symbols 48 53222 28) (strings 32 252943 9100)
(string-bytes 1 8350345) (vectors 16 97934) (vector-slots 8 1794516 154778)
(floats 8 759 336) (intervals 56 4355 1377) (buffers 992 35))
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#75978; Package emacs. (Sat, 08 Feb 2025 10:49:02 GMT) Full text and rfc822 format available.

Message #8 received at 75978 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: the_wurfkreuz <the_wurfkreuz <at> proton.me>, Randy Taylor <dev <at> rjt.dev>,
 Yuan Fu <casouri <at> gmail.com>
Cc: 75978 <at> debbugs.gnu.org
Subject: Re: bug#75978: 31.0.50;
 Using fill-region doesn't produce commented lines in go-ts-mode
Date: Sat, 08 Feb 2025 12:47:52 +0200
> Date: Fri, 31 Jan 2025 19:21:40 +0000
> From:  the_wurfkreuz via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
> 
> I noticed that, unlike in other built-in language modes, in go-ts-mode, using fill-region on a comment line
> doesn't automatically comment the new line.
> 
> Steps to reproduce:
> 1. emacs -Q
> 2. Paste this text so that it takes only a single line: "To make our function interact with Waitgroup, we need to
> send a reference to this group. Once we have its reference, the function can defer, calling Done(), to ensure
> that we signal correctly for our group every time the function is complete."
> 3. Run set-mark-command and select the whole line using
> move-beginning-of-line.
> 4. Enable go-ts-mode (assuming that the grammar is already compiled).
> 5. Use comment-region on the selected text.
> 6. Then select the whole line again and execute fill-region.
> The newly created lines aren't commented. If I do the same thing in 
> python-ts-mode, the new lines are commented out.

Randy and Yuan, any comments or suggestions?




This bug report was last modified today.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.