Commit Graph
31406 Commits
Author SHA1 Message Date
Kirill Bulatov 16293ef907 Add invisibles wrapping test 2023-05-08 19:36:51 +03:00
Kirill Bulatov af7ba36856 Do not print invisibles in non-full mode editors 2023-05-08 19:36:51 +03:00
a89d1c939e Add a theme entry for whitespace, use it to style whitespaces
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Kirill Bulatov <mail4score@gmail.com>
2023-05-08 19:36:51 +03:00
Kirill Bulatov 820bc9b5b7 Fix wrapped line detection 2023-05-08 19:36:51 +03:00
Kirill Bulatov 9f008a5a69 Use more convntional name for the settings 2023-05-08 19:36:51 +03:00
Kirill Bulatov 21d1d2ec4c Add a test 2023-05-08 19:36:51 +03:00
Kirill Bulatov f670a9fac6 Do not print extra invisibles on line wraps 2023-05-08 19:36:51 +03:00
Kirill Bulatov 7530a10c4e Refactor line glyphs drawing methods 2023-05-08 19:36:51 +03:00
Kirill Bulatov e3ff9ad822 Support invisibles in the selection 2023-05-08 19:36:51 +03:00
Kirill BulatovandMax Brunsfeld b9856ce0e8 Use cached standard glyphs for invisible symbols
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2023-05-08 19:36:51 +03:00
Kirill Bulatov 7762f0fdef Add whitespaces rendering 2023-05-08 19:36:51 +03:00
Kirill Bulatov ac1ba279c2 Draw tabs with svg icons in editor code only 2023-05-08 19:36:51 +03:00
Kirill Bulatov 23ef5d3f14 Make invisibles display configurable 2023-05-08 19:36:51 +03:00
Kirill Bulatov f5f2f2ccb6 Draft invisibles' tabs display 2023-05-08 19:36:51 +03:00
Max BrunsfeldandAntonio Scandurra 6708c6cd01 Add is_tab field to chunks
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2023-05-08 19:36:51 +03:00
Julia f79cfd3b61 Prevent some cases of clipping icons due to pixel coord rounding 2023-05-08 11:42:00 -04:00
Kirill Bulatov 903078b060 Remove unused dependencies 2023-05-07 21:07:55 +03:00
Antonio Scandurra cbf84f3795 Merge pull request #2441 from zed-industries/implicit-ancestry
Determine view ancestry during layout
2023-05-05 10:58:00 +02:00
Antonio Scandurra 95deccdf8a 💄 2023-05-05 10:53:15 +02:00
Antonio Scandurra 84c00a71a1 Delay focus_in event for window activation till after layout 2023-05-05 10:47:42 +02:00
Antonio Scandurra 32a698689f Replace usages of is_parent_view_focused with is_self_focused
Previously, this was used because we didn't have access to the current
view and `EventContext` was an element-only abstraction. Now that the
`EventContext` wraps the current view's `ViewContext` we can simply check
for the view's focus and avoid querying ancestors.
2023-05-05 10:08:22 +02:00
Antonio Scandurra 4277027223 Make focusing the parent an effect to avoid querying ancestors 2023-05-05 10:04:54 +02:00
Joseph T. Lyons 3a125b2a44 Merge pull request #2447 from zed-industries/fix-auto-update
Do not use post_json() to auto update
2023-05-04 17:15:09 -04:00
Mikayla Maki 637a3f37c6 Rearrange the state machine 2023-05-04 13:45:31 -07:00
Julia cac502638d Fixup cases using buffer model handle id as buffer id 2023-05-04 12:32:31 -04:00
JuliaandAntonio Scandurra 99d1c15ccc Offload text::Buffer construction to background worker
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2023-05-04 12:32:31 -04:00
JuliaandAntonio Scandurra 03e9b764b1 Store history base text as rope
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2023-05-04 12:32:31 -04:00
Joseph Lyons 6aefd6a391 Do not use post_json() to auto update 2023-05-04 12:12:36 -04:00
Antonio Scandurra 206e64d67d Merge branch 'main' into implicit-ancestry 2023-05-04 17:19:06 +02:00
Antonio Scandurra 0b9c6ad77d Use Workspace::toggle_sidebar_item when clicking on sidebar button
Previously, we were mistakenly using `Sidebar::toggle_item`, which only
performs part of the toggle operation.
2023-05-04 17:06:37 +02:00
Antonio Scandurra 1703c954bd Avoid calling update_window twice in blurred event handler
This was preventing us from unhooking vim when performing a rename,
which prevented typing in the rename editor.
2023-05-04 16:18:01 +02:00
Antonio Scandurra fe1bf384fc Merge pull request #2442 from zed-industries/filter-vim-commands
Filter out vim commands when vim mode is disabled
2023-05-04 15:00:19 +02:00
Antonio Scandurra 51542daadd Filter out vim commands when vim mode is disabled 2023-05-04 14:52:34 +02:00
Antonio Scandurra 3c580153ed Merge branch 'main' into implicit-ancestry 2023-05-04 14:39:58 +02:00
Antonio Scandurra 5473d8f556 Fix panic when opening multiple definitions in a multibuffer
The editor is on the stack, so adding an item to the `Pane` containing
the editor will cause a double borrow and a consequent panic. This
commit fixes the issue by deferring the opening of the definitions.
2023-05-04 14:34:42 +02:00
Antonio Scandurra e9f26b3816 Verify keystrokes can be queried while views are on the stack 2023-05-04 12:09:32 +02:00
Antonio Scandurra 1b1f2a3e5e Avoid re-allocating KeymapContext after every view notification 2023-05-04 12:04:30 +02:00
Antonio Scandurra 9be6185828 Cache view's type id and keymap context into a separate map
During `layout`, we now pass a mutable reference to the element's
parent view. This is a recursive process that causes the view to
be removed from `AppContext` and then re-inserted back into it once
the layout is complete.

