Commit Graph

395 Commits

Author SHA1 Message Date
Mikayla Maki
04600d73fc Moved back to the drag handler, selections work again 2022-08-19 09:50:26 -07:00
Mikayla Maki
37ca7a6658 Half way done with mouse reporting 2022-08-18 17:37:24 -07:00
Mikayla Maki
a0d0c84eee Begin mouse mode 2022-08-18 13:28:55 -07:00
Mikayla Maki
2c4ea7f01d Remove todo 2022-08-18 13:24:00 -07:00
Mikayla Maki
aa98e5c3f7 Fixed scrolling on text input 2022-08-18 13:22:48 -07:00
Mikayla Maki
d545e59b49 Finished IME for now 2022-08-18 12:57:19 -07:00
Mikayla Maki
6652d41864 Fixed cursor blinking, added other cursor shape rendering 2022-08-18 11:28:18 -07:00
Mikayla Maki
acce0042f9 Fixed blink problems 2022-08-17 14:41:28 -07:00
Mikayla Maki
5ad746e53f Added alt screen mode check 2022-08-16 23:10:49 -07:00
Mikayla Maki
bf7b3150e4 Added show character palette. Need to position correctly. 2022-08-16 23:10:05 -07:00
Mikayla Maki
b9c73127b4 Added a hollow mode to the cursor rendering code, for terminal lost focus 2022-08-15 18:27:26 -07:00
Mikayla Maki
bba51c3ae6 Added cursor blink and settings 2022-08-15 18:05:07 -07:00
Mikayla Maki
7b3a7727c6 Basic cursor blinking :) 2022-08-15 17:00:44 -07:00
Mikayla Maki
a24e5b128c Fixed text rendering color based on focus 2022-08-15 16:05:03 -07:00
Mikayla Maki
761b211e89 Added focus-in and focus-out behavior to terminal 2022-08-15 15:59:17 -07:00
ForLoveOfCats
8ba2f77148 One big cleanup pass of clippy lints
Co-authored-by: Mikayla <mikayla@zed.dev>
2022-08-10 16:51:01 -07:00
K Simmons
f5a6a112c8 Address picker issues 2022-08-09 17:15:54 -07:00
K Simmons
6f180ed822 Pane focus working. Modals seem broken now 2022-08-09 17:15:54 -07:00
K Simmons
049149320c build fix 2022-08-09 17:15:54 -07:00
K Simmons
690ea57211 WIP compiling but failing with circular reference 2022-08-09 17:15:52 -07:00
Mikayla Maki
435360754b Fixed lack of scrolling 2022-08-05 09:18:24 -07:00
Mikayla Maki
0b1dab7fa7 Merge branch 'main' of github.com:zed-industries/zed 2022-08-04 20:59:22 -07:00
Mikayla Maki
83449c95b0 Fixed terminal clear screen 2022-08-04 20:59:09 -07:00
Mikayla Maki
d823da05ee Added context menu to terminal 2022-08-04 11:22:09 -07:00
Mikayla Maki
907d3e4035 Checkpoint, not compiling 2022-08-04 10:16:26 -07:00
Mikayla Maki
bf0ec13e65 New button 2022-08-03 15:59:25 -07:00
Mikayla Maki
81b35c7819 Changed alacritty version 2022-08-03 15:04:48 -07:00
Mikayla Maki
59feb7ab04 Removed debugs 2022-08-03 15:03:03 -07:00
Mikayla Maki
82ecb5923e Much better rectangle fiddling 2022-08-03 14:54:45 -07:00
Mikayla Maki
3c468531ea Fixed cursor-over-大 bug 2022-08-03 14:17:25 -07:00
Mikayla Maki
4126e977b6 Reworked loop to lower latency and continue throttling until it's out of events 2022-08-03 12:18:11 -07:00
Mikayla Maki
ed3d339dec Implemented a much more dynamic render/event loop with Antonio 2022-08-03 11:27:36 -07:00
Mikayla Maki
bb8263104c Pause and buffer 2022-08-03 10:29:03 -07:00
Mikayla Maki
86406153bd fixed styles 2022-08-02 17:31:40 -07:00
Mikayla Maki
2a5eafcc61 Added cell styles 2022-08-02 17:20:28 -07:00
Mikayla Maki
ffffe7890f Attempting to do throttling again 2022-08-02 12:15:04 -07:00
Mikayla Maki
8277b98104 Fixed bel bug 2022-08-02 11:58:24 -07:00
Mikayla Maki
937cd582e8 Merged main and branch 2022-08-02 11:44:59 -07:00
Antonio Scandurra
42db566ff6 Remove terminal integration test
Creating a full-fledged terminal is flaky and causes tests to either
hang or outright panic. The only test that requires creating a terminal
was `test_terminal` but we think the value added by that test is not
worth the flakiness, so we're removing it.

