Commit Graph
52 Commits
Author SHA1 Message Date
Nathan Sobo 870925e2ac Rerender tabs when buffers' file handles change
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-26 14:16:35 -07:00
Nathan SoboandMax Brunsfeld c9d7249305 WIP
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-04-23 11:37:23 -06:00
Nathan Sobo db8cce9aa9 Merge branch 'master' into rescan 2021-04-14 22:26:09 -06:00
Antonio ScandurraandNathan Sobo f4538e9eb5 Generalize pasting when number of selections doesn't match clipboard's
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-14 19:02:44 +02:00
Antonio Scandurra 40980edffe Merge branch 'master' into copy-paste 2021-04-14 12:05:52 +02:00
Antonio Scandurra a1053f7820 📝 2021-04-14 11:59:39 +02:00
Antonio Scandurra 6a181ac692 Add test for copying/cutting/pasting full lines 2021-04-14 11:56:17 +02:00
Antonio Scandurra 4a395314b2 Handle paste correctly when there is only one full-line in the clipboard 2021-04-14 11:15:55 +02:00
Nathan Sobo 24cdfd2471 Identify Worktree entries by their inode
This will allow us to re-parent elements when re-scanning when the file system changes.
2021-04-13 20:09:41 -06:00
Nathan SoboandBrooks Swinnerton 0a2d2aa684 Replace app/app_mut on contexts with AsRef/AsMut impls
Co-Authored-By: Brooks Swinnerton <934497+bswinnerton@users.noreply.github.com>
2021-04-13 20:07:25 -06:00
Max Brunsfeld e082935076 Handle 'full-line' clipboard items when pasting 2021-04-13 17:58:13 -07:00
Max Brunsfeld c83f02dd04 Implement multi-selection copy/cut/paste 2021-04-13 17:28:51 -07:00
Antonio ScandurraandMax Brunsfeld 13514aae6c Allow metadata to be associated with text written to clipboard
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-04-13 19:03:56 +02:00
Antonio Scandurra f4c1ffc329 Start on copy-paste 2021-04-13 14:58:10 +02:00
Max Brunsfeld b2723fd1dd Remove unused variables 2021-04-12 11:45:41 -07:00
Max Brunsfeld a0da23799d Merge branch 'master' into undo-stack 2021-04-12 10:49:46 -07:00
Antonio Scandurra 8f6b8b2e43 📝 2021-04-12 19:05:56 +02:00
Antonio Scandurra 3a33fab091 Generate operation when updating selection set after undo/redo 2021-04-12 17:47:19 +02:00
Antonio Scandurra ab14b99a73 Introduce transactional edits and allow snapshotting of selections 2021-04-12 16:01:41 +02:00
Antonio Scandurra 40bfdd38ae 💄 2021-04-12 16:01:41 +02:00
Antonio Scandurra 551c86f87a WIP: Start on pushing selection management down into Buffer 2021-04-12 16:01:41 +02:00
Antonio Scandurra e534fe9112 Add initial support for undo/redo stack
We're still not capturing selections/anchors, that's right up next.
2021-04-12 16:01:41 +02:00
Nathan Sobo 97a8a8ed43 Remove unsafe code from App::test_async
I don't actually think it was correct to allow the future to borrow a mutable app reference. I went back to passing a wrapper around the refcell to async tests. They'll be a bit more annoying to write but also totally safe.
2021-04-10 00:05:09 -06:00
Max Brunsfeld 079050541f Get app running and test passing after gpui App+Platform restructure 2021-04-09 16:56:32 -07:00
Nathan SoboandMax Brunsfeld 4ecc17b1bb WIP: Make App the only entry point from main
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-04-09 13:38:09 -06:00
Max Brunsfeld ae57178f3e Restructure event-handling methods in workspace ItemView 2021-04-07 15:05:16 -07:00
Nathan SoboandMax Brunsfeld 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 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
Nathan Sobo 2a9e71d725 Vertically center glyphs in Line::paint based on ascender/descender for line 2021-04-06 09:15:21 -06: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 BrunsfeldandNathan Sobo 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 BrunsfeldandNathan Sobo 46f8665e41 Add save command
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-05 16:52:33 -07:00
Max Brunsfeld cded00cf29 Make backspace work correctly for empty selections 2021-04-02 16:20:40 -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 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
Nathan SoboandMax Brunsfeld dbf9a5a466 Restore blink_cursors
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-03-30 18:12:45 -06:00
Nathan SoboandMax Brunsfeld 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
Antonio Scandurra e44ea6b379 Fix cursor blinking 2021-03-25 17:41:03 +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 ScandurraandNathan Sobo 9178e91cc0 Extract platform-dependant FontSystem
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-03-24 16:51:28 +01:00
Nathan Sobo 119aa452b6 Overhaul the entire element system
Now the Element trait is designed to be wrapped in a Lifecycle enum that gets placed inside an ElementBox. This allows the framework to store data on behalf of the Element implementation, such as sizes, bounds, and also implementation-specific LayoutState and PaintState types. This makes it easier to reason about which data is available in each Element method.
2021-03-21 20:54:23 -06:00
Nathan Sobo cfe3aae2de WIP: Get everything compiling again and keep window open 2021-03-19 12:12:10 -06:00
Nathan Sobo 605bdd62dd WIP: Start on rendering scenes via presenter 2021-03-18 21:33:16 -06:00
Nathan Sobo e809d6119a Return tasks from spawn and spawn_stream
Also, eliminate the background spawning methods. We can spawn futures
on the executor and then spawn those on the app if we need to wait for
the result of running one.
2021-03-18 20:10:32 -06:00
Nathan Sobo 9bab29c72f Get workspace module in and compiling 2021-03-18 15:52:46 -06:00
Nathan Sobo 171dd0c243 WIP 2021-03-18 13:17:25 -06:00