GNU bug report logs - #61412
[PATCH] Add inlay hints to eglot

Previous Next

Package: emacs;

Reported by: Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>

Date: Sat, 11 Feb 2023 08:41:01 UTC

Severity: normal

Tags: patch

Merged with 61066

Done: João Távora <joaotavora <at> gmail.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 61412 in the body.
You can then email your comments to 61412 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#61412; Package emacs. (Sat, 11 Feb 2023 08:41:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sat, 11 Feb 2023 08:41:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Cc: Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>
Subject: [PATCH] Add inlay hints to eglot
Date: Sat, 11 Feb 2023 13:43:36 +0530
Hello all, I have improved upon the patch from bug#61066.

From the original email:
> - I can't figure out a way to show the hints on a document without causing lags or timeouts from the lsp server
This might have been because they were sending an asynchronous request, waiting
for the response, collecting the hints and displaying them. I have instead used
`jsonrpc-async-request` with a handler function which should remedy this issue.
I have tried this with rust-analyzer and faced no lags.

The original patch also checked the wrong condition (`cond (eglot--managed-mode`)
in `eglot-inlay-mode` and had a superfluous `(run-hooks 'eglot-managed-mode-hook)`
(presumably copy-pasted from `define-minor-mode eglot--managed-mode`), I have
fixed that.

From a reply to the original email:
> AFAIU, inlay hints provide information of the same kind as ElDoc and
> in similar manner from the display and UX POV.  So I think this
> feature should work via ElDoc, not as a separate from-the-scratch
> implementation.
This can't be done via ElDoc because the purpose of inlay hints is to display
variable types and parameter names without moving the cursor to the location.
One can already see this information if they move their cursor to the variable
or function and wait for the "hover" - inlay hints were added to the spec after
this which (IMHO) clearly means something like overlays should be used.

A couple of issues at present:
1. I have not implemented "complex" hints (whose `label` is an array of
`InlayHintLabelPart` instead of a string) because I don't know what to do when
there are multiple labels at the same location.
rust-analyzer uses these hints to show a clickable link at the end of a function
block, which points to the beginning of the function.

2. I need to save the buffer or disable and re-enable `eglot-inlay-mode` to
get hints for the first time after opening a file, even though I call `eglot--update-hints`
once in `eglot-inlay-mode`.

Regards,
Chinmay Dalal
---
 lisp/progmodes/eglot.el | 70 ++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 69 insertions(+), 1 deletion(-)

diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el
index 6caf589..0d5e63e 100644
--- a/lisp/progmodes/eglot.el
+++ b/lisp/progmodes/eglot.el
@@ -404,6 +404,10 @@ This can be useful when using docker to run a language server.")
 (when (assoc 'flex completion-styles-alist)
   (add-to-list 'completion-category-defaults '(eglot (styles flex basic))))
 
+(defcustom eglot-inlay-hints t
+  "If non-nil, enable inlay hints."
+  :type 'boolean)
+
 
 ;;; Constants
 ;;;
@@ -1624,7 +1628,8 @@ under cursor."
           (const :tag "Highlight links in document" :documentLinkProvider)
           (const :tag "Decorate color references" :colorProvider)
           (const :tag "Fold regions of buffer" :foldingRangeProvider)
-          (const :tag "Execute custom commands" :executeCommandProvider)))
+          (const :tag "Execute custom commands" :executeCommandProvider)
+          (const :tag "Inlay hints" :inlayHintProvider)))
 
 (defun eglot--server-capable (&rest feats)
   "Determine if current server is capable of FEATS."
@@ -1845,6 +1850,8 @@ If it is activated, also signal textDocument/didOpen."
     (when (and buffer-file-name (eglot-current-server))
       (setq eglot--diagnostics nil)
       (eglot--managed-mode)
+      (unless (not eglot-inlay-hints)
+        (eglot-inlay-mode))
       (eglot--signal-textDocument/didOpen))))
 
 (add-hook 'find-file-hook 'eglot--maybe-activate-editing-mode)
@@ -3456,6 +3463,67 @@ If NOERROR, return predicate, else erroring function."
       (revert-buffer)
       (pop-to-buffer (current-buffer)))))
 
