Kirill Bulatov
748e7af5a2
Add a test
2023-07-11 17:10:34 +03:00
Kirill Bulatov
e6ec0af743
Remove redundant hint kind checks in tests
2023-07-06 23:27:25 +03:00
Kirill Bulatov
0b0a161626
Show inlay hints on startup for every language server with work events
...
Language servers such as typescript-language-servers report a single
work event, ending right after server's startup.
Other servers might send more similar event, also during startup.
The rest of the events are diagnostic-related and we filter them out.
React on such events with /refresh-like hint update, that will check
only the visible part of the editor for hints and might be replaced by
other /refresh requests, if needed.
2023-07-06 13:10:59 +03:00
Kirill Bulatov
d7f6b5e1a0
Remove InlayProperties
2023-07-05 16:17:14 +03:00
Kirill Bulatov
ae54e1d224
Remove excessive hint update queries
...
* Filter out queries for outdated buffers just before hint tasks spawn:
multicared edits might empit standalone events simultaneously
* Only spawn inlay update tasks for visible buffers with corresponding
language
* Do not spawn tasks for local projects' buffers without LSP servers
2023-06-30 22:03:21 +03:00
Kirill Bulatov
b146762f68
Remove a flacky test, fix the failing one
2023-06-29 22:45:04 +03:00
Kirill Bulatov
652909cdba
Post-rebase fixes
2023-06-29 22:39:33 +03:00
Kirill Bulatov
3445bc42b6
Invalidate refresh tasks better
2023-06-29 22:39:18 +03:00
Kirill Bulatov
98edc0f885
Simplify the hint cache code
2023-06-29 22:39:18 +03:00
Kirill Bulatov
083e4e76e2
Better tests, invalidate multibuffer excerpts better
2023-06-29 22:39:18 +03:00
Kirill Bulatov
943c93fda7
Simplify hint task queueing
2023-06-29 22:39:18 +03:00
Kirill Bulatov
30e77aa388
More inlay hint cache tests
2023-06-29 22:39:18 +03:00
Kirill Bulatov
0972766d1d
Add more hint tests
2023-06-29 22:39:18 +03:00
Kirill Bulatov
667b70afde
Move hint settings on the language level
2023-06-29 22:39:18 +03:00
Kirill Bulatov
480d8c511b
Theme hints and suggestions differently
2023-06-29 22:39:18 +03:00
Kirill Bulatov
2c54d926ea
Test inlay hint cache
2023-06-29 22:39:18 +03:00
Kirill Bulatov
67214f0e55
Only skip /refresh inlay queries when vislble range is not updated
2023-06-29 22:25:50 +03:00
Kirill Bulatov
096bad1f73
Revert useless changes, simplify
2023-06-29 22:25:50 +03:00
Kirill Bulatov
5c21ed4263
Properly filter out task hints
2023-06-29 22:25:50 +03:00
Kirill Bulatov
11fee4ce42
Do not eagerly cancel running tasks
2023-06-29 22:25:49 +03:00
Kirill Bulatov
4d4544f680
Split excerpts into mutliple ranges for inlay hint queries
2023-06-29 22:25:49 +03:00
Kirill Bulatov
2c7900e11b
Use excerpt visible range in query filtering
2023-06-29 22:25:49 +03:00
Kirill Bulatov
83b3a914bc
Support better inlay cache parallelization
2023-06-29 22:25:49 +03:00
Kirill Bulatov
890b164278
Forward inlay hint refresh requests to clients, test coop inlay hints
2023-06-29 22:25:49 +03:00
Kirill Bulatov
a68e68a0d9
Properly filter out new hints outside of excerpts' visible ranges
2023-06-29 22:25:49 +03:00
Kirill Bulatov
ba3d1e4dba
Deduplicate inlay hints queries with buffer versions
2023-06-29 22:25:49 +03:00
Kirill Bulatov
f25a09bfd8
Avoid excessive allocations with Arc around excerpt cached inlays
2023-06-29 22:25:49 +03:00
Kirill Bulatov
48982c3036
Filter away new hints not in excerpt range
2023-06-29 22:25:49 +03:00
Kirill Bulatov
316e19ce94
Remove stale cancelled inlay hints workaround
2023-06-29 22:25:49 +03:00
Kirill Bulatov and Max Brunsfeld
96a34ad0ee
Use text anchors as hint position in hints cache
...
co-authored-by: Max Brunsfeld <max@zed.dev >
2023-06-29 22:25:49 +03:00
Kirill Bulatov
cb4b92aa61
Simplify hint event management slightly
2023-06-29 22:25:49 +03:00
Kirill Bulatov
d59e91aff2
Insert new hints into cache better
2023-06-29 22:25:49 +03:00
Kirill Bulatov
d6828583d8
Box the cache for better performance
2023-06-29 22:25:49 +03:00
Kirill Bulatov
1722d61190
Mitigate odd offset calculations
2023-06-29 22:25:49 +03:00
Kirill Bulatov
7fddc223cd
Move away heavy inlay computations into background tasks
2023-06-29 22:25:49 +03:00
Kirill Bulatov
31f0f9f7b1
Forbid extra inlay updates
2023-06-29 22:25:49 +03:00
Kirill Bulatov
97e5d40579
Add snapshot version to use when avoiding wrong state updates
2023-06-29 22:25:49 +03:00
Kirill Bulatov
8d982a6c2d
Finish modelling
2023-06-29 22:25:49 +03:00
Kirill Bulatov
4c78019317
Start to model the background threads for InlayHintCache
2023-06-29 22:25:49 +03:00
Kirill Bulatov
2f1a27631e
React on multibuffer scrolls again
2023-06-29 22:25:49 +03:00
Kirill Bulatov
a31d3eca45
Spawn cache updates in separate tasks
2023-06-29 22:25:49 +03:00
Kirill Bulatov
3b9a2e3261
Do not track editor ranges in InlayHintCache
2023-06-29 22:25:49 +03:00
Kirill Bulatov
70a45fc800
Fix cache incremental updates
2023-06-29 22:25:49 +03:00
Kirill Bulatov
7ac1885449
Properly refresh hints on editor open
2023-06-29 22:25:49 +03:00
Kirill Bulatov
debdc3603e
Finish rest of the inlay cache logic
2023-06-29 22:25:49 +03:00
Kirill Bulatov
ddcbc73bf0
Implement inlay hint replaces for conflict-less case
2023-06-29 22:25:49 +03:00
Kirill Bulatov
6368cf1a27
Merge excerpt-related hint data, move next_inlay_id into Editor
2023-06-29 22:25:49 +03:00
Kirill Bulatov
8c03e9e122
Move InlayId generation back to InlayCache
2023-06-29 22:25:49 +03:00
Kirill Bulatov
e82b4d8957
Properly handle hint addition queries
2023-06-29 22:25:49 +03:00
Kirill Bulatov
5322aa09b9
Properly handle settings toggle
2023-06-29 22:25:49 +03:00