Subject: bug#70908: closed (Re: bug#70908: 29.3; Indentation breaks in csharp-mode)

From: [email-masked] (GNU bug Tracking System)
Date: Mon, 13 May 2024 06:02:02 +0000

Your bug report

#70908: 29.3; Indentation breaks in csharp-mode

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
70908: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=70908
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#70908: 29.3; Indentation breaks in csharp-mode
From: Eli Zaretskii <[email-masked]>
To: Mads Kyed <[email-masked]>
Cc: [email-masked]
Date: Mon, 13 May 2024 09:01:09 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

> Date: Sun, 12 May 2024 19:13:35 +0200
> From: Mads Kyed <[email-masked]>
> 
> Hi,
> 
> In csharp-mode the indentation breaks if the keyword "new" is
> used somewhere in a file. For example:
> 
> class A
> {
>       List<int> a = new List<int>();
> }
> 
> Placing the cursor after ; and pressing Return twice, it becomes
> apparent that the indentation no longer works. If the "new" keyword is
> removed, indentation works again.
> 
> It seems there is some new logic (introduced in version 29.3) in the 
> function
> "csharp-guess-basic-syntax" that is responsible for the behaviour
> above.

Thanks.  I can reproduce this in Emacs 29.3, but not on the current
emacs-29 branch or the master branch (which will become Emacs 30).  So
I assume this was already fixed, and I'm therefore closing this bug.

Subject: 29.3; Indentation breaks in csharp-mode
From: Mads Kyed <[email-masked]>
To: [email-masked]
Date: Sun, 12 May 2024 19:13:35 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

In csharp-mode the indentation breaks if the keyword "new" is
used somewhere in a file. For example:

class A
{
      List<int> a = new List<int>();
}

Placing the cursor after ; and pressing Return twice, it becomes
apparent that the indentation no longer works. If the "new" keyword is
removed, indentation works again.

It seems there is some new logic (introduced in version 29.3) in the 
function
"csharp-guess-basic-syntax" that is responsible for the behaviour
above.

Best regards, Mads Kyed

In GNU Emacs 29.3 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.38,
cairo version 1.18.0) of 2024-05-11 built on localhost
Windowing system distributor 'The X.Org Foundation', version 11.0.12101009
System Description: Gentoo Linux

Configured using:
'configure --prefix=/usr --build=x86_64-pc-linux-gnu
--host=x86_64-pc-linux-gnu --mandir=/usr/share/man
--infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc
--localstatedir=/var/lib --datarootdir=/usr/share
--disable-silent-rules --docdir=/usr/share/doc/emacs-29.3-r2
--htmldir=/usr/share/doc/emacs-29.3-r2/html --libdir=/usr/lib64
--program-suffix=-emacs-29 --includedir=/usr/include/emacs-29
--infodir=/usr/share/info/emacs-29 --localstatedir=/var
--enable-locallisppath=/etc/emacs:/usr/share/emacs/site-lisp
--without-compress-install --without-hesiod --without-pop
--with-file-notification=inotify --with-pdumper --enable-acl
--with-dbus --without-modules --without-gameuser --with-libgmp
--with-gpm --without-native-compilation --with-json --without-kerberos
--without-kerberos5 --with-lcms2 --with-xml2 --without-mailutils
--without-selinux --without-sqlite3 --with-gnutls --without-libsystemd
--with-threads --without-tree-sitter --without-wide-int
--with-sound=alsa --with-zlib --with-x --without-pgtk --without-ns
--without-gconf --without-gsettings --without-toolkit-scroll-bars
--with-xpm --with-xft --with-cairo --without-harfbuzz --without-libotf
--without-m17n-flt --with-x-toolkit=gtk3 --without-xwidgets --with-gif
--with-jpeg --with-png --with-rsvg --with-tiff --without-webp
--without-imagemagick --with-dumping=pdumper 'CFLAGS=-march=native -O2
-pipe' 'LDFLAGS=-Wl,-O1 -Wl,--as-needed''

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM JPEG JSON LCMS2 LIBXML2
NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND THREADS TIFF X11 XDBE XIM
XINPUT2 XPM GTK3 ZLIB

Important settings:
value of $LC_MONETARY: de_DE.UTF-8
value of $LC_NUMERIC: de_DE.UTF-8
value of $LC_TIME: de_DE.UTF-8
value of $LANG: en_US.utf8
locale-coding-system: utf-8-unix

Major mode: ELisp/d

Minor modes in effect:
repeat-mode: t
cua-mode: t
display-time-mode: t
minions-mode: t
yas-global-mode: t
yas-minor-mode: t
global-git-commit-mode: t
magit-auto-revert-mode: t
server-mode: t
global-flycheck-mode: t
flycheck-mode: t
pdf-occur-global-minor-mode: t
TeX-PDF-mode: t
TeX-source-correlate-mode: t
delete-selection-mode: t
windmove-mode: t
ido-everywhere: t
shell-dirtrack-mode: t
override-global-mode: t
tooltip-mode: t
global-eldoc-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
line-number-mode: t
global-visual-line-mode: t
visual-line-mode: t
indent-tabs-mode: t
transient-mark-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t

