Commit graph

505 commits

Author SHA1 Message Date
Nathan Sobo
a3be5595dd Pass a handle to the current view model when spawning
Most of the time, we'll want a way to get a reference back to the current view or model, so this facilitates that common case.
2021-05-12 15:28:59 -06:00
Nathan Sobo
fa6bd1f926 Introduce AsyncAppContext and simplify spawning
Now when you call spawn in various context, you pass an FnOnce that is called with an AsyncAppContext and returns a static future. This allows you to write async code similar to how our tests work, borrowing the guts of the AsyncAppContext when needed to interact, but using normal async await semantics instead of callbacks.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-05-12 15:16:49 -06:00
Max Brunsfeld
d0f69c76e1
Merge pull request #55 from zed-industries/test-macros
Introduce a `gpui::test` macro for less ceremony when writing tests
2021-05-12 10:19:46 -07:00
Antonio Scandurra
2326ac3dbf Use gpui::test for tests in gpui
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-05-12 18:21:32 +02:00
Antonio Scandurra
ab04d71508 Use gpui::test in async tests in zed
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-05-12 18:20:49 +02:00
Antonio Scandurra
1c2b381f74 Use gpui::test macro for synchronous tests in zed 2021-05-12 17:18:23 +02:00
Antonio Scandurra
c7d97adf23 Introduce a gpui::test macro 2021-05-12 17:05:03 +02:00
Antonio Scandurra
de6376ca80 Mark FileHandle as not deleted right after saving it
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-05-11 17:26:26 +02:00
Antonio Scandurra
e72a309734 Add a basic tab keybinding
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-05-11 17:10:37 +02:00
Antonio Scandurra
e076c2c6dc
Merge pull request #48 from zed-industries/file-deletion
Fix management of buffers' dirty state
2021-05-11 17:00:44 +02:00
Antonio Scandurra
45b41465e1 Don't consider scan as being complete until its state is Idle
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-05-11 16:54:01 +02:00
Antonio Scandurra
d8f7054f28 Fix saving files in single-file worktrees
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-05-11 16:46:22 +02:00
Antonio Scandurra
d8eed53f13 Emit Dirtied event when a clean buffer's file is deleted
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-05-11 16:32:52 +02:00
Antonio Scandurra
02bd9c8420 Make sure next_scan_complete resolves
Sometimes the scan state could change so quickly that the consumer
wouldn't notice that it ever went to a scanning state before going back
to an idle state, hence never resolving.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-05-11 16:06:12 +02:00
Max Brunsfeld
ff5561d402 Fix management of buffers' dirty state
* Don't consider files deleted if they just haven't been scanned yet.
* Consider a buffer dirty if its file has been deleted.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-05-11 15:37:01 +02:00
Antonio Scandurra
01b20d524d
Merge pull request #51 from zed-industries/add-cursors-and-cancel-selections
Implement `add_selection_above`, `add_selection_below` and `cancel`
2021-05-11 13:02:37 +02:00
Antonio Scandurra
d9e7547d95 💄 2021-05-11 12:43:24 +02:00
Antonio Scandurra
07ef0d474e Bind add_selection_{above,below} to cmd-alt-{up,down} 2021-05-11 12:37:30 +02:00
Antonio Scandurra
17258d4f8c Add test for add_selection_above and add_selection_below 2021-05-11 12:35:27 +02:00
Antonio Scandurra
6f5e47d631 Add test for BufferView::cancel 2021-05-11 12:35:27 +02:00
Antonio Scandurra
0622722ab7 Split multi-line selection when starting a new columnar selection 2021-05-11 12:35:27 +02:00
Antonio Scandurra
951aa0e443 Keep only one selection when starting to add selections above/below
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-05-11 12:35:27 +02:00
Antonio Scandurra
3fe64400c6 Rename add_cursor_{above,below} to add_selection_{above, below}
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-05-11 12:35:27 +02:00
Antonio Scandurra
b6449b3809 Support undo of adding cursor above by adding cursor below and viceversa
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-05-11 12:35:27 +02:00
Antonio Scandurra
acbda9184e Empty last selection on cancel
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-05-11 12:35:27 +02:00
Antonio Scandurra
143c50f321 Implement cancel for buffer 2021-05-11 12:35:27 +02:00
Antonio Scandurra
0baff0c61d Implement add_cursor_above and add_cursor_below for buffer 2021-05-11 12:35:27 +02:00
Max Brunsfeld
af6ab2762f
Merge pull request #47 from zed-industries/macos-10-compat
Ensure that the bundle runs on macOS versions < 11.0
2021-05-10 14:10:33 -07:00
Max Brunsfeld
f2b009ea6b Ensure that the bundle runs on macOS versions < 11.0 2021-05-10 14:14:04 -06:00
Nathan Sobo
76d9a40f35
Merge pull request #40 from zed-industries/close-window
Correctly handle closing windows and removing entities
2021-05-08 09:06:54 -06:00
Nathan Sobo
2c74d75687 Fix double borrow error in Window::on_close callbacks when quitting app
The simplest solution I could come up with was to make quitting the app asynchronous. Calling mac::Platform::quit enqueues a request to quit the app and then allows the call stack to fully return. This ensures we aren't holding a borrow when we quit and invoke all the Window::on_close callbacks. Seems like it should be fine to be async on quitting.
2021-05-08 08:49:14 -06:00
Max Brunsfeld
f3d7aa55f1
Merge pull request #46 from zed-industries/keyup-keystrokes
Ignore events for held-down keys after a key combo is partially released
2021-05-07 17:15:29 -07:00
Max Brunsfeld
9dbda4551f Ignore events for held-down keys after a key combo is partially released 2021-05-07 16:54:55 -07:00
Max Brunsfeld
b292baf334 Remove logging of retained views 2021-05-07 14:51:55 -07:00
Max Brunsfeld
3120906275 Merge branch 'master' into close-window 2021-05-07 14:24:48 -07:00
Max Brunsfeld
83a844f120 Fix the Clone impl for AnyViewHandle 2021-05-07 14:16:16 -07:00
Nathan Sobo
318e8abf2f Avoid redundant entity refcount operations
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-05-07 14:15:43 -07:00
Max Brunsfeld
d8d36a32bf Add emacs key bindings for up/down/left/right 2021-05-07 13:51:17 -07:00
Nathan Sobo
1c50059575
Merge pull request #38 from zed-industries/new-file
Allow creating untitled buffers and saving them to new files
2021-05-07 13:57:09 -06:00
Max Brunsfeld
4b0bd6b8e3 Clean up Workspace::open_entry 2021-05-07 11:21:49 -07:00
Max Brunsfeld
e32b6bc8f8 Merge branch 'master' into new-file 2021-05-07 10:10:20 -07:00
Max Brunsfeld
29d44c8a10 Go back to using upstream core-foundation-rs 2021-05-07 09:53:07 -07:00
Max Brunsfeld
3c3cf3b7c5 Keep weak handles to workspace items 2021-05-07 09:52:15 -07:00
Antonio Scandurra
98c4dc4b9b
Merge pull request #43 from zed-industries/select-line
Implement `select_line` and `split_selection_into_lines`
2021-05-07 18:49:47 +02:00
Antonio Scandurra
c7c8ec9e54
Merge pull request #44 from zed-industries/emit-symbols-in-release
Include debug symbols in release mode
2021-05-07 18:21:09 +02:00
Antonio Scandurra
806c09bf11 Autoscroll when folding an arbitrary range 2021-05-07 18:15:00 +02:00
Nathan Sobo
b5f1f31693 Fix focus test
Call on_focus on the root view when the window is originally created. Test dropping a focused view. Simplify test to avoid relying on emitting events.

Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-05-07 09:43:07 -06:00
Antonio Scandurra
8bbaa0bd34 Handle reversed selections correctly in split_selection_into_lines 2021-05-07 14:54:46 +02:00
Antonio Scandurra
f85669c681 Include debug symbols in release mode 2021-05-07 14:42:56 +02:00
Antonio Scandurra
5f1d0b8850 💄 2021-05-07 14:38:21 +02:00