GNU bug report logs - #61115
29.0.60; java-ts-mode - Wrong indentation for class members with annotation

Previous Next

Package: emacs;

Reported by: 太阳 <zjyzhaojiyang <at> hotmail.com>

Date: Sat, 28 Jan 2023 09:24:02 UTC

Severity: normal

Found in version 29.0.60

Fixed in version 29.1

Done: Theodor Thornhill <theo <at> thornhill.no>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 61115 in the body.
You can then email your comments to 61115 AT debbugs.gnu.org in the normal way.

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#61115; Package emacs. (Sat, 28 Jan 2023 09:24:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to 太阳 <zjyzhaojiyang <at> hotmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sat, 28 Jan 2023 09:24:02 GMT) Full text and rfc822 format available.

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

From: 太阳 <zjyzhaojiyang <at> hotmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 29.0.60; java-ts-mode - Wrong indentation for class members with
 annotation
Date: Sat, 28 Jan 2023 08:39:05 +0000

For java class members without any access modifier (aka default
modifier), if you add an annotation to it, java-ts-mode will add
another level of indentation, making it look like:

public class T {
    @Autowired
        String a;
}

This behaviour is different from java-mode's too.

If you add private before 'String a;', java-ts-mode will indent it well


public class T {
    @Autowired
    private String a;
}


In GNU Emacs 29.0.60 (build 12, x86_64-pc-linux-gnu, X toolkit, Xaw3d
 scroll bars) of 2023-01-28 built on tux-manjaro
Repository revision: 194bc97879d2b57545eda17dbeb0b2e46b215617
Repository branch: makepkg
Windowing system distributor 'The X.Org Foundation', version 11.0.12101006
System Description: Manjaro Linux

Configured using:
 'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
 --localstatedir=/var --mandir=/usr/share/man --with-gameuser=:games
 --with-modules --without-libotf --without-m17n-flt --without-gconf
 --with-native-compilation=no --with-xinput2 --with-x-toolkit=lucid
 --with-xft --with-xaw3d --without-cairo --with-sound=no
 --with-tree-sitter --without-gpm --without-compress-install
 '--program-transform-name=s/\([ec]tags\)/\1.emacs/'
 'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions
 -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security
 -fstack-clash-protection -fcf-protection'
 LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now'

Configured features:
ACL DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON LCMS2
LIBSYSTEMD LIBXML2 MODULES NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP
SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XAW3D XDBE
XFT XIM XINPUT2 XPM LUCID ZLIB

Important settings:
  value of $LC_MONETARY: zh_CN.UTF-8
  value of $LC_NUMERIC: zh_CN.UTF-8
  value of $LC_TIME: zh_CN.UTF-8
  value of $LANG: zh_CN.UTF-8
  value of $XMODIFIERS: @im=fcitx
  locale-coding-system: utf-8

Major mode: ELisp/l

Minor modes in effect:
  winner-mode: t
  recentf-mode: t
  helm--remap-mouse-mode: t
  async-bytecomp-package-mode: t
  which-function-mode: t
  hl-todo-mode: t
  dumb-jump-mode: t
  yafolding-mode: t
  auto-dim-other-buffers-mode: t
  global-display-line-numbers-mode: t
  display-line-numbers-mode: t
  global-so-long-mode: t
  global-hl-line-mode: t
  super-save-mode: t
  aggressive-indent-mode: t
  ctags-global-auto-update-mode: t
  ctags-auto-update-mode: t
  hungry-delete-mode: t
  company-box-mode: t
  company-statistics-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  global-company-mode: t
  company-mode: t
  evil-escape-mode: t
  global-evil-surround-mode: t
  evil-surround-mode: t
  shell-dirtrack-mode: t
  evil-local-mode: t
  windmove-mode: t
  eww-plus-mode: t
  all-the-icons-ivy-rich-mode: t
  ivy-rich-project-root-cache-mode: t
  ivy-rich-mode: t
  ivy-mode: t
  global-highlight-parentheses-mode: t
  highlight-parentheses-mode: t
  electric-pair-mode: t
  which-key-mode: t
  psessionm-mode: t
  psessionm-savehist-mode: t
  ace-pinyin-global-mode: t
  ace-pinyin-mode: t
  global-anzu-mode: t
  anzu-mode: t
  amx-mode: t
  auto-compile-on-load-mode: t
  auto-compile-on-save-mode: t
  auto-compile-mode: t
  override-global-mode: t
  save-place-mode: t
  display-time-mode: t
  global-auto-revert-mode: t
  gcmh-mode: t
  tooltip-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  column-number-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/lucency/.emacs.d/data/unsync/elpa29/use-package-20221209.2013/use-package-bind-key 
