f18cdcb
Fix relative line numbers in vim visual mode
Click to expand commit body
In visual mode when your selection ends with a newline we show the
cursor at the end of the previous line (not the start of the current
line). We had only been accounting for this if the cursor was on-screen.
Conrad Irwin
created
8d5dc26
Fix relative line numbers when newest cursor offscreen
b101a7e
Cancel last inline assist when escaping from the editor
Antonio Scandurra
created
fdbf468
Ensure the inline assistant works with gpt-3.5
Antonio Scandurra
created
205e101
Query certain editor ranges for inlays with a delay (#2891)
Click to expand commit body
Part of
https://linear.app/zed-industries/issue/Z-2750/investigate-performance-of-collaborating-on-large-files-with-inlay
Fixes
https://linear.app/zed-industries/issue/Z-2824/inlay-hints-affect-code-layout-in-multibuffer
We query hints for visible part of the screen, and two parts above and
below the visible range, of the same range (if applicable, we can be on
the edge of the document).
When rapidly typing, we do not care about the invisible range updates,
yet still query a lot of them + rust-analyzer sends /refresh hint
requests shortly after every modification too, forcing us to re-query.
Instead querying both visible and invisible ranges altogether, wait for
visible range query first and wait add a `400ms` delay afterwards before
querying the invisible ranges.
This allows any /refresh requests or rapid typing to avoid 2 extra
requests, cancelling them before they start.
Visible part of the screen is still queried after every change, without
any debouncing.
Release Notes:
- Delay certain inlay hint requests to reduce general LSP server load
c10c3e2
Only invalidate when doing first, visible range query
Kirill Bulatov
created
a63e157
Defer querying inlay hints for invisible editor ranges
Click to expand commit body
This way, only the visible part gets frequently queried on typing (and
hint /refresh requests that follow), with queries for invisible ranges
cancelled eagerly.
Kirill Bulatov
created
b50762c
Handle inlay hints resolve, support dynamic hints (#2890)
Click to expand commit body
Resolves inlay hints on hover, shows hint label parts' tooltips, allows
cmd+click to navigate to the hints' parts with locations,
correspondingly highlight the hints.
Release Notes:
- Support dynamic inlay hints
Kirill Bulatov
created
0a18aa6
Use stricter inlay range checks to avoid stuck highlights
Click to expand commit body
Often, hint ranges are separated by a single '<` char as in
`Option<Vec<u32>>`. When moving the caret from left to right, avoid
inclusive ranges to faster update the matching hint underline.
Kirill Bulatov
created
27c90f1
Merge remote-tracking branch 'origin/main' into ai-refactoring
e4b78e3
Revert "Strip off inlay hints data that should be resolved"
Click to expand commit body
Without holding all hints in host's cache, this is impossile.
Currenly, we keep hint caches separate and isolated, so this will not
work when we actually resolve.
Kirill Bulatov
created
d1cb0b3
Properly detect hovered inlay hint label part
Optimization to the Semantic Indexing Engine.
We've transitioned from a framework in which the entire project tree is
walked at each index command, to an eager queuing method, in which an
initial queue of outstanding indexing work is initialized upon workspace
creation, and then subscriptions are leveraged for file change events to
continually keep an updated view on outstanding work.
This optimization contributes towards quicker user feedback, when
initializing or using Semantic Search functionality. It also opens the
doors towards better transparency across the system on outstanding
indexing work.
Release Notes:
- Refactored index operation queue to an eager queuing framework.
- Moved semantic search initialization to workspace creation.
- Adjusted rate limiting strategy on api delays to reduce time spent
waiting for rate limits.