* bug#70515: 30.0.50; which-function-mode error in lua-ts-mode
@ 2024-04-22 14:39 john muhl
2024-04-22 15:29 ` john muhl
0 siblings, 1 reply; 3+ messages in thread
From: john muhl @ 2024-04-22 14:39 UTC (permalink / raw)
To: 70515
-- test.lua
local function f(x)
print(x)
end
emacs -Q test.lua
M-x which-function-mode
Error running timer ‘which-func-update’:
(error "Error in which-func-update:
(invalid-function #<treesit-node function_declaration in 1-37>)")
Patch to follow.
In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu) of 2024-04-21 built
on localhost
Repository revision: 4773ecb93193495f141e5d60c0c5ded58eaa2c98
Repository branch: master
System Description: Fedora Linux 39 (Thirty Nine)
Configured using:
'configure --without-x --without-native-compilation'
Configured features:
ACL DBUS GMP GNUTLS GPM LIBSELINUX LIBSYSTEMD LIBXML2 MODULES NOTIFY
INOTIFY PDUMPER SECCOMP SOUND SQLITE3 THREADS TREE_SITTER XIM ZLIB
Important settings:
value of $LANG: en_US.UTF-8
locale-coding-system: utf-8-unix
Major mode: Lua
Minor modes in effect:
which-function-mode: t
tooltip-mode: t
global-eldoc-mode: t
show-paren-mode: t
electric-indent-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
minibuffer-regexp-mode: t
line-number-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
dnd dired-loaddefs rfc822 mml mml-sec password-cache epa derived epg
rfc6068 epg-config gnus-util text-property-search time-date subr-x
mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils
mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr
mail-utils cus-start cus-load which-func imenu cl-seq lua-ts-mode
treesit cl-loaddefs cl-lib comint regexp-opt ansi-osc ansi-color ring
term/xterm xterm byte-opt gv bytecomp byte-compile rmc iso-transl
tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks
lisp-float-type elisp-mode tabulated-list replace newcomment text-mode
lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch
easymenu timer select 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 multi-tty
make-network-process emacs)
Memory information:
((conses 16 66424 9105) (symbols 48 7625 0) (strings 32 18124 1778)
(string-bytes 1 437334) (vectors 16 8799) (vector-slots 8 77160 4863)
(floats 8 28 1) (intervals 56 253 2) (buffers 992 11))
^ permalink raw reply [flat|nested] 3+ messages in thread
* bug#70515: 30.0.50; which-function-mode error in lua-ts-mode
2024-04-22 14:39 bug#70515: 30.0.50; which-function-mode error in lua-ts-mode john muhl
@ 2024-04-22 15:29 ` john muhl
2024-04-25 15:41 ` Eli Zaretskii
0 siblings, 1 reply; 3+ messages in thread
From: john muhl @ 2024-04-22 15:29 UTC (permalink / raw)
To: 70515
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: 0001-Fix-which-function-error-in-lua-ts-mode-bug-70515.patch --]
[-- Type: text/x-patch, Size: 2880 bytes --]
From f4d09165ab78d09e97dbf0ac9402d43de7a7c7cd Mon Sep 17 00:00:00 2001
From: john muhl <jm@pub.pink>
Date: Sat, 20 Apr 2024 21:19:27 -0500
Subject: [PATCH] Fix which-function error in lua-ts-mode (bug#70515)
* lisp/progmodes/lua-ts-mode.el (lua-ts-mode): Remove
incorrect usage of 'which-func-functions'.
* test/lisp/progmodes/lua-ts-mode-tests.el:
(lua-ts-test-which-function): Add test.
* test/lisp/progmodes/lua-ts-mode-resources/which-function.lua:
New file.
---
lisp/progmodes/lua-ts-mode.el | 5 +----
.../lua-ts-mode-resources/which-function.lua | 3 +++
test/lisp/progmodes/lua-ts-mode-tests.el | 11 +++++++++++
3 files changed, 15 insertions(+), 4 deletions(-)
create mode 100644 test/lisp/progmodes/lua-ts-mode-resources/which-function.lua
diff --git a/lisp/progmodes/lua-ts-mode.el b/lisp/progmodes/lua-ts-mode.el
index 45ea8ec9a81..06663e5bd0e 100644
--- a/lisp/progmodes/lua-ts-mode.el
+++ b/lisp/progmodes/lua-ts-mode.el
@@ -764,7 +764,7 @@ lua-ts-mode
"vararg_expression"))))
(text "comment"))))
- ;; Imenu/Outline.
+ ;; Imenu/Outline/Which-function.
(setq-local treesit-simple-imenu-settings
`(("Requires"
"\\`function_call\\'"
@@ -776,9 +776,6 @@ lua-ts-mode
lua-ts--named-function-p
nil)))
- ;; Which-function.
- (setq-local which-func-functions (treesit-defun-at-point))
-
;; Align.
(setq-local align-indent-before-aligning t)
diff --git a/test/lisp/progmodes/lua-ts-mode-resources/which-function.lua b/test/lisp/progmodes/lua-ts-mode-resources/which-function.lua
new file mode 100644
index 00000000000..621d818461c
--- /dev/null
+++ b/test/lisp/progmodes/lua-ts-mode-resources/which-function.lua
@@ -0,0 +1,3 @@
+local function f(x)
+ print(x)
+end
diff --git a/test/lisp/progmodes/lua-ts-mode-tests.el b/test/lisp/progmodes/lua-ts-mode-tests.el
index 565e6f91dbd..a7b637d18d1 100644
--- a/test/lisp/progmodes/lua-ts-mode-tests.el
+++ b/test/lisp/progmodes/lua-ts-mode-tests.el
@@ -23,6 +23,7 @@
(require 'ert-font-lock)
(require 'ert-x)
(require 'treesit)
+(require 'which-func)
(ert-deftest lua-ts-test-indentation ()
(skip-unless (treesit-ready-p 'lua))
@@ -37,6 +38,16 @@ lua-ts-test-font-lock
(let ((treesit-font-lock-level 4))
(ert-font-lock-test-file (ert-resource-file "font-lock.lua") 'lua-ts-mode)))
+(ert-deftest lua-ts-test-which-function ()
+ (skip-unless (treesit-ready-p 'lua))
+ (with-temp-buffer
+ (insert-file-contents (ert-resource-file "which-function.lua"))
+ (lua-ts-mode)
+ (which-function-mode)
+ (goto-char (point-min))
+ (should (equal "f" (which-function)))
+ (which-function-mode -1)))
+
(provide 'lua-ts-mode-tests)
;;; lua-ts-mode-tests.el ends here
--
2.41.0
[-- Attachment #2: Type: text/plain, Size: 3200 bytes --]
john muhl <jm@pub.pink> writes:
> -- test.lua
> local function f(x)
> print(x)
> end
>
> emacs -Q test.lua
> M-x which-function-mode
>
> Error running timer ‘which-func-update’:
> (error "Error in which-func-update:
> (invalid-function #<treesit-node function_declaration in 1-37>)")
>
> Patch to follow.
>
> In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu) of 2024-04-21 built
> on localhost
> Repository revision: 4773ecb93193495f141e5d60c0c5ded58eaa2c98
> Repository branch: master
> System Description: Fedora Linux 39 (Thirty Nine)
>
> Configured using:
> 'configure --without-x --without-native-compilation'
>
> Configured features:
> ACL DBUS GMP GNUTLS GPM LIBSELINUX LIBSYSTEMD LIBXML2 MODULES NOTIFY
> INOTIFY PDUMPER SECCOMP SOUND SQLITE3 THREADS TREE_SITTER XIM ZLIB
>
> Important settings:
> value of $LANG: en_US.UTF-8
> locale-coding-system: utf-8-unix
>
> Major mode: Lua
>
> Minor modes in effect:
> which-function-mode: t
> tooltip-mode: t
> global-eldoc-mode: t
> show-paren-mode: t
> electric-indent-mode: t
> menu-bar-mode: t
> file-name-shadow-mode: t
> global-font-lock-mode: t
> font-lock-mode: t
> minibuffer-regexp-mode: t
> line-number-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
> dnd dired-loaddefs rfc822 mml mml-sec password-cache epa derived epg
> rfc6068 epg-config gnus-util text-property-search time-date subr-x
> mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils
> mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr
> mail-utils cus-start cus-load which-func imenu cl-seq lua-ts-mode
> treesit cl-loaddefs cl-lib comint regexp-opt ansi-osc ansi-color ring
> term/xterm xterm byte-opt gv bytecomp byte-compile rmc iso-transl
> tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks
> lisp-float-type elisp-mode tabulated-list replace newcomment text-mode
> lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch
> easymenu timer select 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 multi-tty
> make-network-process emacs)
>
> Memory information:
> ((conses 16 66424 9105) (symbols 48 7625 0) (strings 32 18124 1778)
> (string-bytes 1 437334) (vectors 16 8799) (vector-slots 8 77160 4863)
> (floats 8 28 1) (intervals 56 253 2) (buffers 992 11))
^ permalink raw reply related [flat|nested] 3+ messages in thread
* bug#70515: 30.0.50; which-function-mode error in lua-ts-mode
2024-04-22 15:29 ` john muhl
@ 2024-04-25 15:41 ` Eli Zaretskii
0 siblings, 0 replies; 3+ messages in thread
From: Eli Zaretskii @ 2024-04-25 15:41 UTC (permalink / raw)
To: john muhl; +Cc: 70515-done
> From: john muhl <jm@pub.pink>
> Date: Mon, 22 Apr 2024 10:29:47 -0500
>
> >From f4d09165ab78d09e97dbf0ac9402d43de7a7c7cd Mon Sep 17 00:00:00 2001
> From: john muhl <jm@pub.pink>
> Date: Sat, 20 Apr 2024 21:19:27 -0500
> Subject: [PATCH] Fix which-function error in lua-ts-mode (bug#70515)
Thanks, installed on the master branch, and closing the bug.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-04-25 15:41 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-22 14:39 bug#70515: 30.0.50; which-function-mode error in lua-ts-mode john muhl
2024-04-22 15:29 ` john muhl
2024-04-25 15:41 ` Eli Zaretskii
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).