Load-path shadows:
/home/kyed/.emacs.d/elpa/auctex-14.0.4/auctex hides 
/usr/share/emacs/site-lisp/auctex/auctex
/home/kyed/.emacs.d/elpa/auctex-14.0.4/context-nl hides 
/usr/share/emacs/site-lisp/auctex/context-nl
/home/kyed/.emacs.d/elpa/auctex-14.0.4/tex-ispell hides 
/usr/share/emacs/site-lisp/auctex/tex-ispell
/home/kyed/.emacs.d/elpa/auctex-14.0.4/tex-info hides 
/usr/share/emacs/site-lisp/auctex/tex-info
/home/kyed/.emacs.d/elpa/auctex-14.0.4/preview hides 
/usr/share/emacs/site-lisp/auctex/preview
/home/kyed/.emacs.d/elpa/auctex-14.0.4/toolbar-x hides 
/usr/share/emacs/site-lisp/auctex/toolbar-x
/home/kyed/.emacs.d/elpa/auctex-14.0.4/tex-style hides 
/usr/share/emacs/site-lisp/auctex/tex-style
/home/kyed/.emacs.d/elpa/auctex-14.0.4/tex hides 
/usr/share/emacs/site-lisp/auctex/tex
/home/kyed/.emacs.d/elpa/auctex-14.0.4/tex-fold hides 
/usr/share/emacs/site-lisp/auctex/tex-fold
/home/kyed/.emacs.d/elpa/auctex-14.0.4/plain-tex hides 
/usr/share/emacs/site-lisp/auctex/plain-tex
/home/kyed/.emacs.d/elpa/auctex-14.0.4/bib-cite hides 
/usr/share/emacs/site-lisp/auctex/bib-cite
/home/kyed/.emacs.d/elpa/auctex-14.0.4/tex-font hides 
/usr/share/emacs/site-lisp/auctex/tex-font
/home/kyed/.emacs.d/elpa/auctex-14.0.4/context hides 
/usr/share/emacs/site-lisp/auctex/context
/home/kyed/.emacs.d/elpa/auctex-14.0.4/tex-site hides 
/usr/share/emacs/site-lisp/auctex/tex-site
/home/kyed/.emacs.d/elpa/auctex-14.0.4/multi-prompt hides 
/usr/share/emacs/site-lisp/auctex/multi-prompt
/home/kyed/.emacs.d/elpa/auctex-14.0.4/tex-mik hides 
/usr/share/emacs/site-lisp/auctex/tex-mik
/home/kyed/.emacs.d/elpa/auctex-14.0.4/texmathp hides 
/usr/share/emacs/site-lisp/auctex/texmathp
/home/kyed/.emacs.d/elpa/auctex-14.0.4/latex-flymake hides 
/usr/share/emacs/site-lisp/auctex/latex-flymake
/home/kyed/.emacs.d/elpa/auctex-14.0.4/tex-jp hides 
/usr/share/emacs/site-lisp/auctex/tex-jp
/home/kyed/.emacs.d/elpa/auctex-14.0.4/context-en hides 
/usr/share/emacs/site-lisp/auctex/context-en
/home/kyed/.emacs.d/elpa/auctex-14.0.4/font-latex hides 
/usr/share/emacs/site-lisp/auctex/font-latex
/home/kyed/.emacs.d/elpa/auctex-14.0.4/latex hides 
/usr/share/emacs/site-lisp/auctex/latex
/home/kyed/.emacs.d/elpa/auctex-14.0.4/tex-bar hides 
/usr/share/emacs/site-lisp/auctex/tex-bar
/home/kyed/.emacs.d/elpa/jsonrpc-1.0.25/jsonrpc hides 
/usr/share/emacs/29.3/lisp/jsonrpc
/home/kyed/.emacs.d/elpa/transient-20240509.1849/transient hides 
/usr/share/emacs/29.3/lisp/transient
/home/kyed/.emacs.d/elpa/eglot-1.17/eglot hides 
/usr/share/emacs/29.3/lisp/progmodes/eglot
/home/kyed/.emacs.d/elpa/eldoc-1.15.0/eldoc hides 
/usr/share/emacs/29.3/lisp/emacs-lisp/eldoc

