haskell / haskell/haskell-language-server
[plugin][refine-import] add configuration allowing refining into `Internal` namespace
- Dominant language
- Haskell
- Stars
- 3k
- Forks
- 455
- Avg merge
- 3d 21h
- Merged PRs (30d)
- 13
Description
**Feature request**
Currently, the plugin requires people to manually refine imports if user wants to depend on `Internal` uncontrolled API.
https://github.com/haskell/haskell-language-server/pull/1832#discussion_r632777557
**Solution**
It should not be too hard to add the option into the plugin:
An example of `Properties` in type lenses plugin:
https://github.com/haskell/haskell-language-server/blob/7d7cfa24c0d8efa2188ac1753cbf9cd74a310672/ghcide/src/Development/IDE/Plugin/TypeLenses.hs#L89-L112
**Alternatives solution**
The current design can be seen as a good design, as it encourages best practices & discourages the use of uncontrolled `Internal` API: http://nikita-volkov.github.io/internal-convention-is-a-mistake.
But, still, people may have strong reasons & requirements to be able to refine into `Internal` modules when they need.
Contributor guide
No contributing guide indexed for this repository
Research direction
Inspect the refine-import plugin and compare its configuration with the Properties example in ghcide/src/Development/IDE/Plugin/TypeLenses.hs at lines 89-112. Determine how the option should permit refinement into Internal modules, then locate or add coverage for the configuration; done means users can enable this behavior without manually refining imports.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100