hides /usr/share/emacs/29.0.60/lisp/use-package/use-package-bind-key
/home/lucency/.emacs.d/data/unsync/elpa29/use-package-20221209.2013/use-package-diminish 
hides /usr/share/emacs/29.0.60/lisp/use-package/use-package-diminish
/home/lucency/.emacs.d/data/unsync/elpa29/use-package-20221209.2013/use-package-lint 
hides /usr/share/emacs/29.0.60/lisp/use-package/use-package-lint
/home/lucency/.emacs.d/data/unsync/elpa29/use-package-20221209.2013/use-package 
hides /usr/share/emacs/29.0.60/lisp/use-package/use-package
/home/lucency/.emacs.d/data/unsync/elpa29/use-package-20221209.2013/use-package-ensure 
hides /usr/share/emacs/29.0.60/lisp/use-package/use-package-ensure
/home/lucency/.emacs.d/data/unsync/elpa29/use-package-20221209.2013/use-package-core 
hides /usr/share/emacs/29.0.60/lisp/use-package/use-package-core
/home/lucency/.emacs.d/data/unsync/elpa29/use-package-20221209.2013/use-package-delight 
hides /usr/share/emacs/29.0.60/lisp/use-package/use-package-delight
/home/lucency/.emacs.d/data/unsync/elpa29/use-package-20221209.2013/use-package-jump 
hides /usr/share/emacs/29.0.60/lisp/use-package/use-package-jump
/home/lucency/.emacs.d/data/unsync/elpa29/bind-key-20221209.2013/bind-key 
hides /usr/share/emacs/29.0.60/lisp/use-package/bind-key