Features:
(display-line-numbers vc-dispatcher vc-svn shortdoc cl-print help-fns
radix-tree shadow sort mail-extr emacsbug leuven-theme repeat cua-base
time minions yasnippet 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 magit-diff smerge-mode git-commit
log-edit message sendmail yank-media rfc822 mml mml-sec epa 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 autorevert magit-margin
magit-transient magit-process with-editor server magit-mode transient
magit-git magit-base magit-section cursor-sensor lsp-ui lsp-ui-flycheck
lsp-ui-doc goto-addr lsp-ui-imenu lsp-ui-peek lsp-ui-sideline flycheck
lsp-ui-util face-remap dap-netcore dom dap-mode dap-tasks dap-launch
lsp-docker yaml posframe dap-overlays lsp-mode lsp-protocol tree-widget
spinner network-stream nsm markdown-mode color lv inline ht epg rfc6068
epg-config eglot-fsharp gnutls puny eglot external-completion jsonrpc
diff ert ewoc debug backtrace fsharp-mode inf-fsharp-mode
fsharp-mode-util fsharp-mode-structure smie conda pythonic tramp
tramp-loaddefs trampver tramp-integration tramp-compat parse-time
pdf-occur tablist 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
pdf-isearch pdf-misc imenu pdf-tools pdf-view bookmark pdf-cache
pdf-info tq pdf-util format-spec pdf-macs auto-complete-auctex latex
latex-flymake flymake-proc flymake warnings tex-ispell tex-style
auto-complete popup tex dbus xml crm texmathp intellij-theme projectile
lisp-mnt ibuf-ext ibuffer ibuffer-loaddefs replace-from-region session
zenburn-theme synosaurus thingatpt browse-kill-ring delsel biblio
biblio-download biblio-dissemin biblio-ieee biblio-hal biblio-dblp
biblio-crossref biblio-arxiv biblio-doi biblio-core let-alist url-queue
url-file hl-line bibtex iso8601 time-date pcsv edmacro kmacro
outline-magic noutline outline windsize windmove elpy advice elpy-rpc
pyvenv eshell esh-cmd esh-ext esh-opt esh-proc esh-io esh-arg esh-module
esh-groups esh-util elpy-shell elpy-profile elpy-django elpy-refactor
diff-mode python compat treesit ido hideshow grep compile
text-property-search files-x etags fileloop generator xref project
cus-edit pp cus-load icons autumn-light-theme
color-theme-sanityinc-solarized hide-mode-line w3m doc-view filenotify
jka-compr image-mode exif timezone w3m-hist bookmark-w3m w3m-ems
wid-edit w3m-favicon w3m-image w3m-fb tab-line w3m-proc w3m-util f dash
s multishell savehist shell pcomplete comint ansi-osc ansi-color ring
exec-path-from-shell cl-extra help-mode use-package use-package-ensure
use-package-delight use-package-diminish use-package-bind-key bind-key
use-package-core dired-x dired dired-loaddefs finder-inf easy-mmode
derived rx site-gentoo preview-latex auctex-autoloads tex-site
auto-complete-auctex-autoloads auto-complete-autoloads
autumn-light-theme-autoloads biblio-autoloads biblio-core-autoloads
browse-kill-ring-autoloads color-theme-modern-autoloads
color-theme-sanityinc-solarized-autoloads conda-autoloads
dap-mode-autoloads bui-autoloads dired-narrow-autoloads
dired-hacks-utils-autoloads eglot-fsharp-autoloads eglot-autoloads
elpy-autoloads company-autoloads exec-path-from-shell-autoloads
flycheck-autoloads fsharp-mode-autoloads hide-mode-line-autoloads
highlight-indentation-autoloads intellij-theme-autoloads
jsonrpc-autoloads lsp-docker-autoloads lsp-treemacs-autoloads
lsp-ui-autoloads lsp-mode-autoloads eldoc-autoloads magit-autoloads
pcase git-commit-autoloads magit-section-autoloads
markdown-mode-autoloads maxima-autoloads minions-autoloads
mood-line-autoloads multishell-autoloads outline-magic-autoloads
pcsv-autoloads pdf-tools-autoloads popup-autoloads projectile-autoloads
pythonic-autoloads f-autoloads pyvenv-autoloads
replace-from-region-autoloads session-autoloads
solarized-theme-autoloads spinner-autoloads synosaurus-autoloads
tablist-autoloads test-simple-autoloads transient-autoloads
treemacs-autoloads cfrs-autoloads posframe-autoloads ht-autoloads
hydra-autoloads lv-autoloads pfuture-autoloads ace-window-autoloads
avy-autoloads s-autoloads dash-autoloads w3m-load w3m-autoloads
windsize-autoloads with-editor-autoloads info compat-autoloads
yaml-autoloads yasnippet-autoloads zenburn-theme-autoloads 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 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 font-render-setting cairo
move-toolbar gtk x-toolkit xinput2 x multi-tty make-network-process
emacs)

Memory information:
((conses 16 484104 74188)
(symbols 48 45670 42)
(strings 32 161879 9055)
(string-bytes 1 4751692)
(vectors 16 95645)
(vector-slots 8 1700648 224762)
(floats 8 507 150)
(intervals 56 1477 134)
(buffers 976 20))

-- 
Mads Kyed
Email: [email-masked]