Commit Graph
11676 Commits
Author SHA1 Message Date
Nathan Sobo 48d3e2d9b9 Move views_to_notify_if_ancestors_change to Window 2023-08-29 21:58:44 -06:00
Nathan Sobo 2e7356a53e Store new_parents on Window instead of layout context 2023-08-29 21:43:48 -06:00
Nathan Sobo 42cd257287 Remove text style stack from LayoutContext 2023-08-29 21:33:08 -06:00
Nathan Sobo 81957c49d5 Merge remote-tracking branch 'origin' into divs 2023-08-29 21:14:14 -06:00
Nathan Sobo a0b6e500cf WIP 2023-08-29 18:40:24 -06:00
Nathan Sobo a56fab8c11 Remove unused proc macro 2023-08-29 18:30:57 -06:00
Max Brunsfeld e7ba5a1edb Search UI polish (#2904)
This PR polishes the search bar UI, making the layout more dense, and
the spacing more consistent with the rest of the app. I've also
re-ordered the toolbar items to reflect some of @iamnbutler's original
search designs. The items related to the search query are on the left,
and the actions that navigate the buffer (next, prev, select all, result
count) are on the right.
2023-08-29 12:53:32 -07:00
Conrad Irwin dd577074f2 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
Kirill Bulatov 859ac1e97f Add a default binding for toggling inlay hints (#2910)
Release Notes:

- Add a `"ctrl-shift-:": "editor::ToggleInlayHints"` default binding
2023-08-29 21:09:46 +03:00
Nate Butler e89ccf2e26 Remove unused label_button 2023-08-29 14:09:31 -04:00
Nate Butler f0ab27a83d Reorder "Select All" button 2023-08-29 14:04:17 -04:00
Kirill Bulatov bbb222b6fc Add a default binding for toggling inlay hints 2023-08-29 20:56:26 +03:00
Nate Butler f626c61b1e Update action_button style 2023-08-29 13:40:58 -04:00
Nate Butler f6faeea720 Add disabled as an option on text_button 2023-08-29 13:40:46 -04:00
Nate Butler 05da4b740a Update spacing, button heights 2023-08-29 13:28:06 -04:00
Nate Butler a5b12d535f Add margin and padding functions 2023-08-29 13:06:13 -04:00
Nate Butler 53558bc603 Remove baseurl to prevent theme import issue 2023-08-29 13:05:59 -04:00
Max Brunsfeld 7ae5ee699f Debounce code action and document highlight requests (#2905)
Lately, I've been finding Rust-analyzer unusably slow when editing large
files (like `editor_tests.rs`, or `integration_tests.rs`). When I
profile the Rust-analyzer process, I see that it sometimes saturates up
to 10 cores processing a queue of code actions requests.

Additionally, sometimes when collaborating on large files like these, we
see long delays in propagating buffer operations. I'm still not sure why
this is happening, but whenever I look at the server logs in Datadog, I
see that there are remote `CodeActions` and `DocumentHighlights`
messages being processed that take upwards of 30 seconds. I think what
may be happening is that many such requests are resolving at once, and
the responses are taking up too much of the host's bandwidth.

I think that both of these problems are caused by us sending way too
many code action and document highlight requests to rust-analyzer. This
PR adds a simple debounce between changing selections and making these
requests.

From my local testing, this debounce makes Rust-analyzer *much* more
responsive when moving the cursor around a large file like
`editor_tests.rs`.
2023-08-29 09:30:36 -07:00
Piotr Osiewicz ea0e5e880e chore: Use IsTerminal trait instead of relying on libc to detect stdout being a terminal (#2908)
IsTerminal was added in 1.70.

Release Notes:
- N/A
2023-08-29 15:56:50 +02:00
Nathan Sobo 396558755e Testing: Update build script to make local testing easier (#2903)
* `script/bundle -l` will only build for the current architecture and
skip DMG creation. It will also copy to `/Applications`.
* `script/bundle -l "My Bundle"` will name the bundle after your
provided name.
* Passing `-f` will overwrite. Passing `-o` will also open the
application.
2023-08-29 07:07:35 -06:00
Kirill Bulatov 1c6964ee96 Trim off surrounding [] when parsing terminal hover links (#2906)
Follow-up of https://github.com/zed-industries/zed/pull/2899

Terminal has to accept `[` and `]` as valid word parts, due to
`[slug].tsx` being a valid file name.
Yet, terminal has to exclude these to match paths in strings like
`[/some/path/[slug].tsx]`.

Release Notes:

- N/A
2023-08-29 10:49:33 +03:00
Kirill Bulatov 7c498feb85 Trim off surrounding [] when parsing terminal hover links
Terminal has to accept `[` and `]` as valid word parts, due to
`[slug].tsx` being a valid file name.
Yet, terminal has to exclude these to match paths in strings like
`[/some/path/[slug].tsx]`.
2023-08-29 10:40:20 +03:00
Max Brunsfeld 791f6cf9e7 Update some tests to reflect code action debouncing 2023-08-28 17:45:32 -07:00
Max Brunsfeld 5142049515 Demote some Peer logging to trace level 2023-08-28 17:45:19 -07:00
Max Brunsfeld 89eab78cf7 Debounce document highlight and code actions requests 2023-08-28 15:48:55 -07:00
Max Brunsfeld 70bea75897 Change cycle mode action to reflect new mode button order 2023-08-28 15:15:54 -07:00
Nathan SoboandMikayla Maki 9371754942 Provide themes to subtrees via context
Co-Authored-By: Mikayla Maki <mikayla@zed.dev>
2023-08-28 16:07:26 -06:00
Max Brunsfeld 3eee282a6b Overhaul search bar layout
* Use a single row, instead of centering the search bar within a double-row toolbar.
* Search query controls on the left, navigation on the right
* Semantic is the final mode, for greater stability between buffer and project search.
* Prevent query editor from moving when toggling path filters
2023-08-28 14:20:09 -07:00
Max Brunsfeld 78f9a1f280 Remove padding from workspace toolbar, increase its content height to compensate
The padding makes it difficult to layout toolbar items correctly when they are more than one row tall.
2023-08-28 14:18:30 -07:00
Max Brunsfeld bb448b91d5 Don't add a quick actions toolbar item for non-editor views
Rather than adding primary toolbar item that renders as empty,
don't add an item at all. This prevents spurious spacing from
being added after other primary toolbar items.
2023-08-28 14:16:45 -07:00
Max Brunsfeld 9521f6da42 Simplify implementation of flex with spacing 2023-08-28 14:16:21 -07:00
Nathan SoboandMikayla Maki fd1633ac4b Render a titlebar you can barely see
Co-Authored-By: Mikayla Maki <mikayla@zed.dev>
2023-08-28 14:24:27 -06:00
Nathan SoboandMikayla Maki b5aedc144d Allow layout to be called on element in any phase of its lifecyle.
Co-Authored-By: Mikayla Maki <mikayla@zed.dev>
2023-08-28 14:23:16 -06:00
Nathan Sobo a1d2ae3095 Add -l option to build script
When you pass -l, we build for the local architecture only and copy the
resulting app bundle to /Applications. You can provide a bundle name as
an optional argument.
2023-08-28 13:32:30 -06:00
Max Brunsfeld 04354675ca Remove search dismiss button 2023-08-28 10:35:23 -07:00
Piotr Osiewicz 9aad602af7 chore: Bump memchr to 2.6.0 (#2902)
Fresh off the press, memchr 2.6.0 adds vector search routines for
aarch64. That directly improves our search performance for both text and
regex searches. Per BurntSushi's claims, the simple string searches in
ripgrep got ~2 times faster (more details available in
https://github.com/BurntSushi/memchr/pull/129).

Release Notes:

- N/A
2023-08-28 18:20:10 +02:00
Piotr Osiewicz 07b9c6c302 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 81a5043b61 Allow [ and ] symbols in terminal links (#2899)
Deals with https://github.com/zed-industries/community/issues/1865

` ./src/pages/[[...slug]].tsx` is a valid file path in macOs and Linux,
and should be available for cmd-hover-click in terminal.

Release Notes:

- Allow `[` and `]` symbols in terminal links
2023-08-28 11:40:52 +03:00
Kirill Bulatov 506ec01df3 Allow [ and ] symbols in terminal links
` ./src/pages/[[...slug]].tsx` is a valid file path in macOs and Linux,
and should be available for cmd-hover-click in terminal.
2023-08-28 11:19:57 +03:00
Kirill Bulatov 3bfe78b1df Use proper property names for inlay hint resolve capabilities 2023-08-28 00:27:59 +03:00
Kirill Bulatov 805ae1be80 More inlay hover fixes (#2898)
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
2023-08-27 19:57:31 +03:00
Kirill Bulatov 38da2a587a Fix the tests 2023-08-27 19:41:15 +03:00
Kirill Bulatov 81e70905bb Do not allow cmd+click in invalid inlay context 2023-08-27 19:12:32 +03:00
Kirill Bulatov 693e91f335 Properly compare previous hover trigger point when hover changes 2023-08-27 18:23:40 +03:00
Kirill Bulatov dad64edde1 Better highlight hint ranges 2023-08-27 15:14:45 +03:00
Kirill Bulatov 5cf51211b6 Use better names, simplify 2023-08-27 00:01:31 +03:00
Kirill Bulatov 73937876b6 Properly omit throttled hint queries 2023-08-26 21:12:04 +03:00
Kirill Bulatov 851d74d5e1 Improve inlay hints management (#2897)
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
2023-08-26 16:50:12 +03:00
Kirill Bulatov f8a8b998ce Properly react on excerpts drop 2023-08-26 15:21:45 +03:00
Kirill Bulatov 84284099e2 Properly handle padding when highlighting inlay hints 2023-08-26 15:04:48 +03:00