[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/lua-mode 9e200e8 247/468: Fix font-locking of functions wi
From: |
Philip Kaludercic |
Subject: |
[nongnu] elpa/lua-mode 9e200e8 247/468: Fix font-locking of functions with underscores (issue #63) |
Date: |
Thu, 5 Aug 2021 04:58:46 -0400 (EDT) |
branch: elpa/lua-mode
commit 9e200e8930b492506c1e1c5784b839dc69cebeb7
Author: immerrr <immerrr+lua@gmail.com>
Commit: immerrr <immerrr+lua@gmail.com>
Fix font-locking of functions with underscores (issue #63)
---
ert-tests/test-defun-font-lock.el | 17 +++++++++++++++++
lua-mode.el | 10 ++++++----
2 files changed, 23 insertions(+), 4 deletions(-)
diff --git a/ert-tests/test-defun-font-lock.el
b/ert-tests/test-defun-font-lock.el
index d41acf1..125ebf7 100644
--- a/ert-tests/test-defun-font-lock.el
+++ b/ert-tests/test-defun-font-lock.el
@@ -60,3 +60,20 @@ end"
("local" keyword "function" keyword "foo" function-name)
nil
("end" keyword))))
+
+(ert-deftest lua-funcnames-with-underscore ()
+ (should-lua-font-lock-equal
+ ;; Check all defun variants, check embedded defuns
+ "\
+function foo()
+ function bar_bar() end
+ local function baz_baz() end
+ qux_qux = function() end
+ local quux_quux = function() end
+end"
+ '(("function" keyword "foo" function-name)
+ ("function" keyword "bar_bar" function-name "end" keyword)
+ ("local" keyword "function" keyword "baz_baz" function-name "end" keyword)
+ ("qux_qux" function-name "function" keyword "end" keyword)
+ ("local" keyword "quux_quux" function-name "function" keyword "end"
keyword)
+ ("end" keyword))) )
diff --git a/lua-mode.el b/lua-mode.el
index a1c008a..5001801 100644
--- a/lua-mode.el
+++ b/lua-mode.el
@@ -144,7 +144,7 @@ element is itself expanded with `lua-rx-to-string'. "
(let ((name (car form))
(form-definition (cdr form)))
(when (and (listp form-definition) (eq ':rx (car form-definition)))
- (setcdr form (lua-rx-to-string (cadr form-definition) t)))
+ (setcdr form (lua-rx-to-string (cadr form-definition) 'nogroup)))
(push form lua-rx-constituents)))
(defun lua--rx-symbol (form)
@@ -169,8 +169,10 @@ element is itself expanded with `lua-rx-to-string'. "
:rx (seq lua-name (* ws "." ws lua-name)
(opt ws ":" ws lua-name)))
(lua-funcheader
- :rx (or (seq (symbol "function") ws (group-n 1 lua-funcname))
- (seq (group-n 1 lua-funcname) ws "=" ws (symbol
"function"))))
+ ;; Outer (seq ...) is here to shy-group the definition
+ :rx (seq (or (seq (symbol "function") ws (group-n 1 lua-funcname))
+ (seq (group-n 1 lua-funcname) ws "=" ws
+ (symbol "function")))))
(lua-number
:rx (seq (or (seq (+ digit) (opt ".") (* digit))
(seq (* digit) (opt ".") (+ digit)))
@@ -619,7 +621,7 @@ Groups 6-9 can be used in any of argument regexps."
((lambda (end)
(re-search-forward
- (rx point (* blank) (regexp ,lua-local-defun-regexp)) end t))
+ (lua-rx point ws lua-funcheader (* nonl)) end t))
nil nil
(1 font-lock-function-name-face nil noerror))
- [nongnu] elpa/lua-mode 83ec53d 430/468: `lua-funcname-at-point': be more strict, (continued)
- [nongnu] elpa/lua-mode 83ec53d 430/468: `lua-funcname-at-point': be more strict, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode 70b9384 448/468: Don't evaluate lua-is-continuing-statement-p-1 twice, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode 350acce 450/468: Don't do lua-backward-up-list calculation for overrides if not necessary, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode 3e89784 454/468: Fix test suite names, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode af274e4 455/468: Merge pull request #184 from immerrr/fix-and-optimize-finding-matching-blocks, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode d81c700 466/468: Bump version tag, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode b9a476c 467/468: Merge pull request #194 from phikal/patch-1, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode 28155ba 241/468: Update README.md, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode 45a881d 243/468: lua-search-documentation: fix 'foo.bar' lookups broken when making '.' punctuation, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode f8a41b8 246/468: Fix cl-lib dependency for Emacs23 tests, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode 9e200e8 247/468: Fix font-locking of functions with underscores (issue #63),
Philip Kaludercic <=
- [nongnu] elpa/lua-mode bbab5a6 253/468: Don't anchor arglist continuation to block openers, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode 9d86a22 254/468: Fix indentation error raised if 'else' is on the same line as 'if', Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode 2ad2ac8 256/468: lua-imenu-generic-expression add support for local function, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode 8ff3427 257/468: Merge pull request #65 from guoxx/master, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode 78f0e09 260/468: Make sure nested token searches begin from open-token positions, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode 2cdfda7 264/468: Add inferior-test.el with some basic (failing) tests, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode d166d5e 267/468: Merge remote-tracking branch 'upstream/master', Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode d52e291 270/468: Don't fontify "stdin:N:" stacktrace entries in REPL buffer, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode ec1b634 271/468: Bump NEWS, Philip Kaludercic, 2021/08/05
- [nongnu] elpa/lua-mode d4ee03e 278/468: Use syntax-propertize-function if it is available, Philip Kaludercic, 2021/08/05