Features:
(cl-print company-yasnippet oc-basic ol-eww ol-rmail ol-mhe ol-irc
ol-info ol-gnus nnselect gnus-art mm-uu mml2015 mm-view mml-smime smime
dig gnus-sum gnus-group gnus-undo gnus-start gnus-dbus gnus-cloud nnimap
nnmail mail-source utf7 nnoo gnus-spec gnus-int gnus-range gnus-win
ol-docview ol-bibtex bibtex ol-bbdb ol-w3m ol-doi org-link-doi org-habit
epa-file org-passwords facemenu two-column network-stream url-http
url-gw nsm url-cache url-auth mailalias mailclient textsec uni-scripts
idna-mapping ucs-normalize uni-confusable textsec-check expand-region
text-mode-expansions cc-mode-expansions the-org-mode-expansions
er-basic-expansions expand-region-core expand-region-custom add-log sdcv
pos-tip showtip vc-svn shadow mail-extr emacsbug message yank-media
rfc822 mml mml-sec epa epg rfc6068 epg-config mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils sendmail rfc2047
rfc2045 ietf-drums shortdoc help-fns radix-tree modern-cpp-font-lock
cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine
cc-vars cc-defs mule-util helm-command helm-mode winner ffap recentf
tree-widget tramp-archive tramp-gvfs dbus helm-x-files helm-for-files
helm-bookmark helm-adaptive helm-external helm-net helm-misc helm-elisp
helm-files image-dired image-dired-tags image-dired-external
image-dired-util helm-buffers helm-occur helm-tags helm-locate helm-grep
helm-regexp helm-eval helm-info helm-utils helm-types helm-help helm
helm-global-bindings helm-easymenu helm-core async-bytecomp helm-source
helm-multi-match helm-lib company-elisp which-func imenu hl-todo compat
dumb-jump yafolding auto-dim-other-buffers display-line-numbers so-long
hl-line super-save ivy-stock stock-analyze stock-leek stock
stock-baostock stock-tushare stock-db stock-db-tushare stock-db-baostock
stock-util stock-struct csv gitec gnuplot info-look aggressive-indent
java-ts-mode c-ts-common ob-rust cmake-mode rst flymake-cursor
ctags-update etags fileloop highlight-symbol hungry-delete topsy treesit
pb company-box company-box-doc frame-local company-box-icons
company-statistics company-files company-dabbrev-code company-dabbrev
company-keywords company-capf yasnippet-snippets yasnippet company
cal-china-x cal-china lunar solar cal-dst holidays holiday-loaddefs
language-chunk lc-memo lc-corpus lc-storage lc-db emacsql-sqlite3
emacsql emacsql-compiler lc-util lc-struct lc-const ivy-anotes anotes
anotes-struct counsel-deft f f-shortdoc dash-docs gnutls doc-view
jka-compr image-mode exif vterm vc-git diff-mode vc-dispatcher bookmark
tramp tramp-loaddefs trampver tramp-integration tramp-compat parse-time
iso8601 ls-lisp term disp-table ehelp vterm-module term/xterm xterm
evil-god-state god-mode evil-escape evil-surround evil-anzu evil
evil-keybindings evil-maps evil-commands reveal evil-jumps
evil-command-window evil-search evil-ex shell evil-types evil-macros
evil-repeat evil-states evil-core evil-common windmove calc
calc-loaddefs calc-macs rect evil-digraphs evil-vars diminish eww-plus
eww url-queue shr-tag-pre-highlight language-detection shrface shr
pixel-fill kinsoku url-file svg xml dom puny mm-url gnus nnheader
gnus-util range mm-util mail-prsvr request mailheader mail-utils bm
ivy-xref ivy-hydra hydra lv all-the-icons-ivy-rich all-the-icons
all-the-icons-faces data-material data-weathericons data-octicons
data-fileicons data-faicons data-alltheicons ivy-rich ivy-plus pulse
flymake-proc flymake warnings heap counsel xref project dired-open
dired-hacks-utils dired-x dired dired-loaddefs compile
text-property-search swiper ivy ivy-faces ivy-overlay colir color
weblorg templatel em-glob esh-util cus-edit wid-edit files-x ox-odt
rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse
nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar org-agenda
ox-html table ox-ascii ox-publish ox org-appear org-element org-persist
xdg org-id org-refile avl-tree generator diary-lib diary-loaddefs org ob
ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src ob-comint
org-pcomplete pcomplete comint ansi-osc ansi-color org-list org-footnote
org-faces org-entities time-date noutline outline icons 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-version org-compat
org-macs highlight-parentheses log4j-mode elec-pair which-key psessionm
gitignore-mode vundo pcase pyim-cstring-utils pyim-cregexp-utils pyim
pyim-cloudim pyim-probe pyim-preview pyim-page popup posframe-plus
posframe pyim-indicator pyim-dregcache pyim-dhashcache sort pyim-dict
async pyim-autoselector pyim-process pyim-punctuation pyim-outcome
pyim-candidates pyim-cstring pyim-cregexp xr rx pyim-codes pyim-imobjs
pyim-pinyin pyim-entered pyim-dcache pyim-pymap pyim-scheme pyim-common
ace-pinyin avy ring pinyinlib anzu thingatpt amx s transient format-spec
ht dash use-package-diminish auto-compile ispell edmacro kmacro
use-package-bind-key bind-key easy-mmode conf-mode saveplace time server
pinentry autorevert filenotify tab-line doom-vibrant-theme
doom-themes-ext-org doom-themes-ext-visual-bell face-remap doom-themes
doom-themes-base gcmh cl-extra use-package-core delsel cus-load
amx-autoloads all-the-icons-ivy-rich-autoloads dired-open-autoloads
helm-autoloads magit-autoloads auto-compile-autoloads
evil-surround-autoloads use-package-autoloads rainbow-mode-autoloads
alert-autoloads cal-china-x-autoloads posframe-autoloads
hungry-delete-autoloads counsel-autoloads sdcv-autoloads
smart-compile-autoloads eww-lnum-autoloads elfeed-autoloads
jsonian-autoloads magit-section-autoloads expand-region-autoloads
hide-lines-autoloads php-mode-autoloads ivy-rich-autoloads
crontab-mode-autoloads yaml-mode-autoloads topsy-autoloads
company-box-autoloads frame-local-autoloads dumb-jump-autoloads
ivy-hydra-autoloads helm-core-autoloads sql-indent-autoloads
highlight-symbol-autoloads git-modes-autoloads evil-tutor-autoloads
pinentry-autoloads heap-autoloads showtip-autoloads go-mode-autoloads
highlight-parentheses-autoloads powerline-autoloads
ascii-table-autoloads vundo-autoloads shr-tag-pre-highlight-autoloads
log4j-mode-autoloads youdao-dictionary-autoloads derived pp names edebug
debug backtrace help-mode find-func names-autoloads advice
gcmh-autoloads hl-todo-autoloads hydra-autoloads lv-autoloads
ob-rust-autoloads rust-mode-autoloads git-commit-autoloads
with-editor-autoloads finder-inf chinese-word-at-point-autoloads
request-autoloads iedit-autoloads diminish-autoloads
language-detection-autoloads vterm-autoloads doom-themes-autoloads
evil-anzu-autoloads anzu-autoloads popup-autoloads cargo-autoloads
markdown-mode-autoloads packed-autoloads compat-autoloads
evil-escape-autoloads evil-autoloads emacsql-sqlite3-autoloads
emacsql-autoloads ace-pinyin-autoloads pinyinlib-autoloads avy-autoloads
auto-dim-other-buffers-autoloads pos-tip-autoloads async-autoloads
ht-autoloads yasnippet-snippets-autoloads yasnippet-autoloads
templatel-autoloads gntp-autoloads eshell-toggle-autoloads xr-autoloads
org-appear-autoloads gnuplot-autoloads htmlize-autoloads
sqlup-mode-autoloads modern-cpp-font-lock-autoloads unicad-autoloads
super-save-autoloads queue-autoloads bind-key-autoloads
aggressive-indent-autoloads which-key-autoloads
company-statistics-autoloads company-autoloads log4e-autoloads
csv-mode-autoloads helpful-autoloads elisp-refs-autoloads f-autoloads
s-autoloads rfc-mode-autoloads web-mode-autoloads swiper-autoloads
ivy-autoloads dired-hacks-utils-autoloads info dash-autoloads
dockerfile-mode-autoloads all-the-icons-autoloads kv-autoloads
goto-chg-autoloads bm-autoloads package-installer-package package
browse-url 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 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/x-win x-win term/common-win x-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 lcms2
dynamic-setting system-font-setting font-render-setting x-toolkit
xinput2 x multi-tty make-network-process emacs)

