haskell / haskell/haskell-language-server

"No compilation" mode

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

Description

People often complain about the memory consumption and responsiveness of HLS. This has led to some alternative efforts including [static-ls](https://github.com/josephsumabat/static-ls), which remarkably just doesn't try to compile files at all, it relies entirely on `hiedb` and ahead-of-time indexing.

I wonder if we could in principle do something similar for HLS. We could have a "no compilation" mode that just makes the typechecking/code-gen rules fail unconditionally. Then in principle everything that doesn't rely on typechecking should still work. We might need to make some changes to make things that rely on typechecking fail gracefully (providing what information they have), but in principle we should be able to e.g. have completions from hiedb even if we don't have the typechecked source stored.

I don't know if we index the user's modules into hiedb, but we could potentially also do that and aggressively avoid keeping the results in memory. Then we would do some compilation, we just wouldn't keep the results around.

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.