Subject: 29.1; Indentation problems in opascal mode

From: Pascal Quesseveur <[email-masked]>
Date: Mon, 31 Mar 2025 19:00:53 +0200

1. emacs -Q

2. C-x C-f check.pas

3. M-x opascal-mode

4. Input following text:

uses someUnit, my.anotherUnit;
{ one line comment }

uses
   someUnit, my.anotherUnit;
{ one line comment }

uses someUnit, my.anotherUnit, otherunit;
{ one line comment }

uses
   someUnit, my.anotherUnit, otherunit;
{ one line comment }

5. Enter TAB on each comment line, text becomes:

uses someUnit, my.anotherUnit;
{ one line comment }

uses
   someUnit, my.anotherUnit;
{ one line comment }

uses someUnit, my.anotherUnit, otherunit;
     { one line comment }

uses
   someUnit, my.anotherUnit, otherunit;
   { one line comment }

In GNU Emacs 29.1 (build 2, x86_64-w64-mingw32) of 2023-08-02 built on
 AVALON
Windowing system distributor 'Microsoft Corp.', version 10.0.26100
System Description: Microsoft Windows 10 Pro (v10.0.2009.26100.3476)

Configured using:
 'configure --with-modules --without-dbus --with-native-compilation=aot --without-compress-install --with-tree-sitter
 CFLAGS=-O2'

Configured features:
ACL GIF GMP GNUTLS HARFBUZZ JPEG JSON LCMS2 LIBXML2 MODULES
NATIVE_COMP NOTIFY W32NOTIFY PDUMPER PNG RSVG SOUND SQLITE3 THREADS
TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XPM ZLIB

(NATIVE_COMP present but libgccjit not available)

Important settings:
  value of $LANG: FRA
  locale-coding-system: cp1252

Major mode: Org

