Commit Graph
5172 Commits
Author SHA1 Message Date
Kirill Bulatov 984505c584 Fix wrong assertion in the test 2023-08-31 14:31:43 +03:00
Kirill Bulatov f5e0c28971 Fix project tests 2023-08-31 13:01:53 +03:00
Julia 3faabbe91a Merge branch 'main' into multi-server-completions-tailwind 2023-08-30 22:58:37 -04:00
Max BrunsfeldandMikayla 820cb00d62 Fix cursor colors of non-followed collaborators
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-08-30 14:14:18 -07:00
Antonio Scandurra 8f85b1a536 Introduce code generation (#2901)
![CleanShot 2023-08-28 at 12 24
36@2x](https://github.com/zed-industries/zed/assets/482957/f97cb399-1ac2-4fa9-94a7-137d1eec711c)


Release Notes:

- Added a new "Inline Assist" feature that lets you transform a
selection or generate new code at the cursor location by hitting
`ctrl-enter`.
2023-08-30 14:58:22 +02:00
Nathan Sobo 369e542607 Move views_to_notify_if_ancestors_change to Window 2023-08-29 21:58:44 -06:00
Nathan Sobo 07a33439b7 Store new_parents on Window instead of layout context 2023-08-29 21:43:48 -06:00
Conrad Irwin d614796305 Fix find_{,preceding}boundary to work on buffer text
Before this change the bounday could mistakenly have happened on a soft
line wrap.

Also fixes interaction with inlays better.
2023-08-29 18:03:29 -07:00
Kirill BulatovandMax 54fc1eeed6 Do not blink the cursor if Zed window is focused away
co-authored-by: Max <max@zed.dev>
2023-08-29 21:33:03 +03:00
Conrad Irwin a30017333b vim: Fix relative motions (#2888)
This changes vim motions to be relative to fold lines, not display
lines, to match the behaviour of vim.

This is necessary for relative line numbers to make sense (as the most
important thing is you can do `3j` to get th e line that is numbered 3).


Release Notes:

- vim: Fix handling of motions when `soft_wrap` is enabled in zed. Like
in vim `j,k,up,down,$,^,0,home,end` will all now navigate in file
coordinates not display coordinates.
- vim: Add `g {j,k,up,down,$,^,0,home,end}` to navigate in display
coordinates.
- vim: Add `z o` and `z c` to open and close folds.
- vim: Add `z f` in visual mode to fold selection.

Note: this may be a jarring change if you're grown used to the current
behaviour of `j` and `k`. You can make the issue less acute by setting
`"soft_wrap":"none"` in your settings; or you can manually copy the
bindings for `g j` to the binding for `j` (etc.) in your keymap.json to
preserve the existing behaviour.
2023-08-29 11:19:37 -07:00
JuliaandAntonio Scandurra ce0038a8ab Style language server name in completion menu
Omit in buffers with one or zero running language servers with the
capability to provide completions

Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-08-29 11:21:02 -04:00
Max Brunsfeld d8df0315ad Update some tests to reflect code action debouncing 2023-08-28 17:45:32 -07:00
Max Brunsfeld 9e19be9731 Debounce document highlight and code actions requests 2023-08-28 15:48:55 -07:00
JuliaandKirill Bulatov f197a59d69 Initial unstyled language server short name in completions
Co-Authored-By: Kirill Bulatov <kirill@zed.dev>
2023-08-28 11:27:45 -04:00
Antonio Scandurra 40c8e5b9ef Allow redoing edits performed by inline assistant after cancelling it 2023-08-28 14:42:52 +02:00
Antonio Scandurra f1f1a5f367 Close inline assist when the associated transaction is undone 2023-08-28 14:23:42 +02:00
Antonio Scandurra bafdbdc38c Merge remote-tracking branch 'origin/main' into ai-refactoring 2023-08-28 12:16:24 +02:00
Piotr Osiewicz 0818c0d178 language: Make Buffer::new take an explicit ID (#2900)
See Linear description for the full explanation of the issue. This PR is
mostly a mechanical change, except for the one case where we do pass in
an explicit `next_id` instead of `model_id` in project.rs.

Release Notes:
- Fixed a bug where some results were not reported in project search in
presence of unnamed buffers.
2023-08-28 11:51:50 +02:00
Kirill Bulatov fd8f077f1e Fix the tests 2023-08-27 19:41:15 +03:00
Kirill Bulatov 66c0edabf9 Do not allow cmd+click in invalid inlay context 2023-08-27 19:12:32 +03:00
Kirill Bulatov b99490c834 Properly compare previous hover trigger point when hover changes 2023-08-27 18:23:40 +03:00
Kirill Bulatov 76f80dbcec Better highlight hint ranges 2023-08-27 15:14:45 +03:00
Kirill Bulatov d589c4d216 Use better names, simplify 2023-08-27 00:01:31 +03:00
Kirill Bulatov 6a4f0cd18e Properly omit throttled hint queries 2023-08-26 21:12:04 +03:00
Kirill Bulatov 4d6415f9ed Properly react on excerpts drop 2023-08-26 15:21:45 +03:00
Kirill Bulatov cf79b8d85b Properly handle padding when highlighting inlay hints 2023-08-26 15:04:48 +03:00
Kirill Bulatov ab35140055 Invalidate skipped throttled hint fetch tasks' ranges 2023-08-26 14:47:42 +03:00
Kirill Bulatov 8791df82f1 Properly handle hover-less areas hover 2023-08-26 14:42:20 +03:00
Kirill Bulatov 167b11d9a2 Treat multibuffer edit events properly
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.
2023-08-26 14:13:24 +03:00
Kirill Bulatov 2b2e52bbbd Log LSP inlay hint path 2023-08-26 13:46:55 +03:00
Antonio Scandurra c1aaf3b9cc Add disabled style for prompt editor after confirming 2023-08-26 12:07:03 +02:00
Kirill Bulatov a04aa82af7 Limit LSP non-invalidating queries 2023-08-26 13:06:50 +03:00
Antonio Scandurra f06007e7ae Allow multiple inline assistant highlights at once 2023-08-26 11:55:47 +02:00
Kirill Bulatov ae553a89cc Remove query ranges for failed inlay hint requests 2023-08-26 12:09:12 +03:00
Kirill Bulatov 9672f8a9fe Fix the test 2023-08-26 03:00:53 +03:00
Kirill Bulatov e317b0cfef Properly clip request offsets 2023-08-26 02:54:50 +03:00
Kirill Bulatov eab9b71703 Consider padding during hint highlight range mapping 2023-08-26 02:45:08 +03:00
Kirill Bulatov e9d47670f7 Defer navigation target buffer opening 2023-08-26 02:45:08 +03:00
Kirill Bulatov 302d90f819 Do not convert lsp::Location of hint labels before resolve 2023-08-26 02:45:08 +03:00
Max Brunsfeld 768fffa61b Fix bugs in autoscroll with 'fit' strategy (#2893)
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.
2023-08-25 16:36:33 -07:00
Piotr OsiewiczandJulia Risley f5c0e79be1 Un serialize project search (#2857)
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>
2023-08-26 01:31:52 +02:00
Max BrunsfeldandNathan b50ee14c60 Fix bugs in autoscroll with 'fit' strategy
* 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>
2023-08-25 16:13:12 -07:00
JuliaandMax Brunsfeld 1d63cf0ca0 Add word_characters to language overrides & use for more things
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>
2023-08-25 18:46:30 -04:00
Conrad Irwin 389a5ebabc vim: Fix relative line motion
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
2023-08-25 14:40:04 -06:00
Conrad Irwin e29325168c Fix merge-conflict 2023-08-25 11:59:16 -06:00
Conrad Irwin 7bd7a4728a Fix relative line numbers in vim visual mode
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.
2023-08-25 11:50:41 -06:00
Conrad Irwin 9604cbd934 Fix relative line numbers when newest cursor offscreen 2023-08-25 11:50:41 -06:00
Conrad Irwinand af7c4ea748 Add relative_line_mode
Co-Authored-By: joseph@zed.dev
2023-08-25 11:50:41 -06:00
Max Brunsfeld 0596c2f103 Format let-else statements 2023-08-25 10:11:32 -07:00
Kirill Bulatov 75dda334bb Properly invalidate the hint cache 2023-08-25 17:33:17 +03:00