haskell / haskell/haskell-language-server

Definitive guide for how things should be done

Open
#3,597 1 comment 3 reactions 0 assignees View on GitHub
type: enhancement
Dominant language
Haskell
Stars
3k
Forks
455
Avg merge
2d 19h
Merged PRs (30d)
11

Description

There are a bunch of decisions where there are multiple solutions with different advantages and drawbacks.

Some of the issues I have stumbled over so far have been:

- The appropriate scope of individual plugins. When to write your feature into an existing plugin, and when to write a new plugin. For example: Should plugins that refactor code be written into the `hls-refactor-plugin`, or be standalone plugins?
- When should projects use `use` vs `useWithStale` vs `useWithStaleFast`. For example, should a plugin that modifies code rely on `useWithStale`? (More consistently available with the possibility of corrupting code)

I imagine there are more of these issues where there is no obvious solution, with advantages and drawbacks for each available solution. Once more of these issues have been listed, for the consistency of the project, it would be beneficial for the team to lay out the project's chosen way of resolving these issues. This way, future features can have such decisions taken into consideration, and old code can be progressively refactored to adhere to such decisions.

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.