Description
People often complain about the memory consumption and responsiveness of HLS. This has led to some alternative efforts including 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.