Co-Authored-By: Mikayla Maki <mikayla@zed.dev>
2022-08-02 19:09:34 +02:00
Mikayla Maki
7111576986 Merge main into branch 2022-08-02 09:25:52 -07:00
Mikayla Maki
ca00128794 End of day 2022-08-01 17:13:06 -07:00
Mikayla Maki
59ba9da247 Probably good enough using the two thread solution, latency is low for most things, and it feels good 2022-08-01 16:52:21 -07:00
Mikayla Maki
05cc78d929 Abandoning this attempt, nto good enough at async 2022-08-01 16:47:16 -07:00
Mikayla Maki
8471af5a7d Improved render performance implementation to use a fork of alacritty which includes the last # of bytes processed as a way of estimating throughput in cases where the terminal output is chanegd in place 2022-07-28 16:03:00 -07:00
Mikayla Maki
81cbdcfd11 Reduced time holding lock even more 2022-07-28 14:58:19 -07:00
Mikayla Maki
57146b6e39 Added variable rate refreshing based on terminal throughput. Should be the last of the performance improvements for now 2022-07-27 16:46:15 -07:00
Mikayla Maki
8a48a11a00 Implemcargo 2022-07-27 16:33:15 -07:00
K Simmons
20d45221c9 Move terminal modal keymap context to the connected view 2022-07-27 11:00:54 -07:00
Mikayla Maki
0ccdc64668 Working on finding a way of estimating throughput 2022-07-27 10:58:23 -07:00
Mikayla Maki
153305f5e4 Finished long-lock style rendering. Need to dynamically adjust the notification rate to handle high throughput scenarios 2022-07-27 10:21:50 -07:00
Mikayla Maki
9dfdaae94d Nearly done, not scheduling our own re-render yet 2022-07-27 10:11:10 -07:00
Antonio Scandurra
6a718dc4da Don't insert input when the fn key is held 2022-07-27 12:01:44 +02:00
Mikayla Maki
d1e878f0c6 Checkpoint, still not compiling 2022-07-26 16:58:14 -07:00
Mikayla Maki
8a6605c090 Added test covering this feature 2022-07-26 16:30:51 -07:00
Mikayla Maki
88202a567c Fixed regression in working directory code 2022-07-26 16:22:07 -07:00
Mikayla Maki
ace16b63a9 Checkpoint, still converting terminal to events. Not compiling 2022-07-26 16:17:26 -07:00
Mikayla Maki
71af876489 removed stray file 2022-07-26 13:10:04 -07:00
Mikayla Maki
67e650b0e0 Fixed conflicts 2022-07-25 17:24:25 -07:00
Mikayla Maki
aea3508b69 keeping both... 2022-07-25 17:24:25 -07:00
Mikayla Maki
bc2c8e0e05 Finished refactor for mutable terminal and long-single-lock style. Currently terminal is deadlocking instantly, need to just do the full refactor 2022-07-25 17:24:25 -07:00
Mikayla Maki
be4873b92b Checkpoint, build failing 2022-07-25 17:24:25 -07:00
Mikayla Maki
27e76e3ca2 Retouched a test, should still be failing 2022-07-25 17:24:25 -07:00
Mikayla Maki
889720d06d Fixed conflict 2022-07-25 17:24:21 -07:00
Mikayla Maki
4d8cd6d8ea Added event buffering, need to figure out a proper fix 2022-07-25 17:23:00 -07:00
Mikayla Maki
313316fe88 fixed 2022-07-25 16:08:31 -07:00
Max Brunsfeld
13097ea110 Update terminal test to reflect new text insertion approach 2022-07-25 12:21:26 -07:00
Antonio Scandurra
ca3e73106c Merge branch 'main' into ime-support-2 2022-07-25 10:47:49 +02:00
Mikayla Maki
a41e54f3dc Finished terminal refactoring 2022-07-22 13:54:46 -07:00
Mikayla Maki
119207a9e5 Refactored a bunch of stuff, working on tidying element code 2022-07-22 12:06:42 -07:00
Mikayla Maki
dce27870ce Refactored terminal tests 2022-07-22 10:20:15 -07:00
Antonio Scandurra
7b009c8bbe Merge branch 'main' into ime-support-2 2022-07-22 16:03:38 +02:00
Max Brunsfeld
9c412a8806 Remove test for handling input via key events
Now, textual input is handled by a different code path than other key events.
2022-07-21 21:40:37 -07:00
Max Brunsfeld
0185b4fef4 Add simple IME handling to the terminal 2022-07-21 21:32:58 -07:00
Mikayla Maki
c6d5decbf9 Finished erorr terminal refactoring 2022-07-21 12:37:15 -07:00
Mikayla Maki
7c0a031506 added cursor text back 2022-07-21 10:04:12 -07:00
Antonio Scandurra
97ce3998ec Position IME input according to where the selection is rendered 2022-07-21 17:35:40 +02:00
Max Brunsfeld
f712dec4c0 Use new API for input handling in Terminal 2022-07-20 17:33:37 -07:00
Mikayla Maki
ee87c8ebde Render is snappier, less locking, and errors feel nicely modeled 2022-07-20 17:25:21 -07:00
Mikayla Maki
741b78a15b I think I'm finished 2022-07-20 17:11:36 -07:00
Mikayla Maki
061dde5a9b Compiling with new result based error handling 2022-07-20 16:48:40 -07:00
Mikayla Maki
9b6df1fb61 Checkpoint, this commit does not compile 2022-07-20 12:41:04 -07:00
Mikayla Maki
b493bafb48 Fixed failing test 2022-07-20 10:34:00 -07:00
Mikayla Maki
e2a9a6f361 Maybe fixed toml 2022-07-20 10:04:08 -07:00
Mikayla Maki
18079ced20 Updated alacritty version 2022-07-20 10:04:08 -07:00
Mikayla Maki
ef1a32ee92 Done updating rendering performance for now. Further changes would require more fundamental work, I'm still not really happy with it as is though. Will probably take a few hours to clean the code though. 2022-07-20 10:04:08 -07:00
Mikayla Maki
005e2cb2be Compiling again... finally 2022-07-20 10:04:08 -07:00
Mikayla Maki
4f7b6b8b22 Finally finished merging this massive ball of changes 2022-07-20 10:04:08 -07:00
Mikayla Maki
150d2ff53f Attempting to continue rebase 2022-07-20 10:04:08 -07:00
Mikayla Maki
4a483618be Finished graceful terminal failure 2022-07-20 10:04:08 -07:00
Mikayla Maki
40d30a898b Rebasing continues 2022-07-20 10:04:08 -07:00
Mikayla Maki
9d063ae6d8 Switched to hybrid iterator and while loop grid processor. Still hairy but much more managable. Not finished compiling yet. 2022-07-20 10:04:08 -07:00
Mikayla Maki
c9584a9d0c Continuing rebases on other work 2022-07-20 10:04:08 -07:00
Mikayla Maki
a4ca11ba17 Finished design touchups 2022-07-20 10:04:08 -07:00
Mikayla Maki
c19956373a Finished bel, moving on to title 2022-07-20 10:04:06 -07:00
Nate Butler
bcc554a3db Merge branch 'main' into theme-improvements 2022-07-19 20:12:02 -04:00
Nate Butler
46384e71b7 Add icon sets for sizes 8, 12 and 16, remove old icons 2022-07-19 17:11:15 -04:00
K Simmons
8add81350e Rework presenter and MouseRegion to use Handler hashmap rather than individual fields 2022-07-17 23:19:32 -07:00
Mikayla Maki
8349ead6b2 Add bracketed paste support 2022-07-15 19:01:08 -07:00
Mikayla Maki
6675c96c8a Removed some old dbgs and comments 2022-07-15 18:42:07 -07:00
Mikayla Maki
523e565b9b bad patch for panic on mis configured shell 2022-07-15 18:38:17 -07:00
Mikayla Maki
dc120c1e05 Added settings for common terminal configurations 2022-07-15 18:27:10 -07:00
Mikayla Maki
1b3fb257b2
Merge branch 'main' into copy-test-update 2022-07-15 13:24:11 -07:00
Mikayla Maki
e156675640 Revamped testing in terminals 2022-07-15 12:15:55 -07:00
Mikayla Maki
8282858941 Updated copy integration test to match retries on terminal integration test 2022-07-15 11:30:14 -07:00
Mikayla Maki
f38206f819
Merge branch 'main' into keybindings-grind 2022-07-15 11:24:16 -07:00
Mikayla Maki
3e86411627 Finished new keybindings system for now 2022-07-15 11:20:54 -07:00
Mikayla Maki
90428255d9 Added some simple tests for the new keybindings 2022-07-15 10:36:37 -07:00
Mikayla Maki
f9995e1fcd Starting on tests 2022-07-15 00:26:04 -07:00
Antonio Scandurra
d89465c451
Merge pull request #1356 from zed-industries/differentiate-same-tab-titles
Differentiate among tabs with the same name
2022-07-15 08:30:22 +02:00
Mikayla Maki
8220b37c4f Method rename 2022-07-14 17:25:17 -07:00
Mikayla Maki
1935208de6 Clean up prints 2022-07-14 17:23:43 -07:00
Mikayla Maki
98651c4b86 New key mapping system in place and working 2022-07-14 17:21:30 -07:00
Mikayla Maki
2e749631fe Checkpoint, have caret notation implemented 2022-07-14 16:27:02 -07:00
Mikayla Maki
cf5c20c3a5 Remembered how to use a terminal 2022-07-14 13:15:42 -07:00
Isaac Clayton
91fefae96a Add retries to failing terminal test 2022-07-14 16:05:10 +02:00
Antonio Scandurra
07d269234f Differentiate among tabs with the same name
This commit introduces a new, optional `Item::tab_description` method
that lets implementers define a description for the tab with a certain
`detail`. When two or more tabs match the same description, we will
increase the `detail` until tabs don't match anymore or increasing the
`detail` doesn't disambiguate tabs any further.

