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.
View this message in rfc822 format
From: Vladimir Kazanov <vekazanov <at> gmail.com> To: "Basil L. Contovounesios" <basil <at> contovou.net> Cc: 76372 <at> debbugs.gnu.org Subject: bug#76372: 31.0.50; False () in ert-font-lock macro signatures Date: Tue, 18 Feb 2025 19:41:08 +0000
Hi Basil, Thanks for taking a look at ert-font-lock! I am on vacation right now so only have time for a brief review of the patch. So here are a couple of comments/questions for the patch: - (when (not (listp actual-face)) - (setq actual-face (list actual-face))) - (when (not (listp expected-face)) - (setq expected-face (list expected-face))) + (setq actual-face (ensure-list actual-face)) + (setq expected-face (ensure-list expected-face)) This is cool! - (insert ,str) (,mode) + (insert ,str) Not saying this is wrong but looks like something that might change things subtly. Do tests pass? > - (skip-unless (featurep 'php-mode)) > + (skip-unless (fboundp 'php-mode)) What difference does it make? featurep vs fboundp? > - "Test reading correct assertions from a file" > + "Test reading correct assertions from a file" Similar to other docstrings, this asks for a period in the end. Otherwise, great to see my rusty Elisp and non-native English cleaned up a bit. Thanks Vlad On Mon, 17 Feb 2025 at 20:38, Basil L. Contovounesios <basil <at> contovou.net> wrote: > > 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 > > > 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)) -- Regards, Vladimir Kazanov
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.