Open soulomoon opened 1 month ago
Instead of scattering the cache system between hls-graph and ghcide. There might be a better idea, we can migrate the cache system to hls-graph. Since the scattering leads to some hard debugging bugs like https://github.com/haskell/haskell-language-server/pull/4185 https://github.com/haskell/haskell-language-server/issues/4093, although they've been solved.
But it is hard, It would require us to make a very good abstract of the current handling logic. And reimplement the following in hls-graph:
dirtykeys
state
data Value v
FileVersion
PositionDelta
estimateFileVersionUnsafely
lastValueIO
PositionMapping
But we can take steps to do it too.
Instead of scattering the cache system between hls-graph and ghcide. There might be a better idea, we can migrate the cache system to hls-graph. Since the scattering leads to some hard debugging bugs like https://github.com/haskell/haskell-language-server/pull/4185 https://github.com/haskell/haskell-language-server/issues/4093, although they've been solved.
But it is hard, It would require us to make a very good abstract of the current handling logic. And reimplement the following in hls-graph:
dirtykeys
andstate
. And monitering is happening in ghcide.data Value v
that wrapFileVersion
andPositionDelta
.estimateFileVersionUnsafely
lastValueIO
and it is entangling withPositionMapping
But we can take steps to do it too.