As soon as we find a valid `detail` that disambiguates tabs enough, we
will pass it to `Item::tab_content`. In `Editor`, this is implemented by
showing more and more of the path's suffix as `detail` is increased.
2022-07-14 11:54:11 +02:00
Mikayla Maki
f55b24ddee Fixed modal terminal bindings to not show in command palette 2022-07-13 16:39:22 -07:00
Mikayla Maki
79b7dcb596 Basic keybindings infra done 2022-07-13 16:32:25 -07:00
Mikayla Maki
7885234fbc Added clear screan command 2022-07-13 13:19:21 -07:00
Mikayla Maki
4f9d88f3e0 Made a quick fix for modal issues, better solution pending rewrite 2022-07-13 13:06:23 -07:00
Mikayla Maki
344e037406 remove temporary work 2022-07-13 12:18:43 -07:00
Mikayla Maki
494c168c6f Beginning rewrite of affected systems 2022-07-13 12:18:43 -07:00
Mikayla Maki
f630ab4821 checkpoint 2022-07-13 12:18:43 -07:00
Mikayla Maki
2ca340b9f1 Beginning research 2022-07-13 12:18:43 -07:00
Mikayla Maki
598954d39f Added a bit of documentation for the working directory calculation 2022-07-12 17:49:14 -07:00
Mikayla Maki
41e83b6be2 Fixes terminal launch issues and adds tests for queries 2022-07-12 17:45:11 -07:00
Keith Simmons
ed3666547b Make global type more resilient, and fix modal keymap context 2022-07-08 16:29:29 -07:00
Keith Simmons
20f7fba16f Move terminal scripts to scripts folder, and remove parking_lot from terminal crate
Co-authored-by: mikayla.c.maki@gmail.com
2022-07-08 16:16:57 -07:00
Keith Simmons
31361e564d remove temporary debug print statements
Co-authored-by: mikayla.c.maki@gmail.com
2022-07-08 16:14:41 -07:00
Keith Simmons
8d34fe7e94 Refactor terminal connection into a model which can be copied between terminal views
Refactor terminal modal code to use TerminalConnection model handle so we aren't storing TerminalViews in the globals
Adjust INSTANCE_BUFFER_SIZE in renderer to handle pathological terminal renders