Minor modes in effect:
  csv-field-index-mode: t
  edraw-org-link-image-mode: t
  emms-playing-time-display-mode: t
  emms-playing-time-mode: t
  emms-mode-line-mode: t
  display-time-mode: t
  shell-dirtrack-mode: t
  server-mode: t
  icomplete-mode: t
  windmove-mode: t
  auto-image-file-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-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
  auto-fill-function: org-auto-fill-function
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
c:/Users/quessev/.emacs.d/lisp/vcard-qsr/vcard hides c:/Users/Public/emacs-site/lisp/utils/vcard
c:/Users/Public/emacs-site/lisp/color-theme-6.5.4/color-theme hides c:/Users/Public/emacs-site/lisp/utils/color-theme
c:/Users/Public/emacs-site/lisp/bbdb-3.2.2.2/bbdb hides c:/Users/quessev/.emacs.d/elpa/bbdb-3.2.2.2/bbdb
c:/Users/Public/emacs-site/lisp/bbdb-3.2.2.2/bbdb-wl hides c:/Users/quessev/.emacs.d/elpa/bbdb-3.2.2.2/bbdb-wl
c:/Users/Public/emacs-site/lisp/bbdb-3.2.2.2/bbdb-vm hides c:/Users/quessev/.emacs.d/elpa/bbdb-3.2.2.2/bbdb-vm
c:/Users/Public/emacs-site/lisp/bbdb-3.2.2.2/bbdb-tex hides c:/Users/quessev/.emacs.d/elpa/bbdb-3.2.2.2/bbdb-tex
c:/Users/Public/emacs-site/lisp/bbdb-3.2.2.2/bbdb-snarf hides c:/Users/quessev/.emacs.d/elpa/bbdb-3.2.2.2/bbdb-snarf
c:/Users/Public/emacs-site/lisp/bbdb-3.2.2.2/bbdb-site hides c:/Users/quessev/.emacs.d/elpa/bbdb-3.2.2.2/bbdb-site
c:/Users/Public/emacs-site/lisp/bbdb-3.2.2.2/bbdb-rmail hides c:/Users/quessev/.emacs.d/elpa/bbdb-3.2.2.2/bbdb-rmail
c:/Users/Public/emacs-site/lisp/bbdb-3.2.2.2/bbdb-pkg hides c:/Users/quessev/.emacs.d/elpa/bbdb-3.2.2.2/bbdb-pkg
c:/Users/Public/emacs-site/lisp/bbdb-3.2.2.2/bbdb-pgp hides c:/Users/quessev/.emacs.d/elpa/bbdb-3.2.2.2/bbdb-pgp
c:/Users/Public/emacs-site/lisp/bbdb-3.2.2.2/bbdb-mua hides c:/Users/quessev/.emacs.d/elpa/bbdb-3.2.2.2/bbdb-mua
c:/Users/Public/emacs-site/lisp/bbdb-3.2.2.2/bbdb-mu4e hides c:/Users/quessev/.emacs.d/elpa/bbdb-3.2.2.2/bbdb-mu4e
c:/Users/Public/emacs-site/lisp/bbdb-3.2.2.2/bbdb-migrate hides c:/Users/quessev/.emacs.d/elpa/bbdb-3.2.2.2/bbdb-migrate
c:/Users/Public/emacs-site/lisp/bbdb-3.2.2.2/bbdb-mhe hides c:/Users/quessev/.emacs.d/elpa/bbdb-3.2.2.2/bbdb-mhe
c:/Users/Public/emacs-site/lisp/bbdb-3.2.2.2/bbdb-message hides c:/Users/quessev/.emacs.d/elpa/bbdb-3.2.2.2/bbdb-message
c:/Users/Public/emacs-site/lisp/bbdb-3.2.2.2/bbdb-ispell hides c:/Users/quessev/.emacs.d/elpa/bbdb-3.2.2.2/bbdb-ispell
c:/Users/Public/emacs-site/lisp/bbdb-3.2.2.2/bbdb-gnus hides c:/Users/quessev/.emacs.d/elpa/bbdb-3.2.2.2/bbdb-gnus
c:/Users/Public/emacs-site/lisp/bbdb-3.2.2.2/bbdb-com hides c:/Users/quessev/.emacs.d/elpa/bbdb-3.2.2.2/bbdb-com
c:/Users/Public/emacs-site/lisp/bbdb-3.2.2.2/bbdb-anniv hides c:/Users/quessev/.emacs.d/elpa/bbdb-3.2.2.2/bbdb-anniv
c:/Users/quessev/.emacs.d/lisp/vcard-qsr/vcard hides c:/Users/quessev/.emacs.d/elpa/vcard-0.2.2/vcard
c:/Users/quessev/.emacs.d/lisp/vcard-qsr/vcard-parse hides c:/Users/quessev/.emacs.d/elpa/vcard-0.2.2/vcard-parse
c:/Users/quessev/.emacs.d/lisp/vcard-qsr/vcard-mode hides c:/Users/quessev/.emacs.d/elpa/vcard-0.2.2/vcard-mode
c:/Users/Public/emacs-site/lisp/utils/wdired hides c:/Program Files/Emacs/emacs-29.1/share/emacs/29.1/lisp/wdired
c:/Users/Public/emacs-site/lisp/utils/ls-lisp hides c:/Program Files/Emacs/emacs-29.1/share/emacs/29.1/lisp/ls-lisp
c:/Users/Public/emacs-site/lisp/utils/iimage hides c:/Program Files/Emacs/emacs-29.1/share/emacs/29.1/lisp/iimage
c:/Users/Public/emacs-site/lisp/utils/calculator hides c:/Program Files/Emacs/emacs-29.1/share/emacs/29.1/lisp/calculator
c:/Users/Public/emacs-site/lisp/utils/table hides c:/Program Files/Emacs/emacs-29.1/share/emacs/29.1/lisp/textmodes/table
c:/Users/Public/emacs-site/lisp/remember/remember hides c:/Program Files/Emacs/emacs-29.1/share/emacs/29.1/lisp/textmodes/remember
c:/Users/Public/emacs-site/lisp/csharp/csharp-mode hides c:/Program Files/Emacs/emacs-29.1/share/emacs/29.1/lisp/progmodes/csharp-mode
c:/Users/Public/emacs-site/lisp/dictionary-1.8.7/dictionary hides c:/Program Files/Emacs/emacs-29.1/share/emacs/29.1/lisp/net/dictionary
c:/Users/Public/emacs-site/lisp/utils/rlogin hides c:/Program Files/Emacs/emacs-29.1/share/emacs/29.1/lisp/obsolete/rlogin

