Skip to content

Commit 4627060

Browse files
authored
Add two more HLS project ideas (#181)
1 parent 3895e51 commit 4627060

File tree

2 files changed

+59
-0
lines changed

2 files changed

+59
-0
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
title: Haskell Language Server: Cabal Plugin Continuation
3+
---
4+
5+
The [`hls-cabal-plugin`](https://github.com/haskell/haskell-language-server/tree/master/plugins/hls-cabal-plugin) is a Haskell Language Server (HLS) plugin that allows HLS to be a Language Server for `.cabal` files as well as Haskell files.
6+
While the plugin already provides many core features, there are more possible features that would increase the ergonomics of working with cabal files, such as:
7+
8+
* Goto-Definition for local stanzas, such as library, executable or common stanzas
9+
* Integrating the [`cabal-add`](https://github.com/haskell/haskell-language-server/issues/3853) into HLS
10+
* Prompt to add unknown modules to `exposed-modules` and `other-modules` sections.
11+
* Completion of local and non-local package names
12+
* Completion of package version bounds
13+
* Showing documentation for keywords and enum values.
14+
15+
With some creativity, we can come up with many more features.
16+
17+
**Mentorship**
18+
19+
Fendor
20+
21+
**Difficulty and size**
22+
23+
The difficulty of this project is medium, as there are two rather big existing projects that developers need to understand in order to provide improvements.
24+
25+
The estimated size of this project is 175 hours, but there is likely 350 hours worth of work depending on the mentee's interests and ideas.
26+
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
---
2+
title: Haskell Language Server: Test suite Improvements
3+
---
4+
5+
Haskell Language Server (HLS) has an extensive test suite that is run on every commit.
6+
Over time, the test suite has degraded in performance, reliability and consistency.
7+
This has become a bottleneck in the development of HLS, as a slow and unreliable test suite deters new contributors and makes life more difficult for maintainers.
8+
9+
This project aims to improve the quality of the test suite by:
10+
11+
* Reducing the overall test suite execution time
12+
* Fixing flaky test cases
13+
* Removing artificial wait times in test cases
14+
* Unifying the style of tests in HLS
15+
16+
The issue [#3736](https://github.com/haskell/haskell-language-server/issues/3736) provides some ideas on how to improve the test suite further.
17+
18+
To achieve the aforementioned goals, some of the following intermediate steps could be helpful:
19+
20+
* Unifying testing infrastructure of ghcide and plugins
21+
* Enabling parallelism of test case execution
22+
* Exploiting custom LSP messages to reduce flakiness of tests written in lsp-test
23+
24+
**Mentorship**
25+
26+
Fendor
27+
28+
**Difficulty and size**
29+
30+
The project itself is not too difficult, as there is lots of prior work and many low hanging fruits.
31+
However, there is a fair amount of working with the internals of Haskell Language Server which can be intimidating as they tend to be underdocumented.
32+
33+
The size of this project ranges from 175 hours up to 350 hours, depending on the exact scope of the proposal.

0 commit comments

Comments
 (0)