Co-authored-by: mikayla.c.maki@gmail.com
2022-07-08 16:10:09 -07:00
Mikayla Maki
4a860d4da4 Properly fixed merge issues 2022-07-07 18:05:37 -07:00
Mikayla Maki
d373e4424f
Merge branch 'main' into terminal-modal 2022-07-07 17:48:58 -07:00
Mikayla Maki
be94f614a7 fix merge conflicr 2022-07-07 17:24:55 -07:00
Mikayla Maki
8cb6e476f0 Fixed panic / bug around scrolling and selections in termainl 2022-07-07 17:19:53 -07:00
Nathan Sobo
805c06ee76
Merge pull request #1298 from zed-industries/mouse-region-refactor
Mouse Event Refactor
2022-07-07 16:43:36 -06:00
Mikayla Maki
f86106a07e Fixed a bug around selecting a single cell 2022-07-07 15:24:06 -07:00
Mikayla Maki
1fab7be4b5 Finished selections for now 2022-07-07 15:10:08 -07:00
Mikayla Maki
5a1797cb21 Fixing merge conflicts 2022-07-07 14:56:38 -07:00
Mikayla Maki
59c8e8bdad Fixed integration test 2022-07-07 14:55:25 -07:00
Mikayla Maki
ab0ca7d42a Added another minor test 2022-07-07 14:55:25 -07:00
Mikayla Maki
102f502c26 tidied up magic constants 2022-07-07 14:55:25 -07:00
Mikayla Maki
cc985721c6 Added a small integration test 2022-07-07 14:55:25 -07:00
Mikayla Maki
9209c0dfeb Fixed merge conflict 2022-07-07 14:55:22 -07:00
Mikayla Maki
7c0d9f411a Added copying 2022-07-07 14:55:03 -07:00
Mikayla Maki
8c1054fbb6 Fixed merge conflict 2022-07-07 14:54:58 -07:00
Mikayla Maki
b5919c0555 Fixed merge conflict 2022-07-07 14:54:36 -07:00
Mikayla Maki
415e28e2d3 Fixed merge conflict 2022-07-07 14:54:13 -07:00
Mikayla Maki
a8237858bc Added basic selections 2022-07-07 14:52:04 -07:00
Mikayla Maki
86d5794040 Rebasing onto main 2022-07-07 14:51:59 -07:00
Mikayla Maki
49bd51c7c1 Fixed integration test 2022-07-07 14:38:21 -07:00
Mikayla Maki
28fd1ccbc6 Added another minor test 2022-07-07 13:55:58 -07:00
Mikayla Maki
d981f4a3f4 tidied up magic constants 2022-07-07 13:45:27 -07:00
Mikayla Maki
4bd1111115 Added a small integration test 2022-07-07 13:43:28 -07:00
Mikayla Maki
c0c2297deb
Merge branch 'main' into terminal-selections 2022-07-07 13:20:23 -07:00
Mikayla Maki
4e3c32c277 Added copying 2022-07-07 13:19:38 -07:00
Mikayla Maki
98f6dccd43 Fixed terminal clone on split 2022-07-07 13:01:16 -07:00
Mikayla Maki
ec4082695b Now defaults to using user's shell 2022-07-07 12:31:21 -07:00
Mikayla Maki
240f3d8754 Fixed default shell 2022-07-07 12:29:49 -07:00
Mikayla Maki
bc306ef8ed
Merge branch 'main' into terminal-selections 2022-07-07 12:17:58 -07:00
Mikayla Maki
02525c5bbe Added a way to change the timeout with state 2022-07-07 12:04:17 -07:00
Mikayla Maki
9c518085ae Fixed working directory issues, added tests. Working on regression 2022-07-07 11:01:26 -07:00
Mikayla Maki
778cfd94d8 Added basic selections 2022-07-06 17:37:12 -07:00
Keith Simmons
686e57373b pull event data out into individual Event structs 2022-07-06 15:36:42 -07:00
Mikayla Maki
cba5b4ac11 Began working on selections, refactored colors 2022-07-06 13:44:30 -07:00
Keith Simmons
2d126c7c5c add terminal modal which can be displayed and dismissed while preserving the terminal state 2022-07-06 13:20:54 -07:00
Mikayla Maki
03cbb94057 changed renderer 2022-07-05 17:10:01 -07:00
Mikayla Maki
342d38a9fb Working on grid rendering 2022-07-05 15:10:34 -07:00
Mikayla Maki
b4dc92dddc Set up basic enviroment variables 2022-07-05 15:02:58 -07:00
Mikayla Maki
6ac5cc0d2a Fixed cursor positioning bugs in multi-byte charcters. Still have at least one though :/ 2022-07-01 14:53:19 -07:00
Mikayla Maki
62939322d3 rendering cursor correctly 2022-07-01 13:03:26 -07:00
Mikayla Maki
f4ac694ad8 Fixed debug offset I added to terminal 2022-07-01 11:48:50 -07:00
Mikayla Maki
ce60a9a50a Cleaned up debugging code 2022-07-01 11:39:43 -07:00
Mikayla Maki
8e4c54ab61 Checkpointing after some debugging 2022-07-01 11:38:12 -07:00
Mikayla Maki
ae836e1465 Fixed a major bug and now use the same cursor paint logic as the editor 2022-06-30 20:43:51 -07:00
Mikayla Maki
64d3dc32d2
Update terminal.rs
Whoopsies
2022-06-30 20:30:52 -07:00
Mikayla Maki
bcf5351e64 Refactored and commented code to be my expressive 2022-06-30 20:02:16 -07:00
Mikayla Maki
092284b062 Fully functional background colors :D 2022-06-30 19:21:42 -07:00
Mikayla Maki
06107afdd4 Added background colors and matched the cursor color 2022-06-29 18:50:08 -07:00
Mikayla Maki
5bc0acd88c Directly qualified function makes cargo happy 2022-06-29 18:34:02 -07:00
Mikayla Maki
ab5247c62e Actually correctly flag tests 2022-06-29 18:31:52 -07:00
Mikayla Maki
75a4556244 Fixed unused import 2022-06-29 18:29:36 -07:00
Mikayla Maki
cde11fe4e7 Support for all 24 bits of colors 2022-06-29 18:27:27 -07:00
Mikayla Maki
1c038b81ab Finished current working directory stuff 2022-06-29 16:22:05 -07:00
Mikayla Maki
bc728c160d Properly fixed the issues with the grid :D 2022-06-29 13:19:25 -07:00
Mikayla Maki
93dfc63f1c Added a test with max, cludged a fix for resizing 2022-06-29 13:07:44 -07:00
Mikayla Maki
ff44ddc077 Fixed warnings 😓 2022-06-29 09:38:02 -07:00
Mikayla Maki
db95c0d0e1 Removed dead clear code 2022-06-28 18:45:26 -07:00
Mikayla Maki
e3834409dd Fixed focus issues with scrolling and input 2022-06-28 18:28:13 -07:00
Mikayla Maki
38ed70d5cc Added theme support 2022-06-28 17:07:18 -07:00
Mikayla Maki
f28fb5797f Fixed scrolling and cursor location 2022-06-28 15:45:27 -07:00
Mikayla Maki
24d671ed3f First bits of polish 2022-06-28 15:45:27 -07:00
Mikayla Maki
2b1fa07e89 Working on selection 2022-06-28 15:45:27 -07:00
Mikayla Maki
9e55c60b6a working on selection and scrolling in terminals 2022-06-28 15:45:27 -07:00
Mikayla Maki
31bc758f35 Forgot to commit last night 2022-06-28 15:45:27 -07:00
Mikayla Maki
b36bf0c56d Finally on solid conceptual ground, able to move ahead confidently with Alacritty code 2022-06-28 15:45:27 -07:00