haskell / haskell/haskell-language-server

How to Avoid Type Signature Code Lenses in Instance Declarations

Open
#3,272 3 comments 2 reactions 0 assignees View on GitHub
documentation type: support
Dominant language
Haskell
Stars
3k
Forks
455
Avg merge
2d 19h
Merged PRs (30d)
11

Description

## Your environment

Which OS do you use?
ArchLinux

Which version of GHC do you use and how did you install it?
8.10.7 from ghcup

Which LSP client (editor/plugin) do you use?
Code OSS from Arch repository

Which version of HLS do you use and how did you install it?
1.8.0.0 from ghcup

## What's wrong?

I recently upgraded from HLS 1.6.* (I think) to 1.8.0.0 and now type signature code lenses are displayed for functions in instance declarations, which was not the case before. I would like to retain the former behavior of only showing type signature code lenses for standalone top-level declarations.

I looked at the settings and found `haskell.plugin.ghcide-type-lenses.config.mode`, which has three possible values `always`, `exported`, and `diagnostics`. The description for the `diagnostics` value reads "Follows error messages produced by GHC about missing signatures". This sounds to me like type signature code lenses would be displayed in exactly those places where GHC would give a `-Wmissing-signatures` warning. However, this seems to not be the case and I was in fact unable to find any situation where `diagnostics` and `always` produced a different result.

1. How do I prevent type signature code lenses from being shown in instance declarations?
2. What is the intended behavior of the `diagnostics` value?
3. If the intended behavior of `diagnostics` is something different than aligning type signature code lenses with `-Wmissing-signatures`, maybe an option that enables this sort of behavior would be useful?

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.