GNU bug report logs - #76372
31.0.50; False () in ert-font-lock macro signatures

Previous Next

Package: emacs;

Reported by: "Basil L. Contovounesios" <basil <at> contovou.net>

Date: Mon, 17 Feb 2025 20:38:02 UTC

Severity: normal

Tags: patch

Found in versions 31.0.50, 30.0.93

Fixed in version 31.1

Done: "Basil L. Contovounesios" <basil <at> contovou.net>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: "Basil L. Contovounesios" <basil <at> contovou.net>
To: 76372 <at> debbugs.gnu.org
Cc: Vladimir Kazanov <vekazanov <at> gmail.com>
Subject: bug#76372: 31.0.50; False () in ert-font-lock macro signatures
Date: Mon, 17 Feb 2025 21:37:06 +0100
[Message part 1 (text/plain, inline)]
0. emacs -Q
1. C-h f ert-font-lock-deftest RET

*Help* now reports the macro's calling convention as:

  (ert-font-lock-deftest NAME () [DOCSTRING] ...)

but the second () argument is not actually supported by the macro, whose
arglist reads:

  (name &rest docstring-keys-mode-and-str)

Here, ert-font-lock--parse-macro-args expects
docstring-keys-mode-and-str to start with an (optional) string,
not the empty arglist '().

The symptom of this mismatch is that calls to ert-font-lock-deftest are
misindented (malindented? :) and misfontified.  For example, in
ert-font-lock-tests.el:

  (ert-font-lock-deftest test-macro-test--correct-highlighting
      emacs-lisp-mode
    "
  (defun fun ())
  ;; ^ font-lock-keyword-face
  ;;      ^ font-lock-function-name-face")

Here, the string literal has font-lock-doc-face instead of
font-lock-string-face.

  (ert-font-lock-deftest test-macro-test--docstring
      "A test with a docstring."
    emacs-lisp-mode
    "
  (defun fun ())
  ;; ^ font-lock-keyword-face"
    )

Here, both strings have font-lock-string-face, whereas the first should
have font-lock-doc-face.

Finally, if a test actually followed ert-font-lock-deftest's docstring
in including an empty arglist (), then ert-describe-test would claim
that it is not documented.

The attached patch tries to address these issues.
WDYT?

Thanks,
-- 
Basil

[0001-Fix-ert-font-lock-macro-signatures.patch (text/x-diff, attachment)]
[Message part 3 (text/plain, inline)]
In GNU Emacs 31.0.50 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo
 version 1.18.2, Xaw3d scroll bars) of 2025-02-16 built on tais
Repository revision: fc189cb83cf7284344a737e75b3ee56487b1c386
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12101015
System Description: Debian GNU/Linux trixie/sid

Configured using:
 'configure 'CFLAGS=-Og -ggdb3' -C --prefix=/home/blc/.local
 --enable-checking=structs --without-native-compilation
 --with-file-notification --with-x-toolkit=lucid --with-x'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NOTIFY
INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XAW3D XDBE XIM XINERAMA XINPUT2
XPM XRANDR LUCID ZLIB

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

Major mode: Lisp Interaction

Minor modes in effect:
  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
  indent-tabs-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 mailcap yank-media puny dired
dired-loaddefs rfc822 mml mml-sec password-cache epa derived epg rfc6068
epg-config gnus-util time-date mm-decode mm-bodies mm-encode mail-parse
rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045
ietf-drums mm-util mail-prsvr mail-utils cl-extra shortdoc
text-property-search comp-common rx ert-font-lock pcase ert-x subr-x ert
map pp ewoc debug backtrace find-func thingatpt help-fns byte-opt gv
bytecomp byte-compile radix-tree help-mode 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 touch-screen 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 cairo x-toolkit xinput2 x multi-tty move-toolbar
make-network-process tty-child-frames emacs)

Memory information:
((conses 16 75191 9165) (symbols 48 7566 0) (strings 32 22214 1377)
 (string-bytes 1 522717) (vectors 16 13949)
 (vector-slots 8 148704 7756) (floats 8 87 2) (intervals 56 318 7)
 (buffers 992 11))

This bug report was last modified 128 days ago.

Previous Next


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