ghcide/exe
Matthew Pickering d999084820
Use stale information if it's available to answer requests quickly (#624)
* Use stale information for hover and completions

This introduces a new function `useWithStaleFast` which returns with
stale information WITHOUT checking freshness like `use` and
`useWithStale`.

Greatly improve debug logging

All actions triggered by shakeRun now also pass an identifier which
means that the debug logging shows which actions are starting/finishing

We also distinguish between internal and external events. By default
external events are ones triggered by runAction and the debug output
is displayed to the user in command line and --lsp mode.

In order to see internal logging statements, there is a new flag called
--verbose which also prints out internal events such as file
modification flushes.

Cleaner variant using runAfter

Step 1: Do not run actions with shakeRun

Queue implementation, living, breathing

Use a priority queue to schedule shake actions.

Most user actions are answered immediately with a cache but also
spawn a shake action to check the cached value we consulted was up to
date.

* Remove DelayedActionExtra

* hlint

* Fix progress

* Always block instead of fail on initial computation

* Can block for code lens

* Update docs

Co-authored-by: Zubin Duggal <zubin@cmi.ac.in>
2020-06-30 11:22:20 +02:00
..
Arguments.hs Use stale information if it's available to answer requests quickly (#624) 2020-06-30 11:22:20 +02:00
Main.hs Use stale information if it's available to answer requests quickly (#624) 2020-06-30 11:22:20 +02:00
Utils.hs Multi Component (#522) 2020-06-02 14:44:16 +02:00