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

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

bug#71068: 30.0.50; Incorrect xref positions for eglot-execute


From: Dmitry Gutov
Subject: bug#71068: 30.0.50; Incorrect xref positions for eglot-execute
Date: Sun, 26 May 2024 06:04:56 +0300
User-agent: Mozilla Thunderbird

Hi! Thanks for the report.

On 19/05/2024 18:55, Eshel Yaron via Bug reports for GNU Emacs, the Swiss army knife of text editors wrote:
Using xref to find the definition of eglot-execute seems to yield
imprecise definition locations:

1. emacs -Q
2. (require 'eglot)
3. M-. eglot-execute RET

This produces an*xref*  buffer that lists two definitions:

--8<---------------cut here---------------start------------->8---
.../lisp/progmodes/eglot.el
   (cl-defgeneric eglot-execute)
   (cl-defmethod eglot-execute (server action))
--8<---------------cut here---------------end--------------->8---

Following the first definition leads to the definition of
eglot-execute-command (which is different from eglot-execute, although
the former is defined right above the latter), while the second
definition leads to the top of the file.

I've (hopefully) fixed the first problem just now in commit 2a12f39ffe8.

Regarding the second one, looks like it's using a more advanced syntax that our functions haven't been taught about.

Since the method has been defined through a :method property on defgeneric, I suppose cl--generic-search-method should be taught to search for such definitions too.

The definition itself could be rewritten in a simpler fashion, though. Just using cl-defmethod (the generic is then created implicitly, and the arguments list is not repeated).





reply via email to

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