haskell / haskell/haskell-language-server

Unify "import action" and "import code lens" behaviour

Open
#487 2 comments 3 reactions 0 assignees View on GitHub
component: ghcide type: enhancement
Dominant language
Haskell
Stars
3k
Forks
455
Avg merge
2d 19h
Merged PRs (30d)
11

Description

The import code lens action (hover over non-explicit imports and trigger a code lens action) and the import code action (hover over an unimported identifier and trigger a code action) differ in some ways:

0. the code action imports things with explicit constructors (e.g. `Either(Left, Right)` instead of `Either(..)`)
1. the code action **fails** to distinguish between a constructor and a type, (e.g. if I want to import `Data.Either.Left` it will generate `import Data.Either (Left)`, which is not valid)

I feel that both for consistency, and as an improvement to the code action (point 0. is subjective, but point 1. is definitely a bug), it would be nice if these two could be unified, to the behaviour of the code lens.

Is there some technical reason to be unable to do so, e.g. "before we have the imports we haven't loaded necessary data and are therefore unable to determine whether `Left` should be a constructor or a type"?

I am also willing to do work on this, if someone is willing to provide guidance.

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.