Subject: bug#79309: closed (Re: bug#79309: lua-mode: minor problems and suggestions)

From: [email-masked] (GNU bug Tracking System)
Date: Wed, 27 Aug 2025 08:17:02 +0000

Your bug report

#79309: lua-mode: minor problems and suggestions

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].

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

Subject: Re: bug#79309: lua-mode: minor problems and suggestions
From: Mattias Engdegård <[email-masked]>
To: john muhl <[email-masked]>
Cc: [email-masked]
Date: Wed, 27 Aug 2025 10:15:50 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

27 aug. 2025 kl. 05.35 skrev john muhl <[email-masked]>:

> Thanks for the review. Attached patch fixes these and a few other
> little things.

Looks good, thank you! Pushing to master and closing bug.

Subject: lua-mode: minor problems and suggestions
From: Mattias Engdegård <[email-masked]>
To: Emacs Bug Report <[email-masked]>
Cc: john muhl <[email-masked]>, Juergen Hoetzel <[email-masked]>
Date: Mon, 25 Aug 2025 16:52:59 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Some observations about the recently added lua-mode.el:

 394   "A regexp that matches Lua builtin functions & variables.
 395 
 396 This is a compilation of 5.1, 5.2 and 5.3 builtins taken from the
 397 index of respective Lua reference manuals.")

Clearly meant as a doc string. Bracket error?

1266            (or

This `or` has only a single operand. Simple oversight or indication of something worse?

1270                (save-excursion
1271                  (and (goto-char prev-line)
1272                       ;; Check last token of previous nonblank line
1273                       (lua-last-token-continues-p)))))

`goto-char` never returns nil, but its presence as a condition here suggest that the author may have thought otherwise. (Line 996 is similar.)

2099         for type = (if (string-match-p "\\`(E" msg) :error :warning)

A regexp is overkill here; `string-prefix-p` is simpler.

1821       (while (re-search-forward "[\"'\\\t\\\n]" nil t)

This regexp is a bit muddled; too many backslashes here.
You could even rewrite the whole function using `replace-regexp-in-string`, maybe

  (concat "'"
          (replace-regexp-in-string
           (rx (or ?\" ?' ?\t ?\n ?\\))
           (lambda (s)
             (cdr (assq (aref s 0) '((?\" . "\\\"")
                                     (?\\ . "\\\\")
                                     (?\n . "\\n")
                                     (?\t . "\\t")
                                     (?'  . "\\'")))))
           str t t)
          "'"))

without any need for a temporary buffer.