unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* 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).