GNU bug report logs -
#73500
eglot: diagnostic location not always shown
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Tue, 1 Oct 2024 23:39:24 +0300
with message-id <7c42a6a8-37e0-443c-b6ef-e1e321c1cb2b <at> gutov.dev>
and subject line Re: bug#73500: eglot: diagnostic location not always shown
has caused the debbugs.gnu.org bug report #73500,
regarding eglot: diagnostic location not always shown
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
73500: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=73500
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
[Message part 3 (text/plain, inline)]
I'm using `emacs` 29.4 with the `haskell-language-server` 2.8.0.0 on
NixOS 24.05.
The following code
```haskell
isAscending [x] =True
```
produces the following diagnostic from the lsp
```elisp
(:jsonrpc "2.0" :method "textDocument/publishDiagnostics" :params
(:diagnostics
[(:code "-Wunused-matches" :message "Defined but not used:
‘x’" :range
(:end
(:character 14 :line 17)
:start
(:character 13 :line 17))
:severity 2 :source "typecheck" :tags
[1])
(:code "-Wmissing-signatures" :message "Top-level binding
with no type signature:\n fbeCircle ::
svg-builder-0.1.1:Graphics.Svg.Core.Element" :range
(:end
(:character 9 :line 25)
:start
(:character 0 :line 25))
:severity 2 :source "typecheck")]
:uri
"file:///home/user/tmp/haskell/test-flake-utils/test/src/Main.hs"
:version 0))
```
The first diagnostics (corresponding to the above code) is shown in the
Emacs buffer only with an exclamation mark in the fringe. However, the
diagnostic message is not shown anywhere unless the cursor is placed on
the exact location in question (the 'x' in the square brakes). Without
any visual aid, it's very difficult to pinpoint the exact location of
the problem to see the message.
The other diagnostic in the same server message, on top of the
exclamation mark, it's properly highlighted with a blue wiggled
underline and easy to locate. I'd expect this to happen for all diagnostics.
[Message part 4 (text/html, inline)]
[Message part 5 (message/rfc822, inline)]
On 01/10/2024 23:18, Federico Beffa wrote:
> On 01/10/2024 21:48, Dmitry Gutov wrote:
>> That one is using the face eglot-diagnostic-tag-unnecessary-face,
>> which you can customize to add an underline or any other decorations.
>>
>> It was added in commit 0f44d338f17bd4, see the description here
>> https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=0f44d338f17bd4
>>
>> The choice of using 'shadow' is explained with a reference to the
>> protocol, which says:
>>
>> /**
>> * Unused or unnecessary code.
>> *
>> * Clients are allowed to render diagnostics with this tag faded out
>> * instead of having an error squiggle.
>> */
>>
>> https://microsoft.github.io/language-server-protocol/specifications/
>> lsp/3.17/specification/#diagnosticTag
>>
>
> OK, I see, the shadow is so similar the normal font that, before you
> mentioned it, it was unnoticeable to me. But if it's customizable,
> that's great.
Yep. I suggest customizing 'shadow' itself then, if it's not noticeable
enough on your system/theme/etc.
>> > Here a screenshot
>>
>> Same look on my machine.
>>
>> Should we remove the exclamation point instead, to avoid the semantic
>> conflict? I'm not sure, probably not.
>
> Is the exclamation mark used with all warnings? If yes, I'd keep it.
> Even if the warning has a tag equal to 1, it's still a warning.
It is. Sure.
> Thanks for your help!
No problem! Guess we're finished here, so I'm closing the report.
This bug report was last modified 284 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.