Commit graph

65 commits

Author SHA1 Message Date
Max Brunsfeld
334de06322 Create an API for assigning the menubar contents 2021-04-08 16:01:36 -07:00
Max Brunsfeld
187eb95b13 Throw a little between filename and modified icon
We probably need a primitive to right-align an element within
its parent, but I don't have strong opinions about how that
should be designed, so I'm just adding this as a temporary
measure so that the tabs won't look too ugly in the meantime.
2021-04-07 15:39:09 -07:00
Max Brunsfeld
ae57178f3e Restructure event-handling methods in workspace ItemView 2021-04-07 15:05:16 -07:00
Max Brunsfeld
a95d33f662 Add assertions about Dirtied events in test 2021-04-07 14:52:22 -07:00
Nathan Sobo
05125f76bd Fix tests 2021-04-06 20:59:55 -06:00
Nathan Sobo
3f9d224e0f persisted_version -> saved_version 2021-04-06 20:59:44 -06:00
Nathan Sobo
2619bc4602 Update modified status by emitting event whenever buffer is dirtied or saved
I used the word "dirty" because it felt more expressive than "modified" to me, but not married to it. Tagging Max because we did a lot of this thinking together.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-04-06 20:46:35 -06:00
Max Brunsfeld
d724387158 wip 2021-04-06 18:25:50 -07:00
Max Brunsfeld
685665f3c0 Implement Buffer::is_modified by storing persisted version 2021-04-06 16:19:17 -07:00
Max Brunsfeld
bd37b11306 Update tab's modified icon via a saved event emitted from buffer 2021-04-06 15:47:05 -07:00
Max Brunsfeld
dabd6abe37 Start work on displaying modified status in tabs 2021-04-06 14:37:21 -07:00
Max Brunsfeld
c632aab382 Vertically center linebox child element
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-06 13:03:19 -07:00
Nathan Sobo
2a9e71d725 Vertically center glyphs in Line::paint based on ascender/descender for line 2021-04-06 09:15:21 -06:00
Antonio Scandurra
e0c43dac25 Implement SVG rendering 2021-04-06 13:46:33 +02:00
Nathan Sobo
2970e934da Use handles to obtain entities in future callbacks
This guarantees that the spawning entity will be present and simplifies
the logic for obtaining the entity. Now we can forward the results of spawned futures and streams in the same way regardless of whether what spawned them was a model or a view.
2021-04-05 20:04:04 -06:00
Max Brunsfeld
fda1394057 Rename Task -> EntityTask (a BackgroundTask is just a Task)
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-05 17:03:42 -07:00
Max Brunsfeld
46f8665e41 Add save command
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-05 16:52:33 -07:00
Max Brunsfeld
fabc19402a Resurrect commented-out worktree test 2021-04-05 09:12:19 -07:00
Max Brunsfeld
cded00cf29 Make backspace work correctly for empty selections 2021-04-02 16:20:40 -07:00
Max Brunsfeld
a5252937a9 Add fallback UI fonts that are installed by default on macOS 2021-04-02 15:48:37 -07:00
Max Brunsfeld
6a979ff729 Ensure that the assets dir exists with a .gitkeep file 2021-04-02 15:28:09 -07:00
Max Brunsfeld
32500e21f6 Silence sum_tree warnings
* Remove unused enum variant
* Add #[allow(unused)] for non-trivial methods
2021-04-02 14:39:56 -07:00
Max Brunsfeld
dd31b870c3 Remove small pieces of unused code 2021-04-02 14:26:53 -07:00
Max Brunsfeld
ce6ca13b13 Fix buffer folding test 2021-04-02 14:04:35 -07:00
Antonio Scandurra
d10fc6ce3f Fix crash when selections exceed the container's bounds 2021-04-02 13:49:44 +02:00
Antonio Scandurra
ae447ca1d9 Layout lines and line numbers sequentially
Doing things in parallel has a constant factor associated with it (e.g.,
spawning threads and coordinating them) that dwarves its benefits on a
code path like this where things take < 2-3ms when done sequentially.
2021-04-02 10:20:29 +02:00
Antonio Scandurra
e487aa5cbd Don't render glyphs located outside of BufferElement's bounds 2021-04-01 11:19:50 +02:00
Antonio Scandurra
d5a9bab4a0 Fix tabs layout
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-03-31 17:57:00 +02:00
Antonio Scandurra
c55d99022e Handle non-precise scroll events in BufferElement
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-03-31 16:25:21 +02:00
Antonio Scandurra
d853dbb048 Render borders correctly when only a subset of the border is visible 2021-03-31 14:53:34 +02:00
Nathan Sobo
dbf9a5a466 Restore blink_cursors
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-03-30 18:12:45 -06:00
Nathan Sobo
77b6a29f5f Optimize grouping of path sprites by layer/atlas
Avoid filtering sprites redundantly on every layer and allocating intermediate vectors to group by atlas.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-03-30 18:03:00 -06:00
Nathan Sobo
4cdce070c4 Reduce selection corner radius
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-03-30 16:57:21 -06:00
Nathan Sobo
02ace16176 Handle selection corners that are smaller than the corner radius
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-03-30 16:21:24 -06:00
Max Brunsfeld
011d4d8437 wip 2021-03-30 12:36:18 -07:00
Max Brunsfeld
f8cc3996b2 Paint selections using new path API
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-03-30 11:52:58 -07:00
Antonio Scandurra
1903f63c45 WIP: Add anti-aliasing to paths and render them after spriting them 2021-03-30 16:37:12 +02:00
Antonio Scandurra
98845663a9 Render stencils to atlas 2021-03-30 11:28:35 +02:00
Max Brunsfeld
0b12779e62 WIP: Render path winding numbers to stencil buffer
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-03-29 16:28:35 -07:00
Antonio Scandurra
a88b63d83c Ensure FoldMap always contains at least one transform
Previously, when splicing an edit that deleted all transforms, we would
leave the `FoldMap` empty, thus violating a bunch of downstream
invariants and e.g. causing the `BufferRows` iterator to not return any
buffer row.