As such, querying parent views during `layout` does not work as such
views will have been removed from `AppContext` and not yet re-inserted
into it. This caused a bug in `KeystrokeLabel`, which used the `keystrokes_for_action`
method to query its ancestors to determine their type id and keymap context.

Now, any time a view notifies, we will cache its keymap context so that
we don't need to query the parent view during `layout`.
2023-05-04 10:47:56 +02:00
Antonio Scandurra 65cae21800 Remove stray dbg! statement 2023-05-04 09:56:49 +02:00
Antonio Scandurra f5c0e2c314 Remove WindowContext::is_child_focused 2023-05-04 09:53:35 +02:00
Antonio Scandurra 26e6251af7 Make dispatch_event related methods public to the crate only 2023-05-04 09:53:35 +02:00
Antonio Scandurra 8c31093cc3 Ensure querying keystrokes or actions is safe
This is achieved by moving `available_actions` into `AsyncAppContext` (where
we know no view/window is on the stack) and `keystrokes_for_action` into `LayoutContext`
where we'll fetch the previous frame's ancestors and notify the current view if those
change after we perform a layout.
2023-05-04 09:53:31 +02:00
Joseph Lyons d4e4c5b885 collab 0.11.0 2023-05-03 14:59:04 -04:00
Joseph Lyons 9b8f260356 v0.86.x dev 2023-05-03 14:38:41 -04:00
Max Brunsfeld 54815f70ed Merge branch 'main' into copilot-disabled-globs 2023-05-03 10:53:28 -07:00
Antonio Scandurra 4f4b0d8745 Allow notifying views when the ancestry of another view is outdated 2023-05-03 19:25:00 +02:00
Max Brunsfeld 647c3960d9 Add copilot menu item for enabling paths by glob 2023-05-03 10:14:01 -07:00
Antonio Scandurra 83e5f8dd49 Make dispatch_keystroke public to the crate only 2023-05-03 19:13:17 +02:00
Antonio Scandurra a849bf931b Remove ViewContext::is_child 2023-05-03 19:09:07 +02:00
Antonio Scandurra 857bd080ad Fix integration test relying on deferred happening after focus
Focus is now one of the last things that happens during `flush_effects`,
and we shouldn't have relied on `defer` in the first place to verify
focus changes.
2023-05-03 19:00:32 +02:00