[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#60830: 30.0.50; The *Compilation* buffer does not recognize Lua erro
From: |
Rudolf Adamkovič |
Subject: |
bug#60830: 30.0.50; The *Compilation* buffer does not recognize Lua errors |
Date: |
Thu, 12 Oct 2023 10:17:10 +0200 |
Rudolf Adamkovič <salutis@me.com> writes:
> ...
And I forgot to attach the latest version of the patch. :)
Rudy
>From 715e9c353de17f9462842943e6000678ca8fab3a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rudolf=20Adamkovi=C4=8D?= <salutis@me.com>
Date: Tue, 3 Oct 2023 09:07:40 +0200
Subject: [PATCH] Make the Compilation mode recognize Lua errors
Emacs comes with built-in support for the Lua programming language in
the form of the Lua mode and now also the Lua Tree-sitter mode. This
patch further improves Lua support in Emacs by making the Compilation
mode recognize Lua errors and stack traces.
Reported as bug#60830.
* etc/compilation.txt (Lua): Add an example of a Lua error message
with a stack trace.
* lisp/progmodes/compile.el (compilation-error-regexp-alist-alist):
Add regexps to aid Lua development, namely the 'lua' regexp that
matches Lua errors and the 'lua-stack' regexp that matches Lua stack
frames.
* test/lisp/progmodes/compile-tests.el (compile-tests--test-regexps-data):
(compile-test-error-regexps): Test the new 'lua' and 'lua-stack'
regexps added to the 'compilation-error-regexp-alist-alist'.
---
etc/NEWS | 5 +++++
etc/compilation.txt | 13 +++++++++++++
lisp/progmodes/compile.el | 7 +++++++
test/lisp/progmodes/compile-tests.el | 22 ++++++++++++++++++++--
4 files changed, 45 insertions(+), 2 deletions(-)
diff --git a/etc/NEWS b/etc/NEWS
index 8b2bcaaf01d..d0df4df2b2e 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -319,6 +319,11 @@ This is because it partly acts by modifying other rules
which may
occasionally be surprising. It can be re-enabled by adding 'omake' to
'compilation-error-regexp-alist'.
+*** Lua errors and stack traces are now recognized.
+The compilation mode now recognizes Lua language errors and stack
+traces. Every Lua error is recognized as a compilation error, and
+every Lua stack frame is recognized as a compilation info.
+
** VC
---
diff --git a/etc/compilation.txt b/etc/compilation.txt
index 5f6ecb09cc2..fa43c89879a 100644
--- a/etc/compilation.txt
+++ b/etc/compilation.txt
@@ -344,6 +344,19 @@ In /home/janneke/vc/guile/examples/gud-break.scm:
1033: 0 [stderr "~a:hello world\n" (# # #)]
+* Lua
+
+/usr/bin/lua: database.lua:31: assertion failed!
+stack traceback:
+ [C]: in function 'assert'
+ database.lua:31: in field 'statement'
+ database.lua:42: in field 'table'
+ database.lua:55: in field 'row'
+ database.lua:63: in field 'value'
+ io.lua: in main chunk
+ [C]: in ?
+
+
* Lucid Compiler, lcc 3.x
symbol: lcc
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index 9e441dbfcf7..9a2f633e3ec 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -362,6 +362,13 @@ compilation-error-regexp-alist-alist
(ruby-Test::Unit
"^ [[ ]?\\([^ (].*\\):\\([1-9][0-9]*\\)\\(\\]\\)?:in " 1 2)
+ (lua
+ "^[^:\n\t]+: \\([^:\n\t]+\\):\\([0-9]+\\): .+\nstack traceback:\n\t"
+ 1 2 nil 2 1)
+ (lua-stack
+ "^\t\\(?:\\[C\\]:\\|\\([^:\n\t]+\\):\\(?:\\([0-9]+\\):\\)?\\) in "
+ 1 2 nil 0 1)
+
(gmake
;; Set GNU make error messages as INFO level.
;; It starts with the name of the make program which is variable,
diff --git a/test/lisp/progmodes/compile-tests.el
b/test/lisp/progmodes/compile-tests.el
index d497644c389..2e917d3b614 100644
--- a/test/lisp/progmodes/compile-tests.el
+++ b/test/lisp/progmodes/compile-tests.el
@@ -206,6 +206,24 @@ compile-tests--test-regexps-data
1 0 31 "/usr/include/c++/3.3/backward/iostream.h")
(gcc-include " from test_clt.cc:1:"
1 nil 1 "test_clt.cc")
+ ;; Lua
+ (lua "lua: database.lua:10: assertion failed!\nstack traceback:\n\t"
+ 6 nil 10 "database.lua")
+ (lua "lua 5.4: database 2.lua:10: assertion failed!\nstack traceback:\n\t"
+ 10 nil 10 "database 2.lua")
+ (lua "/usr/local/bin/lua: core/database.lua:20: assertion failed!\nstack
traceback:\n\t"
+ 21 nil 20 "core/database.lua")
+ (lua-stack " database.lua: in field 'statement'"
+ 2 nil nil "database.lua" 0)
+ (lua-stack " database.lua:10: in field 'statement'"
+ 2 nil 10 "database.lua" 0)
+ (lua-stack " core/database.lua:20: in field 'statement'"
+ 2 nil 20 "core/database.lua" 0)
+ (lua-stack " database 2.lua: in field 'statement'"
+ 2 nil nil "database 2.lua" 0)
+ ;; TODO Test the negative case:
+ ;; (lua-stack " [C]: in field 'statement'"
+ ;; nil nil nil nil nil)
;; gmake
(gmake "make: *** [Makefile:20: all] Error 2" 12 nil 20 "Makefile" 0)
(gmake "make[4]: *** [sub/make.mk:19: all] Error 127" 15 nil 19
@@ -507,9 +525,9 @@ compile-test-error-regexps
1 15 5 "alpha.c")))
(compile--test-error-line test))
- (should (eq compilation-num-errors-found 100))
+ (should (eq compilation-num-errors-found 103))
(should (eq compilation-num-warnings-found 35))
- (should (eq compilation-num-infos-found 28)))))
+ (should (eq compilation-num-infos-found 32)))))
(ert-deftest compile-test-grep-regexps ()
"Test the `grep-regexp-alist' regexps.
--
2.39.3 (Apple Git-145)
--
"Great minds discuss ideas; average minds discuss events; small minds discuss
people."
--- Anna Eleanor Roosevelt (1884-1962)
Rudolf Adamkovič <salutis@me.com> [he/him]
Studenohorská 25
84103 Bratislava
Slovakia
- bug#60830: 30.0.50; The *Compilation* buffer does not recognize Lua errors, (continued)
- bug#60830: 30.0.50; The *Compilation* buffer does not recognize Lua errors, Stefan Monnier, 2023/10/06
- bug#60830: 30.0.50; The *Compilation* buffer does not recognize Lua errors, Mattias Engdegård, 2023/10/06
- bug#60830: 30.0.50; The *Compilation* buffer does not recognize Lua errors, Stefan Monnier, 2023/10/06
- bug#60830: 30.0.50; The *Compilation* buffer does not recognize Lua errors, Mattias Engdegård, 2023/10/07
- bug#60830: 30.0.50; The *Compilation* buffer does not recognize Lua errors, Stefan Monnier, 2023/10/07
- bug#60830: 30.0.50; The *Compilation* buffer does not recognize Lua errors, Mattias Engdegård, 2023/10/08
- bug#60830: 30.0.50; The *Compilation* buffer does not recognize Lua errors, Mattias Engdegård, 2023/10/08
- bug#60830: 30.0.50; The *Compilation* buffer does not recognize Lua errors, Rudolf Adamkovič, 2023/10/07
- bug#60830: 30.0.50; The *Compilation* buffer does not recognize Lua errors, Mattias Engdegård, 2023/10/08
- bug#60830: 30.0.50; The *Compilation* buffer does not recognize Lua errors, Rudolf Adamkovič, 2023/10/12
- bug#60830: 30.0.50; The *Compilation* buffer does not recognize Lua errors,
Rudolf Adamkovič <=
- bug#60830: 30.0.50; The *Compilation* buffer does not recognize Lua errors, Mattias Engdegård, 2023/10/12
- bug#60830: 30.0.50; The *Compilation* buffer does not recognize Lua errors, Stefan Monnier, 2023/10/08
- bug#60830: 30.0.50; The *Compilation* buffer does not recognize Lua errors, Rudolf Adamkovič, 2023/10/12