This commit ensures we always have at least one transform (an isomorphic
one, specifically) and adds additional test coverage for the
`FoldMap::buffer_rows` method by adding it to the randomized tests.
2021-03-29 10:18:28 +02:00
Antonio Scandurra
a2790481a6 Pass the right bounds when painting gutter
x and y were flipped around, yikes.
2021-03-26 17:21:44 +01:00
Antonio Scandurra
2c24ec2e46 Update old usages of ctx.spawn to detach the associated task
This lets us open buffers and renders tabs and editors correctly, modulo
a small bug when rendering the gutter that I am going to fix next.
2021-03-26 14:15:01 +01:00
Antonio Scandurra
61d4da9934 Introduce layer clipping 2021-03-26 10:28:05 +01:00
Antonio Scandurra
e44ea6b379 Fix cursor blinking 2021-03-25 17:41:03 +01:00
Antonio Scandurra
596fc47a68 Start on painting the editor 2021-03-25 17:36:29 +01:00
Antonio Scandurra
0f6927eb4b Re-export font_kit primitives from a new fonts module
...also, rename the old `fonts` to `font_cache`.
2021-03-25 10:58:33 +01:00
Antonio Scandurra
0906b2a2f4 Remove unused dependencies and avoid instantiating FontCache in tests 2021-03-25 10:48:32 +01:00
Antonio Scandurra
9178e91cc0 Extract platform-dependant FontSystem
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-03-24 16:51:28 +01:00
Nathan Sobo
d13510bfe3 💄 2021-03-22 21:00:07 -06:00
Antonio Scandurra
859c0f53cb WIP: Introduce layers in renderer
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-03-22 18:55:53 +01:00