[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#60355: 29.0.60; Tree sitter incorrectly handles of PRED for treesit-
From: |
Yuan Fu |
Subject: |
bug#60355: 29.0.60; Tree sitter incorrectly handles of PRED for treesit-defun-type-regexp |
Date: |
Tue, 27 Dec 2022 17:47:35 -0800 |
Wilhelm H Kirschbaum <wkirschbaum@gmail.com> writes:
> When `treesit-defun-type-regexp` is set with a cons cell (regexp .
> some-pred)
> the following case does not get handled as expected when calling
> (end-of-defun):
>
> ```elixir
> defmodule Example do
> def foo() do ; regexp match, pred match
> end
>
> ;; <point here>
> @impl true ; regexp match, pred does not match
> def bar() do ; regexp match, pred match
> end
> ;; <should jump to here>
>
> def baz() do
> end
> end
> ;; <jumps to point here>
> ```
Thank you very much! The root cause is actually another problem, but
anyway it is fixed now.
May I also suggest you to use this function for the predicate:
(defun elixir-ts-mode--capture-defun (node)
;; NODE should be a ‘call’ node.
(member (treesit-node-text
(treesit-node-child-by-field-name node "target"))
elixir-ts-mode--definition-keywords))
This should be more accurate than the current one, and is IMO simpler
too.
Yuan