haskell / haskell/haskell-language-server

Document architecture and relationship between component projects

未关闭
#409 21 条评论 7 个 reaction 已指派 0 人 在 GitHub 查看
type: bug type: enhancement
主要语言
Haskell
星标
3k
派生
455
平均合并
2 天 19 小时
30 天内合并 PR
11

描述

I think one of the barriers to new contributors such as myself on this project is understanding the suite of disparate tools that come together to make HLS a reality. I think guiding early users of HLS towards being able to hack out solutions to bugs they discover or know **where** a feature they want might go can go a long ways towards creating a self sustaining (and growing) project.

At present, as a pre-first time contributor (but attentive user), the questions that come to mind are these:

- What is the relationship between `hls`, `ghcide`, `haskell-lsp`, `hie-bios` etc? How do they fit together?
- Are there any component projects not mentioned in the list above that I am missing?
- When I want to open an issue, fix a bug, or add a feature, how should I go about reasoning which of these 4(+?) codebases that the change belongs in?
- Is the partitioning on these lines **essential** or a historical accident?
- Is their partitioning presently beneficial to the project? If not, what barriers exist to merging them, if any besides the fact that it hasn't been done yet?

I open this issue as a way for me to start trying to contribute to tools in the best way I know how, which begins with some documentation on the architecture of hls.

I want to end with an anecdote about why I think this is important.

A few weeks ago I noticed #342 and opened an issue for it. It seems like something that was going to be within my grasp to fix, but the rabbit hole got deep fast. I was pointed to `ghcide` as the source of the problem, which in turn seemed to point to the idea that the problem was in `haskell-lsp` (yet another project I had not heard of). At this point I lost confidence in my ability to help the situation. It turned out alright as it looks like the issue was fixed in the last few days, but I can't help but think that the project would be better off if people such as myself were able to guide themselves quickly to the place where they could hack on things that weren't 100% local to the `hls` repo itself.

TL;DR If you have any information on the architecture of `hls` either by links to blog posts or know-how inside your head, drop them in this thread and I will try to compile them into a document inside this repository.

贡献指南

这个仓库没有索引到贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。