+(defface eglot-inlay-hint
+  '((t (:height 0.8 :inherit shadow)))
+  "Face used for inlay hint overlays.")
+
+(define-minor-mode eglot-inlay-mode
+  "Mode for displaying inlay hints."
+  :lighter " inlay"
+  (if eglot-inlay-mode
+      (progn
+        (add-hook 'after-save-hook 'eglot--update-hints 0 t)
+        (eglot--update-hints))
+      (progn
+        (remove-hook 'after-save-hook 'eglot--update-hints t)
+        (eglot--remove-hints))))
+
+(defun eglot--inlay-handler (buffer hints)
+  "Apply vector of inlay hints HINTS on buffer BUFFER."
+  (seq-doseq (hint hints)
+    (let* ((position (plist-get hint :position))
+           (line (plist-get position :line))
+           (character (plist-get position :character))
+           (label (plist-get hint :label)))
+      (when (stringp label)
+        (with-current-buffer buffer
+          (eglot--widening
+            (goto-char (point-min))
+            (forward-line line)
+            (eglot-move-to-column character)
+            (let ((overlay (make-overlay (point) (point))))
+              (overlay-put overlay 'before-string (propertize
+                                                    (concat (if (plist-get hint :paddingLeft) " " "")
+                                                            label
+                                                            (if (plist-get hint :paddingRight) " " ""))
+                                                    'face 'eglot-inlay-hint))
+              (overlay-put overlay 'is-eglot-inlay-hint t))))))))
+
+(defun eglot--remove-hints ()
+  "Remove inlay hints from the buffer."
+  (remove-overlays nil nil 'is-eglot-inlay-hint t))
+
+(defun eglot--update-hints ()
+  "Request inlay hints for the current buffer and apply them."
+  (unless (eglot--server-capable :inlayHintProvider)
+    (eglot--error "This LSP server isn't an :inlayHintProvider"))
+  ;; Remove existing hints
+  (eglot--remove-hints)
+  (let ((buffer (current-buffer)))
+    (jsonrpc-async-request
+      (eglot--current-server-or-lose)
+      :textDocument/inlayHint
+      (list
+        :textDocument (eglot--TextDocumentIdentifier)
+        :range (list
+                :start (list :line 0 :character 0)
+                :end (list
+                      :line (count-lines (point-min) (point-max))
+                      :character 0)))
+      :success-fn (lambda (hints)
+                    (eglot--inlay-handler buffer hints))
+      :deferred t)))
+
 
 ;;; Hacks
 ;;;
-- 
2.39.1





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61412; Package emacs. (Sat, 11 Feb 2023 14:49:02 GMT) Full text and rfc822 format available.

Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: bug#61412: [PATCH] Add inlay hints to eglot
Date: Sat, 11 Feb 2023 17:20:00 +0530
More about InlayHintPart:
https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#inlayHintLabelPart




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61412; Package emacs. (Sat, 11 Feb 2023 17:57:02 GMT) Full text and rfc822 format available.

Message #11 received at 61412 <at> debbugs.gnu.org (full text, mbox):

From: Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>
To: 61412 <at> debbugs.gnu.org
Subject: Question about implementation
Date: Sat, 11 Feb 2023 20:53:29 +0530
I currently send the request with the coordinates of the whole buffer on
save (while doing nothing on scroll), I was wondering if it would be
better or worse to send requests with coordinates of just the current
viewport on every scroll.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61412; Package emacs. (Mon, 13 Feb 2023 17:31:02 GMT) Full text and rfc822 format available.

Message #14 received at 61412 <at> debbugs.gnu.org (full text, mbox):

From: Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>
To: 61412 <at> debbugs.gnu.org
Subject: Re: Hover github discussion
Date: Mon, 13 Feb 2023 21:05:12 +0530
From the discussion on github
https://github.com/joaotavora/eglot/discussions/963

> The default version would be a hoverable symbol that shows something in the echo area when you mouse hover over it.


> Let's continue in the bug tracker discussion initiated by your bug report.
> As far as I understand, inlay hints will show the type of many visible expressions at once, so it's different from the "hover" scenario.

Yes, so it is impossible to use mouse hover for this as you can only
hover on one thing at once, right?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61412; Package emacs. (Wed, 15 Feb 2023 13:59:01 GMT) Full text and rfc822 format available.

Message #17 received at 61412 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>,
 João Távora <joaotavora <at> gmail.com>
Cc: 61412 <at> debbugs.gnu.org
Subject: Re: bug#61412: Hover github discussion
Date: Wed, 15 Feb 2023 15:58:17 +0200
> From: Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>
> Date: Mon, 13 Feb 2023 21:05:12 +0530
> 
> 
> From the discussion on github
> https://github.com/joaotavora/eglot/discussions/963
> 
> > The default version would be a hoverable symbol that shows something in the echo area when you mouse hover over it.
> 
> 
> > Let's continue in the bug tracker discussion initiated by your bug report.
> > As far as I understand, inlay hints will show the type of many visible expressions at once, so it's different from the "hover" scenario.
> 
> Yes, so it is impossible to use mouse hover for this as you can only
> hover on one thing at once, right?

João, could you please look into this?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61412; Package emacs. (Wed, 15 Feb 2023 14:39:02 GMT) Full text and rfc822 format available.

Message #20 received at 61412 <at> debbugs.gnu.org (full text, mbox):

From: Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>
To: 61412 <at> debbugs.gnu.org
Cc: Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>
Subject: [PATCH v2] Add inlay hints to eglot
Date: Wed, 15 Feb 2023 18:26:15 +0530
This uses different faces based on the "kind" of the hint:
https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#inlayHintKind

---
 lisp/progmodes/eglot.el | 85 ++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 84 insertions(+), 1 deletion(-)

diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el
index 6caf589..101644f 100644
--- a/lisp/progmodes/eglot.el
+++ b/lisp/progmodes/eglot.el
@@ -404,6 +404,10 @@ This can be useful when using docker to run a language server.")
 (when (assoc 'flex completion-styles-alist)
   (add-to-list 'completion-category-defaults '(eglot (styles flex basic))))
 
+(defcustom eglot-inlay-hints t
+  "If non-nil, enable inlay hints."
+  :type 'boolean)
+
 
 ;;; Constants
 ;;;
@@ -1624,7 +1628,8 @@ under cursor."
           (const :tag "Highlight links in document" :documentLinkProvider)
           (const :tag "Decorate color references" :colorProvider)
           (const :tag "Fold regions of buffer" :foldingRangeProvider)
-          (const :tag "Execute custom commands" :executeCommandProvider)))
+          (const :tag "Execute custom commands" :executeCommandProvider)
+          (const :tag "Inlay hints" :inlayHintProvider)))
 
 (defun eglot--server-capable (&rest feats)
   "Determine if current server is capable of FEATS."
@@ -1845,6 +1850,8 @@ If it is activated, also signal textDocument/didOpen."
     (when (and buffer-file-name (eglot-current-server))
       (setq eglot--diagnostics nil)
       (eglot--managed-mode)
+      (unless (not eglot-inlay-hints)
+        (eglot-inlay-mode))
       (eglot--signal-textDocument/didOpen))))
 
 (add-hook 'find-file-hook 'eglot--maybe-activate-editing-mode)
@@ -3456,6 +3463,82 @@ If NOERROR, return predicate, else erroring function."
       (revert-buffer)
       (pop-to-buffer (current-buffer)))))
 
+(defface eglot-inlay-hint-face
+  '((t (:height 0.8 :inherit shadow)))
+  "Face used for inlay hint overlays.")
+
+(defface eglot-type-hint-face
+  '((t (:inherit eglot-inlay-hint)))
+  "Face used for type hints.")
+
+(defface eglot-parameter-hint-face
+  '((t (:inherit eglot-inlay-hint)))
+  "Face used for parameter hints.")
+
+(define-minor-mode eglot-inlay-mode
+  "Mode for displaying inlay hints."
+  :lighter " inlay"
+  (if eglot-inlay-mode
+      (progn
+        (add-hook 'after-save-hook 'eglot--update-hints 0 t)
+        (eglot--update-hints))
+      (progn
+        (remove-hook 'after-save-hook 'eglot--update-hints t)
+        (eglot--remove-hints))))
+
+(defun eglot--inlay-handler (buffer hints)
+  "Apply vector of inlay hints HINTS on buffer BUFFER."
+  (seq-doseq (hint hints)
+    (let* ((position (plist-get hint :position))
+           (line (plist-get position :line))
+           (character (plist-get position :character))
+           (kind (plist-get hint :kind))
+           (face (cond ((eq kind 1)
+                        'eglot-type-hint-face)
+                       ((eq kind 2)
+                        'eglot-parameter-hint-face)
+                       (t
+                        'eglot-inlay-hint-face)))
+           (label (plist-get hint :label)))
+      (when (stringp label)
+        (with-current-buffer buffer
+          (eglot--widening
+            (goto-char (point-min))
+            (forward-line line)
+            (eglot-move-to-column character)
+            (let ((overlay (make-overlay (point) (point))))
+              (overlay-put overlay 'before-string (propertize
+                                                    (concat (if (plist-get hint :paddingLeft) " " "")
+                                                            label
+                                                            (if (plist-get hint :paddingRight) " " ""))
+                                                    'face face))
+              (overlay-put overlay 'is-eglot-inlay-hint t))))))))
+
+(defun eglot--remove-hints ()
+  "Remove inlay hints from the buffer."
+  (remove-overlays nil nil 'is-eglot-inlay-hint t))
+
+(defun eglot--update-hints ()
+  "Request inlay hints for the current buffer and apply them."
+  (unless (eglot--server-capable :inlayHintProvider)
+    (eglot--error "This LSP server isn't an :inlayHintProvider"))
+  ;; Remove existing hints
+  (eglot--remove-hints)
+  (let ((buffer (current-buffer)))
+    (jsonrpc-async-request
+      (eglot--current-server-or-lose)
+      :textDocument/inlayHint
+      (list
+        :textDocument (eglot--TextDocumentIdentifier)
+        :range (list
+                :start (list :line 0 :character 0)
+                :end (list
+                      :line (count-lines (point-min) (point-max))
+                      :character 0)))
+      :success-fn (lambda (hints)
+                    (eglot--inlay-handler buffer hints))
+      :deferred t)))
+
 
 ;;; Hacks
 ;;;
-- 
2.39.1





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61412; Package emacs. (Wed, 15 Feb 2023 14:39:03 GMT) Full text and rfc822 format available.

Message #23 received at 61412 <at> debbugs.gnu.org (full text, mbox):

From: Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>
To: 61412 <at> debbugs.gnu.org
Subject: [PATCH v3] Add inlay hints to eglot
Date: Wed, 15 Feb 2023 18:38:28 +0530
[Message part 1 (text/plain, inline)]
This adds the "-face" suffix to the `:inherit` definitions of the new
kind-based faces
[0001-Add-inlay-hints-to-eglot.patch (text/x-patch, attachment)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61412; Package emacs. (Wed, 15 Feb 2023 15:06:02 GMT) Full text and rfc822 format available.

Message #26 received at 61412 <at> debbugs.gnu.org (full text, mbox):

From: João Távora <joaotavora <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>, 61412 <at> debbugs.gnu.org
Subject: Re: bug#61412: Hover github discussion
Date: Wed, 15 Feb 2023 15:05:13 +0000
[Message part 1 (text/plain, inline)]
On Wed, Feb 15, 2023 at 1:58 PM Eli Zaretskii <eliz <at> gnu.org> wrote:

> > From: Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>
> > Date: Mon, 13 Feb 2023 21:05:12 +0530
> >
> >
> > From the discussion on github
> > https://github.com/joaotavora/eglot/discussions/963
> >
> > > The default version would be a hoverable symbol that shows something
> in the echo area when you mouse hover over it.
> >
> >
> > > Let's continue in the bug tracker discussion initiated by your bug
> report.
> > > As far as I understand, inlay hints will show the type of many visible
> expressions at once, so it's different from the "hover" scenario.
> >
> > Yes, so it is impossible to use mouse hover for this as you can only
> > hover on one thing at once, right?
>

Yes.  I haven't  looked at your code, but my expectation is for inlay hints
to
activate either on a timer after each change, or by the explicit request of
the user via a keybinding.

It simply doesn't make sense to use mouse hover for this because the
hover mechanic is for a single text and inlay hints are about overlaying
multiple pieces of information in multiple locations of the buffer.

João, could you please look into this?
>

Hi Eli, this is about the "inlay hints" feature.

It's on the radar, but I don't have time in the very near future
to handle this.

I seem to recall that recently you voiced some opinion in another
bug report that this feature could be handled by a separate library
instead of a custom Eglot-only implementation.  This could be
quite reasonable -- or it could  be overkill/overengeering.  Only a look
at the pros and cons of this implementation can tell that, and I haven't
had time, sorry.

Anyway, if there is indeed a separate discussion for this, then the
two discussions should be merged.  Be sure to keep me in the loop
if you can as I am overwhelmed with other activies in the moment
and am not scanning the bug-tracker, or even emacs-devel, for
Eglot-related emails at the moment.

João
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61412; Package emacs. (Wed, 15 Feb 2023 15:40:02 GMT) Full text and rfc822 format available.

Message #29 received at 61412 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: João Távora <joaotavora <at> gmail.com>
Cc: dalal.chinmay.0101 <at> gmail.com, 61412 <at> debbugs.gnu.org
Subject: Re: bug#61412: Hover github discussion
Date: Wed, 15 Feb 2023 17:38:54 +0200
> From: João Távora <joaotavora <at> gmail.com>
> Date: Wed, 15 Feb 2023 15:05:13 +0000
> Cc: Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>, 61412 <at> debbugs.gnu.org
> 
> Yes.  I haven't  looked at your code, but my expectation is for inlay hints to
> activate either on a timer after each change, or by the explicit request of
> the user via a keybinding.
> 
> It simply doesn't make sense to use mouse hover for this because the
> hover mechanic is for a single text and inlay hints are about overlaying
> multiple pieces of information in multiple locations of the buffer.
> 
>  João, could you please look into this?
> 
> Hi Eli, this is about the "inlay hints" feature. 
> 
> It's on the radar, but I don't have time in the very near future
> to handle this.

That's okay, as long as this is not forgotten.

> I seem to recall that recently you voiced some opinion in another
> bug report that this feature could be handled by a separate library
> instead of a custom Eglot-only implementation.  This could be 
> quite reasonable -- or it could  be overkill/overengeering.  Only a look 
> at the pros and cons of this implementation can tell that, and I haven't
> had time, sorry.

AFAIR, you and others considered my proposal (to use this via ElDoc)
as not the best idea, for various technical reasons.  So I no longer
insist on my proposal.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61412; Package emacs. (Wed, 15 Feb 2023 17:52:01 GMT) Full text and rfc822 format available.

Message #32 received at 61412 <at> debbugs.gnu.org (full text, mbox):

From: Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>
To: 61412 <at> debbugs.gnu.org
Cc: joaotavora <at> gmail.com
Subject: Inlay activation
Date: Wed, 15 Feb 2023 21:54:57 +0530
> Yes.  I haven't  looked at your code, but my expectation is for inlay hints to
> activate either on a timer after each change, or by the explicit request of
> the user via a keybinding.

My code updates inlay hints on every save (`after-save-hook`).

Regarding keybinding, on the github discussion someone suggested that
vscode shows them while a key combination is held and hides them when
they are released, but I was told emacs can't do this.

Regarding timer, personally I find it annoying when lsp-mode starts
showing overlays when I'm not done typing a line, which is why I chose
after-save-hook. For me it would be best if they were updated every time
I pressed enter, but I don't know how to implement that.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61412; Package emacs. (Wed, 15 Feb 2023 18:10:01 GMT) Full text and rfc822 format available.

Message #35 received at 61412 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>
Cc: joaotavora <at> gmail.com, 61412 <at> debbugs.gnu.org
Subject: Re: bug#61412: Inlay activation
Date: Wed, 15 Feb 2023 20:09:27 +0200
> Cc: joaotavora <at> gmail.com
> From: Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>
> Date: Wed, 15 Feb 2023 21:54:57 +0530
> 
> Regarding keybinding, on the github discussion someone suggested that
> vscode shows them while a key combination is held and hides them when
> they are released, but I was told emacs can't do this.

Not only can we not do this, it is also not our style.  If we want to
show hints, we either show tooltips, or display a message in the echo
area.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61412; Package emacs. (Wed, 15 Feb 2023 19:02:02 GMT) Full text and rfc822 format available.

Message #38 received at 61412 <at> debbugs.gnu.org (full text, mbox):

From: João Távora <joaotavora <at> gmail.com>
To: Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 61412 <at> debbugs.gnu.org
Subject: Re: bug#61412: Inlay activation
Date: Wed, 15 Feb 2023 19:01:37 +0000
[Message part 1 (text/plain, inline)]
On Wed, Feb 15, 2023 at 6:56 PM Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>
wrote:

>
> Eli Zaretskii <eliz <at> gnu.org> writes:
>
> >> Cc: joaotavora <at> gmail.com
> >> From: Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>
> >> Date: Wed, 15 Feb 2023 21:54:57 +0530
> >>
> >> Regarding keybinding, on the github discussion someone suggested that
> >> vscode shows them while a key combination is held and hides them when
> >> they are released, but I was told emacs can't do this.
> >
> > Not only can we not do this, it is also not our style.  If we want to
> > show hints, we either show tooltips, or display a message in the echo
> > area.
>
> Tooltips and echo area can't be used as inlay hints are for showing
> types of multiple variables/expressions and names of parameters at once.
>
> See the attached screenshots for an example (this is from my
> implementation in this patch)
>

Yes, I was going to state the same thing. Hopefully your
screenshots illustrate why ElDoc, at least using its
its display methods available at the moment, is not
the best fit for this.

This is a very useful feature if done correctly, and I'm
leaning towards your approach of doing this completely
in eglot.el, so your code is an excellent start.

But the activation and other details have to be carefully
considered.  I will try to look into this soon.

Do you have a FSF copyright assignment, Chinmay?

João
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61412; Package emacs. (Wed, 15 Feb 2023 19:42:02 GMT) Full text and rfc822 format available.

Message #41 received at 61412 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>
Cc: joaotavora <at> gmail.com, 61412 <at> debbugs.gnu.org
Subject: Re: bug#61412: Inlay activation
Date: Wed, 15 Feb 2023 21:41:23 +0200
> From: Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>
> Cc: 61412 <at> debbugs.gnu.org, joaotavora <at> gmail.com
> Date: Thu, 16 Feb 2023 00:18:41 +0530
> 
> > Not only can we not do this, it is also not our style.  If we want to
> > show hints, we either show tooltips, or display a message in the echo
> > area.
> 
> Tooltips and echo area can't be used as inlay hints are for showing
> types of multiple variables/expressions and names of parameters at once.
> 
> See the attached screenshots for an example (this is from my
> implementation in this patch)

I'm not surer I understand what you are showing here (so feel free to
say a few more words), but if I should guess, I'd say use overlay
strings.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61412; Package emacs. (Wed, 15 Feb 2023 23:56:02 GMT) Full text and rfc822 format available.

Message #44 received at 61412 <at> debbugs.gnu.org (full text, mbox):

From: Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: joaotavora <at> gmail.com, 61412 <at> debbugs.gnu.org
Subject: Re: bug#61412: Inlay activation
Date: Thu, 16 Feb 2023 00:18:41 +0530
[Message part 1 (text/plain, inline)]
Eli Zaretskii <eliz <at> gnu.org> writes:

>> Cc: joaotavora <at> gmail.com
>> From: Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>
>> Date: Wed, 15 Feb 2023 21:54:57 +0530
>> 
>> Regarding keybinding, on the github discussion someone suggested that
>> vscode shows them while a key combination is held and hides them when
>> they are released, but I was told emacs can't do this.
>
> Not only can we not do this, it is also not our style.  If we want to
> show hints, we either show tooltips, or display a message in the echo
> area.

Tooltips and echo area can't be used as inlay hints are for showing
types of multiple variables/expressions and names of parameters at once.

See the attached screenshots for an example (this is from my
implementation in this patch)


C++ (clangd):
[clangd_inlay.png (image/png, attachment)]
[Message part 3 (text/plain, inline)]
Rust (rust-analyzer):
[ra_inlay.png (image/png, attachment)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61412; Package emacs. (Wed, 15 Feb 2023 23:56:03 GMT) Full text and rfc822 format available.

Message #47 received at 61412 <at> debbugs.gnu.org (full text, mbox):

From: Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>
To: João Távora <joaotavora <at> gmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 61412 <at> debbugs.gnu.org
Subject: Re: bug#61412: Inlay activation
Date: Thu, 16 Feb 2023 00:47:08 +0530
João Távora <joaotavora <at> gmail.com> writes:

> But the activation and other details have to be carefully 
> considered.  I will try to look into this soon.

I agree, can you also look into
https://mail.gnu.org/archive/html/bug-gnu-emacs/2023-02/msg00782.html

> Do you have a FSF copyright assignment, Chinmay?

I do not have one.


Chinmay




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61412; Package emacs. (Wed, 15 Feb 2023 23:56:03 GMT) Full text and rfc822 format available.

Message #50 received at 61412 <at> debbugs.gnu.org (full text, mbox):

From: Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: joaotavora <at> gmail.com, 61412 <at> debbugs.gnu.org
Subject: Re: bug#61412: Inlay activation
Date: Thu, 16 Feb 2023 01:47:24 +0530
On 16 February 2023 1:11:23 am IST, Eli Zaretskii <eliz <at> gnu.org> wrote:
>> From: Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>
>> Cc: 61412 <at> debbugs.gnu.org, joaotavora <at> gmail.com
>> Date: Thu, 16 Feb 2023 00:18:41 +0530
>> 
>> > Not only can we not do this, it is also not our style.  If we want to
>> > show hints, we either show tooltips, or display a message in the echo
>> > area.
>> 
>> Tooltips and echo area can't be used as inlay hints are for showing
>> types of multiple variables/expressions and names of parameters at once.
>> 
>> See the attached screenshots for an example (this is from my
>> implementation in this patch)
>
>I'm not surer I understand what you are showing here (so feel free to
>say a few more words), but if I should guess, I'd say use overlay
>strings.

Yes, I am using overlay strings

Apologies if the formatting is messed up, I sent this from my phone




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61412; Package emacs. (Tue, 21 Feb 2023 15:14:02 GMT) Full text and rfc822 format available.

Message #53 received at 61412 <at> debbugs.gnu.org (full text, mbox):

From: João Távora <joaotavora <at> gmail.com>
To: Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>, 
 Dimitri Belopopsky <dimitri <at> belopopsky.com>, Po Lu <luangruo <at> yahoo.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 61412 <at> debbugs.gnu.org
Subject: bug#61412: Inlay hints implementation
Date: Tue, 21 Feb 2023 15:13:03 +0000
[Message part 1 (text/plain, inline)]
[Eli, I just noticed that this bug should be merged with 61066,
but I don't know how to do that]

Hello,

Attached is my implementation of inlay hints for Eglot.
Two patches are provided, where the first just lays some
basic groundwork to make the actual inlay hint implementation
simpler.

Regarding copyright stuff, I did look at Chinmay's patch,
but I re-started from scratch.  While it was a very good
effort, there were too many idiomatic Elisp and Eglot things
to change.  I did take Chinmay's face definitions, though.
Not sure how to proceed here and if this counts as "derived
work" and if we should wait for Chinmay's copyright assignment.

I gave it some light testing and I kind of like it.  Quite
helpful for C++ with clangd (the only server I tested it with).
You can bind `eglot-inlay-hint-mode` to some keybinding probably.

Documentation in the manual is still missing, but shouldn't
be very hard to do.

Anyway, this is likely not the end of the inlay hint story
because, as the second patch documents, this is likely a
very naive implementation that always requests inlay hints
for the entire buffer even if just a fraction of it is visible.

A better implementation would probably leverage
window-scroll-functions along with the Eglot-specific
idle timer.  That is probably much, much more tricky to get
right, but is also more than likely the way to go.

In the meantime, I'd like your opinion on this patch and
the above topics first.

João

I hope gmail doesn't mess up my attachments...
[0001-Eglot-simplify-capability-checking-code.patch (application/octet-stream, attachment)]
[0002-Eglot-implement-inlay-hints-bug-61412.patch (application/octet-stream, attachment)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61412; Package emacs. (Tue, 21 Feb 2023 15:22:02 GMT) Full text and rfc822 format available.

Message #56 received at 61412 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: João Távora <joaotavora <at> gmail.com>
Cc: luangruo <at> yahoo.com, dalal.chinmay.0101 <at> gmail.com, dimitri <at> belopopsky.com,
 61412 <at> debbugs.gnu.org
Subject: Re: bug#61412: Inlay hints implementation
Date: Tue, 21 Feb 2023 17:21:16 +0200
merge 61412 61066
thanks

> From: João Távora <joaotavora <at> gmail.com>
> Date: Tue, 21 Feb 2023 15:13:03 +0000
> Cc: Eli Zaretskii <eliz <at> gnu.org>, 61412 <at> debbugs.gnu.org
> 
> 
> [Eli, I just noticed that this bug should be merged with 61066,
> but I don't know how to do that]

Done.




Merged 61066 61412. Request was from Eli Zaretskii <eliz <at> gnu.org> to control <at> debbugs.gnu.org. (Tue, 21 Feb 2023 15:22:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61412; Package emacs. (Tue, 21 Feb 2023 15:48:02 GMT) Full text and rfc822 format available.

Message #61 received at 61412 <at> debbugs.gnu.org (full text, mbox):

From: Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>
To: 61412 <at> debbgugs.gnu.org
Cc: joaotavora <at> gmail.com
Subject: bug#61412: Inlay hints implementation
Date: Tue, 21 Feb 2023 21:03:27 +0530 (7 minutes, 52 seconds ago)
> Not sure how to proceed here and if this counts as "derived
> work" and if we should wait for Chinmay's copyright assignment.

I myself took the face definitions from the patch in bug 61066




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61412; Package emacs. (Tue, 21 Feb 2023 15:58:02 GMT) Full text and rfc822 format available.

Message #64 received at 61412 <at> debbugs.gnu.org (full text, mbox):

From: Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>
To: 61412 <at> debbugs.gnu.org
Cc: joaotavora <at> gmail.com
Subject: bug#61412: Inlay hints implementation
Date: Tue, 21 Feb 2023 21:27:00 +0530
> I did take Chinmay's face definitions, though.
> Not sure how to proceed here and if this counts as "derived
> work" and if we should wait for Chinmay's copyright assignment.

I myself took `:inherit shadow` and `:height 0.8` from Dmitry's patch in
bug #61066 and only added two new faces for the two kinds which inherit
from it

Chinmay




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61412; Package emacs. (Tue, 21 Feb 2023 18:43:02 GMT) Full text and rfc822 format available.

Message #67 received at 61412 <at> debbugs.gnu.org (full text, mbox):

From: Dimitri Belopopsky <dimitri <at> belopopsky.com>
To: João Távora <joaotavora <at> gmail.com>
Cc: Po Lu <luangruo <at> yahoo.com>, Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>,
 Eli Zaretskii <eliz <at> gnu.org>, 61412 <at> debbugs.gnu.org
Subject: Re: bug#61412: Inlay hints implementation
Date: Tue, 21 Feb 2023 19:42:19 +0100
[Message part 1 (text/plain, inline)]
Hello,

I thought the point was not to create overlays directly?
I'm sharing what I currently have, using the flymake diagnostics directly.
Maybe something can be salvaged?

In the meantime I'll try out your patches.

On Tue, 21 Feb 2023 at 16:14, João Távora <joaotavora <at> gmail.com> wrote:

> [Eli, I just noticed that this bug should be merged with 61066,
> but I don't know how to do that]
>
> Hello,
>
> Attached is my implementation of inlay hints for Eglot.
> Two patches are provided, where the first just lays some
> basic groundwork to make the actual inlay hint implementation
> simpler.
>
> Regarding copyright stuff, I did look at Chinmay's patch,
> but I re-started from scratch.  While it was a very good
> effort, there were too many idiomatic Elisp and Eglot things
> to change.  I did take Chinmay's face definitions, though.
> Not sure how to proceed here and if this counts as "derived
> work" and if we should wait for Chinmay's copyright assignment.
>
> I gave it some light testing and I kind of like it.  Quite
> helpful for C++ with clangd (the only server I tested it with).
> You can bind `eglot-inlay-hint-mode` to some keybinding probably.


It's even more helpful in languages like Rust, that rely on type deduction
a lot more.
Clangd has an extension for designator hints that looks interesting too.


> Documentation in the manual is still missing, but shouldn't
> be very hard to do.
>
> Anyway, this is likely not the end of the inlay hint story
> because, as the second patch documents, this is likely a
> very naive implementation that always requests inlay hints
> for the entire buffer even if just a fraction of it is visible.
>


> A better implementation would probably leverage
> window-scroll-functions along with the Eglot-specific
> idle timer.  That is probably much, much more tricky to get
> right, but is also more than likely the way to go.
>
> In the meantime, I'd like your opinion on this patch and
> the above topics first.
>
> João
>
> I hope gmail doesn't mess up my attachments...
>
[Message part 2 (text/html, inline)]
[0001-Add-inlay-hint-functionality.patch (text/x-patch, attachment)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61412; Package emacs. (Tue, 21 Feb 2023 21:27:01 GMT) Full text and rfc822 format available.

Message #70 received at 61412 <at> debbugs.gnu.org (full text, mbox):

From: João Távora <joaotavora <at> gmail.com>
To: Dimitri Belopopsky <dimitri <at> belopopsky.com>
Cc: Po Lu <luangruo <at> yahoo.com>, Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>,
 Eli Zaretskii <eliz <at> gnu.org>, 61412 <at> debbugs.gnu.org
Subject: Re: bug#61412: Inlay hints implementation
Date: Tue, 21 Feb 2023 21:26:21 +0000
Ok, thanks.  While I'm sure Flymake can be used for this,
I'm not sure it should.  The reason is that inlay hints are,
in principle, much more numerous than diagnostics.  Collecting
all of them could be wasteful when the user is only looking at
a section of the file.  Flymake doesn't have very good
mechanisms to work with this scenario.

Anyway, your patch has a very large number of unrelated whitespace
changes, making it almost impossible to read.  Please make one
with only the essential changes.

João

On Tue, Feb 21, 2023 at 6:42 PM Dimitri Belopopsky
<dimitri <at> belopopsky.com> wrote:
>
> Hello,
>
> I thought the point was not to create overlays directly?
> I'm sharing what I currently have, using the flymake diagnostics directly.
> Maybe something can be salvaged?
>
> In the meantime I'll try out your patches.
>
> On Tue, 21 Feb 2023 at 16:14, João Távora <joaotavora <at> gmail.com> wrote:
>>
>> [Eli, I just noticed that this bug should be merged with 61066,
>> but I don't know how to do that]
>>
>> Hello,
>>
>> Attached is my implementation of inlay hints for Eglot.
>> Two patches are provided, where the first just lays some
>> basic groundwork to make the actual inlay hint implementation
>> simpler.
>>
>> Regarding copyright stuff, I did look at Chinmay's patch,
>> but I re-started from scratch.  While it was a very good
>> effort, there were too many idiomatic Elisp and Eglot things
>> to change.  I did take Chinmay's face definitions, though.
>> Not sure how to proceed here and if this counts as "derived
>> work" and if we should wait for Chinmay's copyright assignment.
>>
>> I gave it some light testing and I kind of like it.  Quite
>> helpful for C++ with clangd (the only server I tested it with).
>> You can bind `eglot-inlay-hint-mode` to some keybinding probably.
>
>
> It's even more helpful in languages like Rust, that rely on type deduction a lot more.
> Clangd has an extension for designator hints that looks interesting too.
>
>>
>> Documentation in the manual is still missing, but shouldn't
>> be very hard to do.
>>
>> Anyway, this is likely not the end of the inlay hint story
>> because, as the second patch documents, this is likely a
>> very naive implementation that always requests inlay hints
>> for the entire buffer even if just a fraction of it is visible.
>
>
>>
>> A better implementation would probably leverage
>> window-scroll-functions along with the Eglot-specific
>> idle timer.  That is probably much, much more tricky to get
>> right, but is also more than likely the way to go.
>>
>> In the meantime, I'd like your opinion on this patch and
>> the above topics first.
>>
>> João
>>
>> I hope gmail doesn't mess up my attachments...



-- 
João Távora




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61412; Package emacs. (Wed, 22 Feb 2023 15:27:02 GMT) Full text and rfc822 format available.

Message #73 received at 61412 <at> debbugs.gnu.org (full text, mbox):

From: Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>
To: joaotavora <at> gmail.com
Cc: 61412 <at> debbugs.gnu.org
Subject: bug#61412: Inlay hints implementation
Date: Wed, 22 Feb 2023 20:56:01 +0530
When I apply these patches and add a hook

(add-hook 'eglot-managed-mode-hook #'eglot-inlay-hints-mode)

and try to delete a buffer, I get

eglot--error: [eglot] Can't turn on `eglot-inlay-hints' mode.

once, and then I am able to delete the buffer.


Chinmay




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61412; Package emacs. (Wed, 22 Feb 2023 16:52:02 GMT) Full text and rfc822 format available.

Message #76 received at 61412 <at> debbugs.gnu.org (full text, mbox):

From: Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>
To: joaotavora <at> gmail.com
Cc: 61412 <at> debbugs.gnu.org
Subject: Re: bug#61412: Inlay hints implementation
Date: Wed, 22 Feb 2023 22:21:14 +0530
[Message part 1 (text/plain, inline)]
By "these patches" I mean João's patches, I can't figure out how to reply
properly

On Wed, 22 Feb 2023 at 20:56, Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>
wrote:

>
> When I apply these patches and add a hook
>
> (add-hook 'eglot-managed-mode-hook #'eglot-inlay-hints-mode)
>
> and try to delete a buffer, I get
>
> eglot--error: [eglot] Can't turn on `eglot-inlay-hints' mode.
>
> once, and then I am able to delete the buffer.
>
>
> Chinmay
>
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61412; Package emacs. (Wed, 22 Feb 2023 23:18:02 GMT) Full text and rfc822 format available.

Message #79 received at 61412 <at> debbugs.gnu.org (full text, mbox):

From: João Távora <joaotavora <at> gmail.com>
To: Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>
Cc: 61412 <at> debbugs.gnu.org
Subject: Re: bug#61412: Inlay hints implementation
Date: Wed, 22 Feb 2023 23:17:06 +0000
[Message part 1 (text/plain, inline)]
On Wed, Feb 22, 2023, 15:26 Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>
wrote:

>
> When I apply these patches and add a hook
>
> (add-hook 'eglot-managed-mode-hook #'eglot-inlay-hints-mode)
>
> and try to delete a buffer, I get
>
> eglot--error: [eglot] Can't turn on `eglot-inlay-hints' mode.
>
> once, and then I am able to delete the buffer.
>

This is due to an unrelated bug that I've also fixed
in the emacs-29 branch.

Anyway, the "inlay hints" feature is now also installed.
I hope you can test it and report any bugs.  You sohuld
be able to use that one-liner to enable eglot-inlay-hints-mode
automatically.

João
[Message part 2 (text/html, inline)]

Reply sent to João Távora <joaotavora <at> gmail.com>:
You have taken responsibility. (Sat, 25 Feb 2023 00:21:02 GMT) Full text and rfc822 format available.

Notification sent to Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>:
bug acknowledged by developer. (Sat, 25 Feb 2023 00:21:02 GMT) Full text and rfc822 format available.

Message #84 received at 61412-done <at> debbugs.gnu.org (full text, mbox):

From: João Távora <joaotavora <at> gmail.com>
To: Dimitri Belopopsky <dimitri <at> belopopsky.com>, 61412-done <at> debbugs.gnu.org
Cc: Po Lu <luangruo <at> yahoo.com>, Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>,
 Eli Zaretskii <eliz <at> gnu.org>
Subject: Re: bug#61412: Inlay hints implementation
Date: Sat, 25 Feb 2023 00:21:40 +0000
Inlay hints are not implemented in Eglot as of a few days ago.

I'm going to go ahead and close this bug. Please open new bugs for any
missing features
or problems with the new functionality.

Thanks,
João




Reply sent to João Távora <joaotavora <at> gmail.com>:
You have taken responsibility. (Sat, 25 Feb 2023 00:21:02 GMT) Full text and rfc822 format available.

Notification sent to Dimitri Belopopsky <dimitri <at> belopopsky.com>:
bug acknowledged by developer. (Sat, 25 Feb 2023 00:21:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61412; Package emacs. (Sat, 25 Feb 2023 08:00:02 GMT) Full text and rfc822 format available.

Message #92 received at 61412-done <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: João Távora <joaotavora <at> gmail.com>
Cc: luangruo <at> yahoo.com, 61412-done <at> debbugs.gnu.org,
 dalal.chinmay.0101 <at> gmail.com, dimitri <at> belopopsky.com
Subject: Re: bug#61412: Inlay hints implementation
Date: Sat, 25 Feb 2023 09:59:10 +0200
> From: João Távora <joaotavora <at> gmail.com>
> Date: Sat, 25 Feb 2023 00:21:40 +0000
> Cc: Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>, Po Lu <luangruo <at> yahoo.com>, 
> 	Eli Zaretskii <eliz <at> gnu.org>
> 
> Inlay hints are not implemented in Eglot as of a few days ago.
                  ^^^
You meant "now" there, right?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#61412; Package emacs. (Sat, 25 Feb 2023 10:20:02 GMT) Full text and rfc822 format available.

Message #95 received at 61412-done <at> debbugs.gnu.org (full text, mbox):

From: João Távora <joaotavora <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: Po Lu <luangruo <at> yahoo.com>, 61412-done <at> debbugs.gnu.org,
 Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>,
 Dimitri Belopopsky <dimitri <at> belopopsky.com>
Subject: Re: bug#61412: Inlay hints implementation
Date: Sat, 25 Feb 2023 10:19:25 +0000
[Message part 1 (text/plain, inline)]
On Sat, Feb 25, 2023, 07:59 Eli Zaretskii <eliz <at> gnu.org> wrote:

> > From: João Távora <joaotavora <at> gmail.com>
> > Date: Sat, 25 Feb 2023 00:21:40 +0000
> > Cc: Chinmay Dalal <dalal.chinmay.0101 <at> gmail.com>, Po Lu <
> luangruo <at> yahoo.com>,
> >       Eli Zaretskii <eliz <at> gnu.org>
> >
> > Inlay hints are not implemented in Eglot as of a few days ago.
>                   ^^^
> You meant "now" there, right?
>

Yes, of course, sorry.

João

>
[Message part 2 (text/html, inline)]

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 25 Mar 2023 11:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 32 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.