Commit log

3bfe78b Use proper property names for inlay hint resolve capabilities

Kirill Bulatov created

805ae1b More inlay hover fixes (#2898)

Click to expand commit body
Better handle edge cases around cmd+hover around inlays:
* distinguish between same text anchors' trigger: inlay and text
triggers can have the same anchor, but are different
* forbid cmd+click on inlay that has no label part with location
selected
* properly omit throttled inlays that are outside of the visible range

Release Notes:

- N/A

Kirill Bulatov created

38da2a5 Fix the tests

Kirill Bulatov created

81e7090 Do not allow cmd+click in invalid inlay context

Kirill Bulatov created

693e91f Properly compare previous hover trigger point when hover changes

Kirill Bulatov created

dad64ed Better highlight hint ranges

Kirill Bulatov created

5cf5121 Use better names, simplify

Kirill Bulatov created

7393787 Properly omit throttled hint queries

Kirill Bulatov created

851d74d Improve inlay hints management (#2897)

Click to expand commit body
Apply a rate limiter to hints scrolling, properly invalidate hint task
cached ranges, properly react to multibuffer events, properly highlight
hints and introduce basic debug logging for hints.

Release Notes:

- N/A

Kirill Bulatov created

f8a8b99 Properly react on excerpts drop

Kirill Bulatov created

8428409 Properly handle padding when highlighting inlay hints

Kirill Bulatov created

2a42a08 Invalidate skipped throttled hint fetch tasks' ranges

Kirill Bulatov created

9bdf76f Properly handle hover-less areas hover

Kirill Bulatov created

48659d3 Treat multibuffer edit events properly

Click to expand commit body
Miltibuffer emits edit events even if it only got an excerpt
added/removed/etc.
Separate buffer edits and trigger hint invalidation refresh for them
only, also trigger hint new lines refresh on excerpt addition events.

Kirill Bulatov created

3fc48fc Log LSP inlay hint path

Kirill Bulatov created

55bf45d Add disabled style for prompt editor after confirming

Antonio Scandurra created

e6fb909 Limit LSP non-invalidating queries

Kirill Bulatov created

658d616 Allow multiple inline assistant highlights at once

Antonio Scandurra created

2b00793 Remove query ranges for failed inlay hint requests

Kirill Bulatov created

c8e5c39 Clear selection when deploying inline assistant

Antonio Scandurra created

8ddee0e Server-sent feature flags (#2894)

Click to expand commit body
This PR adds the wiring to both the server and the client for sending
and receiving individual feature flags, as well as a client side API for
convenient access to these feature flags.

Release Notes:

- N/A

Mikayla Maki created

afdc501 Fix inlay hint bugs (#2895)

Click to expand commit body
* https://github.com/zed-industries/zed/pull/2891

Fixes ranges pointing at incorrect positions inside multi-codepoint
characters

* https://github.com/zed-industries/zed/pull/2890

Defers hint links' document URL resolution into buffer up until the
hover & cmd-click is made by the user.

Release Notes:

- N/A

Kirill Bulatov created

74565ed Add feature flags handling to the client, rewrite staff mode to a trait extension style

Mikayla created

81c6464 Fix the test

Kirill Bulatov created

e6c4802 Properly clip request offsets

Kirill Bulatov created

b2b0918 Consider padding during hint highlight range mapping

Kirill Bulatov created

665d86e Defer navigation target buffer opening

Kirill Bulatov created

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

fc457d4 Add `word_characters` to language overrides & use for more things

Click to expand commit body
Use word_characters to feed completion trigger characters as well and
also recognize kebab as a potential sub-word splitter. This is fine for
non-kebab-case languages because we'd only ever attempt to split a word
with a kebab in it in language scopes which are kebab-cased

Co-Authored-By: Max Brunsfeld <max@zed.dev>

Julia and Max Brunsfeld 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