Memory information:
((conses 16 2046088 1119445)
 (symbols 48 60412 55)
 (strings 32 1823869 60373)
 (string-bytes 1 28739364)
 (vectors 16 329022)
 (vector-slots 8 14918602 508376)
 (floats 8 92965 1012)
 (intervals 56 17236 6825)
 (buffers 984 27))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61115; Package emacs. (Sat, 28 Jan 2023 19:01:02 GMT) Full text and rfc822 format available.

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

From: Theodor Thornhill <theo <at> thornhill.no>
To: 太阳 <zjyzhaojiyang <at> hotmail.com>
Cc: 61115 <at> debbugs.gnu.org
Subject: Re: bug#61115: 29.0.60; java-ts-mode - Wrong indentation for class
 members with annotation
Date: Sat, 28 Jan 2023 20:00:26 +0100
太阳 <zjyzhaojiyang <at> hotmail.com> writes:

> For java class members without any access modifier (aka default
> modifier), if you add an annotation to it, java-ts-mode will add
> another level of indentation, making it look like:
>
> public class T {
>     @Autowired
>         String a;
> }
>
> This behaviour is different from java-mode's too.
>
> If you add private before 'String a;', java-ts-mode will indent it well
>
>
> public class T {
>     @Autowired
>     private String a;
> }
>

Hi and thanks for your clear report.

This should be fixed on latest emacs-29 branch, and soon on master :-)

Theo




bug marked as fixed in version 29.1, send any further explanations to 61115 <at> debbugs.gnu.org and 太阳 <zjyzhaojiyang <at> hotmail.com> Request was from Theodor Thornhill <theo <at> thornhill.no> to control <at> debbugs.gnu.org. (Sat, 28 Jan 2023 19:02:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61115; Package emacs. (Sun, 29 Jan 2023 08:33:03 GMT) Full text and rfc822 format available.

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

From: 太阳 <zjyzhaojiyang <at> hotmail.com>
To: Theodor Thornhill <theo <at> thornhill.no>
Cc: 61115 <at> debbugs.gnu.org
Subject: Re: bug#61115: 29.0.60; java-ts-mode - Wrong indentation for class
 members with annotation
Date: Sun, 29 Jan 2023 04:29:55 +0000
I've updated to the latest emacs-29 and it works as expected. Thanks.

Theodor Thornhill 在 2023年01月29日 星期日 03时00分26秒 (+08:00) 写道:

> 太阳 <zjyzhaojiyang <at> hotmail.com> writes:
> 
> > For java class members without any access modifier (aka default
> > modifier), if you add an annotation to it, java-ts-mode will add
> > another level of indentation, making it look like:
> >
> > public class T {
> >     @Autowired
> >         String a;
> > }
> >
> > This behaviour is different from java-mode's too.
> >
> > If you add private before 'String a;', java-ts-mode will indent it well
> >
> >
> > public class T {
> >     @Autowired
> >     private String a;
> > }
> >
> 
> Hi and thanks for your clear report.
> 
> This should be fixed on latest emacs-29 branch, and soon on master :-)
> 
> Theo
> 

-- 
发送自 Vivaldi 邮件。访问 vivaldi.com 免费下载




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 26 Feb 2023 12:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 60 days ago.

Previous Next


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