Commit log

ddd7ab1 Do not convert lsp::Location of hint labels before resolve

Kirill Bulatov created

d6ffb68 Fix bugs in autoscroll with 'fit' strategy (#2893)

Click to expand commit body
This fixes a bug where text moved up and down by one pixel in the buffer
search query editor, while typing.

Release  notes:
* Fixed a bug where editors didn't auto-scroll when typing if all
cursors could not fit within the viewport.

Max Brunsfeld created

2495d65 Un serialize project search (#2857)

Click to expand commit body
This is the first batch of improvements to current project search. There
are few things we can do better still, but I want to get this out in
next Preview.
Most of the slowness at this point seems to stem from updating UI too
often.

Release Notes:
- Improved project search by making it report results sooner.

---------

Co-authored-by: Julia Risley <julia@zed.dev>

Piotr Osiewicz and Julia Risley created

a3b2c03 Fix bugs in autoscroll with 'fit' strategy

Click to expand commit body
* Scroll to the newest cursor if all cursors can't fit in the viewport.
* Refuse to layout an editor less tall than one line height.

Co-authored-by: Nathan <nathan@zed.dev>

Max Brunsfeld and Nathan created

6fdf101 Update database and RPC to provide configured feature flags

Mikayla created

dee1a43 A few more fixes for wrapped line motions

Conrad Irwin created

20aa2a4 vim: Fix relative line motion

Click to expand commit body
Before this change up and down were in display co-ordinates, after this
change they are in fold coordinates (which matches the vim behaviour).

To make this work without causing usabliity problems, a bunch of extra
keyboard shortcuts now work:

- vim: `z {o,c}` to open,close a fold
- vim: `z f` to fold current visual selection
- vim: `g {j,k,up,down}` to move up/down a display line
- vim: `g {0,^,$,home,end}` to get to start/end of a display line

Fixes: zed-industries/community#1562

Conrad Irwin created

0280d5d vim change for wrapped lines

Conrad Irwin created

104f5ae relative line numbers (#2887)

Click to expand commit body
- Add relative_line_mode
- vim change for wrapped lines

Release Notes:

- Add a `relative_line_numbers` setting
([#988](https://github.com/zed-industries/community/issues/998)).

Conrad Irwin created

c1fd648 Add setting to automatically enable virtual environment (#2882)

Click to expand commit body
This isn't ready to go - I'm opening a PR to ask for some advice. When
activating a python virtual environment, the typical command used is
`source path_to_venv/bin/activate`. The problem is, the activatate
script isn't portable to all shells, so some additional scripts are
bundled in the env, for example, `activate.fish`. We don't have a good
way of knowing what shell we are in, in order to know what script to
run.

Julia gave the alternative of simply activating the virtual environment
while in the zsh context, before the user's custom shell is launched,
which I think does work, but because we activate the virtual environment
before we launch the custom shell, the shell isn't really aware that we
are in the virtual environment and it fails to display the information
in the prompt that is typically shown after activating.

Is there a clean way for us to know for a fact what shell is being ran,
so we know what script to run?

Check out the code comments below for more context.

---


https://github.com/zed-industries/zed/assets/19867440/ddb76aaa-152b-4c93-a513-3cd580b7c40f

I've used Zed to write Python scripts, but working on an actual project
has really magnified where Python dev is falling short. A huge
quality-of-life thing we can do is provide a setting to automaticaly
search for and activate virtual environments when found, when terminals
are created. Manually starting these up in every terminal instance is
such a drag.

A few quirks:
- We don't have a way of knowing if the prompt is ready before we try
run the command, which means we see the text inserted at the top of the
terminal and on the prompt - I dont think this should be a blocker
though.
- If a user has multiple python projects with mutliple virtual
environments, we only detect and activate the first one, since can't
really make any assumptions about which one to activate. I dont think
this should be a blocker either, as I think most users will have a
single project open in Zed.

Release Notes:

- Added a `detect_venv` setting for the terminal. When configured, the
Zed terminal will automatically activate Python virtual environments on
terminal creation.

Joseph T. Lyons created

507a5db WIP

Click to expand commit body
Co-Authored-By: Mikayla Maki <mikayla.c.maki@gmail.com>

Joseph T. Lyons and Mikayla Maki created

bde67b2 Fix merge-conflict

Conrad Irwin created

1c945a7 Fix zed-industries/community#1950 (#2892)

Click to expand commit body
Release Notes:

- vim: fix goal preservation of visual block selections
([#1950](https://github.com/zed-industries/community/issues/1950)).

Conrad Irwin created

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

Conrad Irwin created

790aa5d Add relative_line_mode

Click to expand commit body
Co-Authored-By: joseph@zed.dev

Conrad Irwin and joseph@zed.dev created

1f3e009 Fix zed-industries/community#1950

Conrad Irwin created

f798be6 Fix rust 1.72 warnings about shadowed glob re-exports

Max Brunsfeld created

404f767 Format let-else statements

Max Brunsfeld created

732af20 Upgrade to rust 1.72

Max Brunsfeld created

7c5200e More styling

Antonio Scandurra created

c4966ff Remove warning

Antonio Scandurra created

75a6a94 Add placeholder text for inline assistant prompts

Antonio Scandurra created

44c340b Properly invalidate the hint cache

Kirill Bulatov created

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

Kirill Bulatov created

2b95f05 Fix the tests

Kirill Bulatov created

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

Antonio Scandurra created

0444b5a :lipstick:

Antonio Scandurra created

8ed280a Rebase fixes

Kirill Bulatov created

e44516c Add hover tests

Kirill Bulatov created

f19c659 Add link_go_to_definition test for inlays

Kirill Bulatov created

abd2d01 Properly binary search cached inlay hints

Kirill Bulatov created

3c55c93 Be more lenient with hint resolution, always return some hint

Kirill Bulatov created

852427e Use inlay highlights in randomized tests

Kirill Bulatov created

7cd60d6 Simplify and restore client resolve capabilities

Kirill Bulatov created

dcf570b Fix resolve status conversion

Kirill Bulatov created

bcaff0a Propagate inlay background highlights to data storage

Kirill Bulatov created

4b78678 Prepare background highlights for inlay highlights

Kirill Bulatov created

12ffbe5 Unify text and inlay highlights

Kirill Bulatov created

420f8b7 Prepare for inlay and text highlight unification

Kirill Bulatov created

4cc9f2f Highlight inlay hint parts on cmd-hover

Click to expand commit body
Co-Authored-By: Antonio <antonio@zed.dev>

Kirill Bulatov and Antonio created

f8874a7 Attempt to highlight inlays

Kirill Bulatov created

6c5761d Pass inlay highlight information

Kirill Bulatov created

477fc86 Properly resolve inlay label parts' locations and buffers

Kirill Bulatov created