bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#64283: 29.0.91; js-mode's mark-defun does not work correctly when fu


From: Eli Zaretskii
Subject: bug#64283: 29.0.91; js-mode's mark-defun does not work correctly when functions have a comment on top
Date: Tue, 27 Jun 2023 14:01:21 +0300

> From: Yuan Fu <casouri@gmail.com>
> Date: Mon, 26 Jun 2023 18:42:41 -0700
> Cc: Eli Zaretskii <eliz@gnu.org>,
>  Dmitry Gutov <dmitry@gutov.dev>,
>  64283@debbugs.gnu.org
> 
> > 
> > What I see is that, after 4489450f37deafb013b1f0fc00c89f0973fda14a,
> > defun movement may be subtly broken if beginning-of-defun-function does
> > not return non-nil when it found the beginning of a defun.  One of the
> > affected modes is js-mode, but who knows if there are more out there.
> > 
> > We could either revert 4489450f37deafb013b1f0fc00c89f0973fda14a, because
> > of the incompatibilities it may cause (Yuan, what is the bug it tries to
> > fix?), or maybe adjust js-mode so that it follows the documentation of
> > beginning-of-defun-function and returns non-nil when it found the
> > beginning of a defun.  I've attached a patch that follows this second
> > approach, with some unit tests.  It fixes the bug on my side.
> > 
> > <0001-Make-js-beginning-of-defun-return-non-nil-on-success.patch>
> 
> The original problem that I tried to solve is that sometimes 
> end-of-defun-function was called when point isn’t at the beginning of a 
> defun, contrary to what the documentation claims. 
> 
> I first find out about it when writing defun movement functions for 
> tree-sitter, but if you revert the commit now tree-sitter defun functions 
> wouldn’t break: they have change quite a bit since then and 
> treesit-end-of-defun don’t need to be called at the beginning of the defun 
> anymore.

Thanks.

Do you (or anyone else) see a problem with the alternative proposed by
Daniel?  If not, I'd prefer not to revert at this stage, but instead
to apply the simple fix Daniel suggested.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]