branch: elpa/lua-mode
commit d166d5e5a8ef8e795cd09188cc04a8d3682e7d1e
Merge: 0a1e915 0a986f7
Author: xristos <[email protected]>
Commit: xristos <[email protected]>
Merge remote-tracking branch 'upstream/master'
---
Makefile | 1 +
lua-mode.el | 3 ++-
test/indentation-test.el | 50 +++++++++++++++++++++++++++++++++++++++++++-----
test/inferior-test.el | 27 ++++++++++++++++++++++++++
test/test-helper.el | 2 ++
5 files changed, 77 insertions(+), 6 deletions(-)
diff --git a/Makefile b/Makefile
index 2c946fb..48c9385 100644
--- a/Makefile
+++ b/Makefile
@@ -15,6 +15,7 @@ TESTS += test/electric-mode-test.el
TESTS += test/indentation-test.el
TESTS += test/strings-and-comments-test.el
TESTS += test/generic-test.el
+TESTS += test/inferior-test.el
default:
@echo version is $(VERSION)
diff --git a/lua-mode.el b/lua-mode.el
index cac66e0..31dca83 100644
--- a/lua-mode.el
+++ b/lua-mode.el
@@ -651,7 +651,8 @@ Groups 6-9 can be used in any of argument regexps."
(defvar lua-sexp-alist '(("then" . "end")
("function" . "end")
- ("do" . "end")))
+ ("do" . "end")
+ ("repeat" . "until")))
(defvar lua-mode-abbrev-table nil
"Abbreviation table used in lua-mode buffers.")
diff --git a/test/indentation-test.el b/test/indentation-test.el
index 2ccfe34..bfd5b31 100644
--- a/test/indentation-test.el
+++ b/test/indentation-test.el
@@ -115,19 +115,19 @@ this_should_be_unindented_three = etc"))
(ert-deftest lua-indentation-dot-and-colon-continuation ()
(should-lua-indent "\
-foo
+foo123
.bar:baz(xyz)")
(should-lua-indent "\
-foo.
+foo123.
bar:baz(xyz)")
(should-lua-indent "\
-foo.bar
+foo123.bar
:baz(xyz)")
(should-lua-indent "\
-foo.bar:
+foo123.bar:
baz(xyz)")
(should-lua-indent "\
-foo.bar
+foo123.bar
.baz
.qux
:quux(xyz)"))
@@ -146,6 +146,46 @@ a = foo
BINOP bar" 'fixedcase)))))
+(ert-deftest lua-indentation-ellipsis ()
+ (should-lua-indent "\
+function x(...)
+ a, b = 1, ...
+ return b
+end"))
+
+
+(ert-deftest lua-indentation-unop-continuation ()
+ :expected-result :failed
+ (should-lua-indent "\
+foo = bar
+ -#some_str")
+
+ (cl-dolist (unop '("-" "#" "not "))
+ (should-lua-indent (replace-regexp-in-string "UNOP" unop "\
+foobar(qux,
+ UNOPquux)" 'fixedcase))
+ (should-lua-indent (replace-regexp-in-string "UNOP" unop "\
+foobar(qux, xyzzy
+ UNOPquux)" 'fixedcase))
+ (should-lua-indent (replace-regexp-in-string "UNOP" unop "\
+foobar(
+ UNOPquux)" 'fixedcase))
+ (should-lua-indent (replace-regexp-in-string "UNOP" unop "\
+x = {qux,
+ UNOPquux}" 'fixedcase))
+ (should-lua-indent (replace-regexp-in-string "UNOP" unop "\
+x = {qux;
+ UNOPquux}" 'fixedcase))
+ (should-lua-indent (replace-regexp-in-string "UNOP" unop "\
+x = {qux, xyzzy
+ UNOPquux}" 'fixedcase))
+ (should-lua-indent (replace-regexp-in-string "UNOP" unop "\
+x = {
+ UNOPquux
+}" 'fixedcase))))
+
+
+
(ert-deftest lua-indentation-return-continuation ()
(should-lua-indent "\
return
diff --git a/test/inferior-test.el b/test/inferior-test.el
new file mode 100644
index 0000000..34fbdbf
--- /dev/null
+++ b/test/inferior-test.el
@@ -0,0 +1,27 @@
+;; lua-mode tests for inferior process handling
+
+(load (concat (file-name-directory (or load-file-name (buffer-file-name)
+ default-directory))
+ "test-helper.el") nil 'nomessage 'nosuffix)
+
+
+(ert-deftest lua-hide-process-buffer-doesnt-switch-current-window ()
+ :expected-result :failed
+
+ (with-lua-buffer
+ (let ((cur-buf (current-buffer)))
+ (should (get-buffer-window cur-buf))
+
+ (lua-hide-process-buffer)
+ (should (get-buffer-window cur-buf)))))
+
+(ert-deftest lua-hide-process-buffer-doesnt-signal-on-killed-process ()
+ :expected-result :failed
+ (with-lua-buffer
+ (let ((cur-buf (current-buffer)))
+ (lua-start-process)
+ (lua-kill-process)
+
+ (lua-hide-process-buffer)
+ (should (get-buffer-window cur-buf)))))
+
diff --git a/test/test-helper.el b/test/test-helper.el
index 6c1a87e..3c407ba 100644
--- a/test/test-helper.el
+++ b/test/test-helper.el
@@ -59,6 +59,8 @@ This is a mere typing/reading aid for lua-mode's font-lock
tests."
(defmacro with-lua-buffer (&rest body)
`(with-temp-buffer
+ (set (make-local-variable 'lua-process) nil)
+ (set (make-local-variable 'lua-process-buffer) nil)
(switch-to-buffer (current-buffer))
(lua-mode)
(font-lock-fontify-buffer)