Features:
(shadow warnings emacsbug ant-mode grep url-http url-gw url-auth
url-cache gnus-fun smerge-mode diff diff-mode kmacro shortdoc cl-print
help-fns radix-tree org-clock rfc2104 csv-mode bookmark tabify
misearch multi-isearch opascal dired-aux autorevert gnus-dired
oc-basic ol-eww eww url-queue mm-url ol-rmail ol-mhe ol-irc ol-info
ol-gnus nnselect ol-docview doc-view filenotify jka-compr image-mode
exif ol-bibtex bibtex ol-bbdb ol-w3m ol-doi org-link-doi face-remap
org-agenda edraw-org edraw-util org-element org-persist xdg org-id
org-refile avl-tree generator org-duration 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 ob-emacs-lisp ob-core
ob-eval org-cycle org-table org-keys oc org-loaddefs ol org-fold
org-fold-core org-compat org-version org-macs appt view cal-islam
holidays holiday-loaddefs cal-move gnus-draft time-stamp canlock
mailalias flow-fill mm-archive qp mule-util sort smiley gnus-cite
mail-extr textsec uni-scripts idna-mapping ucs-normalize
uni-confusable textsec-check gnus-async gnus-bcklg emms-info-libtag
emms-player-vlc emms-player-mpv emms-player-mplayer
emms-playlist-limit emms-volume emms-volume-sndioctl
emms-volume-mixerctl emms-volume-pulse emms-volume-amixer emms-i18n
emms-stream-info emms-mode-line-icon emms-playlist-sort
emms-last-played emms-playing-time emms-player-simple emms-streams
emms-show-all emms-tag-editor emms-tag-tracktag emms-mark
emms-mode-line emms-info-ogginfo emms-info-mp3info emms-info
emms-later-do emms-playlist-mode emms-source-playlist emms-source-file
locate music-list music-album emms-setup emms emms-compat gnus-ml
gnus-topic nndraft nnmh gnus-agent gnus-srvr gnus-score score-mode
nnvirtual gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime dig
nnml utf-7 gnutls nnfolder cl-extra help-mode gnus-cache gnus-sum
network-stream nsm nntp gnus-group gnus-undo gnus-start gnus-dbus dbus
gnus-cloud nnimap nnmail mail-source utf7 nnoo gnus-spec gnus-int
gnus-range gnus-win time highlight-current-line color-theme smtpmail
tumblesocks tumblesocks-view tumblesocks-compose markdown-mode
noutline outline htmlize tumblesocks-user tumblesocks-api oauth sasl
sasl-anonymous sasl-login sasl-plain hex-util hmac-sha1 shr pixel-fill
kinsoku url-file svg dom plantuml-mode xml dash graphviz-dot-mode
html2help footnote muse-odf muse-xml muse-help muse-bbcode
muse-blosxom muse-wiki muse-texinfo texnfo-upd texinfo
texinfo-loaddefs muse-latex muse-html muse-docbook muse-xml-common
cus-edit pp cus-load icons muse-publish muse-project muse-protocols
muse-regexps muse muse-nested-tags muse-mode u-vm-color
org-import-icalendar icalendar diary-lib diary-loaddefs bbdb-sc
supercite regi bbdb-migrate bbdb-snarf bbdb-message message sendmail
yank-media puny dired-explore dired-sort-menu acid dired-arc file-op
dired-x dired dired-loaddefs rfc822 mml mml-sec mm-decode mm-bodies
mm-encode mail-parse rfc2231 gmm-utils mailheader bbdb-rmail rmailsum
rmail rfc2047 rfc2045 ietf-drums bbdb-gnus bbdb-mua gnus nnheader
gnus-util mail-utils range mm-util mail-prsvr wid-edit bbdb-com pcase
crm mailabbrev find-func bbdb bbdb-site timezone tramp tramp-loaddefs
trampver tramp-integration files-x tramp-compat shell pcomplete
parse-time iso8601 time-date format-spec which idb gud easy-mmode
qproj-opascal qproj-msbuild-delphi qproj-msbuild jsee javadoc-lookup
ido jserial jswat qproj-java jdok cmake-mode thingatpt rx rst compile
text-property-search comint ansi-osc ansi-color ring tempo xml-parse
doxymacs qproj-cpp qproj-cmake qproj server dos-indent generic
generic-x cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles
cc-align cc-engine cc-vars cc-defs lunar solar cal-dst cal-tex cal-iso
cal-menu calendar cal-loaddefs epa-file epa derived epg rfc6068
epg-config ps-mule ipp cl printing ps-print ps-print-loaddefs lpr
icomplete windmove advice image-file image-converter info 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 dos-w32 ls-lisp disp-table term/w32-win w32-win w32-vars
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
w32notify w32 lcms2 multi-tty make-network-process native-compile
emacs)

Memory information:
((conses 16 1429009 194924)
 (symbols 48 57137 13)
 (strings 32 315808 25998)
 (string-bytes 1 9019315)
 (vectors 16 119641)
 (vector-slots 8 3164736 179368)
 (floats 8 1373 610)
 (intervals 56 36729 151)
 (buffers 984 87))

-- 
Pascal Quesseveur