Commit Graph

3512 Commits

Author SHA1 Message Date
Mikayla Maki
4549395d02 update icon 2022-08-04 11:58:55 -07:00
Mikayla Maki
06b1a74156 Merge branch 'main' into new-button 2022-08-04 11:54:40 -07:00
ForLoveOfCats
c21314bfbd Add ability to provide custom LSP server initialization options 2022-08-04 14:47:06 -04:00
Max Brunsfeld
134803745a
Merge pull request #1469 from zed-industries/distinctive-marked-text
Tweak "marked ranges" test helper so that it can be used in documents with braces and brackets
2022-08-04 11:39:04 -07:00
Max Brunsfeld
89a645ee11 Add docs to some EditorTestContext methods that use marked text 2022-08-04 11:25:09 -07:00
Mikayla Maki
d823da05ee Added context menu to terminal 2022-08-04 11:22:09 -07:00
Max Brunsfeld
dc0a96c084 Add docs to marked range functions 2022-08-04 11:14:21 -07:00
Max Brunsfeld
26fdaeb92b Use new marked ranges format whenever we don't need overlapping ranges 2022-08-04 10:23:03 -07:00
Mikayla Maki
907d3e4035 Checkpoint, not compiling 2022-08-04 10:16:26 -07:00
Mikayla Maki
314c26e4ec Removed icons 2022-08-04 08:42:42 -07:00
Max Brunsfeld
8e6fb76681 Use new marked_ranges format in more editor tests 2022-08-03 20:04:47 -07:00
Max Brunsfeld
afcf5fc95b Update vim mode tests to use new marked text format 2022-08-03 17:52:34 -07:00
Mikayla Maki
96cc6d5ce5 Added icons to context menu 2022-08-03 16:47:41 -07:00
Max Brunsfeld
eabd9c02e5 Update marked text helpers to use more distinctive characters for markers 2022-08-03 16:45:16 -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
9c3b287a61
Merge pull request #1464 from zed-industries/lower-latency
Lower terminal latency
2022-08-03 12:21:30 -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
Max Brunsfeld
6e76bd32da
Merge pull request #1462 from zed-industries/crash-on-goto-diagnostic
Fix two crashes related to diagnostics and bugs in mouse-based columnar selection
2022-08-03 12:04:56 -07:00
Julia
b0dc487fdf
Merge pull request #1460 from zed-industries/insert-newline-below
Add `newline_below` action
2022-08-03 14:56:01 -04:00
Mikayla Maki
edbe4474ab
Merge pull request #1463 from zed-industries/fix-lockup-on-move
Fix lockup on move
2022-08-03 11:39:53 -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
f34d686aa5
Merge pull request #1461 from zed-industries/touch-ups
Touch ups
2022-08-03 10:20:04 -07:00
Max Brunsfeld
096f4693d3 Fix crash and wrong columnar selection when mousing over block lines 2022-08-03 10:19:06 -07:00
Max Brunsfeld
e1431ede36 Avoid crash when clicking the popover of a diagnostic that's been removed 2022-08-03 09:10:00 -07:00
ForLoveOfCats
f9dc14be43 Add newline_below action 2022-08-03 11:34:40 -04:00
Antonio Scandurra
7cbf76ce80 Implement default macOS menu items
- `Zed -> Hide`, bound to `cmd-h`
- `Zed -> Hide Others`, bound to `alt-cmd-h`
- `Zed -> Show All`
- `Window -> Minimize`, bound to `cmd-m`
- `Window -> Zoom`
2022-08-03 15:13:30 +02:00
Antonio Scandurra
3174b08082 Update old snapshot when only the tab size changes 2022-08-03 12:23:02 +02:00
Antonio Scandurra
1e94eb74f4 Don't ignore new tab snapshot in WrapMap if only tab size changed 2022-08-03 12:16:46 +02:00
Antonio Scandurra
385d214b47 Enhance DisplayMap randomized test to change tab size
This removes the need for a unit test.
2022-08-03 12:01:26 +02:00
Antonio Scandurra
d1f155337f Recompute layers above tab map entirely when tab size changes
Previously, we wouldn't generate any `TabEdit` when the tab size
changed, causing coordinate spaces in `WrapMap` and `BlockMap` to
become outdated.

This commit generates a synthetic edit that covers the entire `TabMap`
to ensure layers above are synchronized.
2022-08-03 11:06:17 +02: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
Max Brunsfeld
039c94c829 🎨 Editor::tab 2022-08-02 17:02:25 -07:00
Mikayla Maki
541c373d53
Merge pull request #1408 from zed-industries/rendering-performance
Tracking PR for Terminal rendering performance bugs
2022-08-02 16:16:23 -07:00
Julia
8115c1ab24
Merge pull request #1451 from zed-industries/tab-auto-indent
Auto-indent on tab for cursors left of the suggested indent level
2022-08-02 15:52:12 -04: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
Max Brunsfeld
2533648419 Fix selection positions in tab w/ multiple non-empty selections on the same line
Co-authored-by: Julia Risley <floc@unpromptedtirade.com>
2022-08-02 11:42:23 -07:00
Max Brunsfeld
c87eb16ad9 Restructure tab command to treat each cursor individually
Co-authored-by: Julia Risley <floc@unpromptedtirade.com>
2022-08-02 11:08:49 -07:00
Antonio Scandurra
0851524889
Merge pull request #1444 from zed-industries/smaller-diffs
Compute diffs based on characters rather than lines
2022-08-02 19:17:54 +02: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
Antonio Scandurra
fc14100134 Fix tests 2022-08-02 18:48:17 +02:00
Mikayla Maki
7111576986 Merge main into branch 2022-08-02 09:25:52 -07:00
Antonio Scandurra
71128d2ee6 Compute diffs based on characters rather than lines
Previously, a change on a given line would cause that whole line to be
replaced. In turn, this caused anchors on that line to go to the start
of that line because they would lie inside of a deleted region after applying
the diff.

By switching to a character-wise diff, we perform smaller edits to the buffer
which stabilizes anchor positions.
2022-08-02 16:52:37 +02:00
Antonio Scandurra
25d47daad6 Fix tests assuming a certain execution order 2022-08-02 14:40:46 +02:00
Antonio Scandurra
a1d0d2ccc4 Add tests for client authentication while a previous sign in is pending 2022-08-02 14:28:47 +02:00
Antonio Scandurra
aa09bc527f Allow signing in again if authentication is pending or was unsuccessful
The local server that we spin up to receive OAuth callbacks isn't
called when an error occurs and it is non-trivial to do so with
next-auth. Besides, there could be cases where the user explicitly
closes the browser window before the callback can be invoked.

With this commit, the user can sign in even while an authentication
is still in progress. As opposed to waiting for at most 10 minutes
before killing the local HTTP server if we haven't received the callback,
we will repeatedly check for a response every second for 100 seconds.
This gives us a chance to determine whether a new authentication has started
in the meantime and, if so, abort the current authentication flow.
2022-08-02 14:16:14 +02: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
Max Brunsfeld
115677ec5d Start work on auto-indenting lines on tab
Co-authored-by: Julia Risley <floc@unpromptedtirade.com>
2022-08-01 16:47:59 -07:00
Mikayla Maki
05cc78d929 Abandoning this attempt, nto good enough at async 2022-08-01 16:47:16 -07:00
Max Brunsfeld
33638c0c11 Use first cursor's indent column when pasting w/ different # of cursors 2022-08-01 11:03:07 -07:00
Max Brunsfeld
04e40608a0 Fix mistakes in editor auto-indent test 2022-08-01 11:02:29 -07:00
Antonio Scandurra
bc8bec8261 Assign 5 invites to users who redeem an invite code 2022-08-01 14:58:28 +02:00
Antonio Scandurra
a59813cec5
Merge pull request #1430 from zed-industries/xdg-compliance
Store config files under `~/.config/zed` and data files under `~/Library/Application Support/Zed`
2022-08-01 12:13:08 +02:00
ForLoveOfCats
d474e1e1f4 Deduplicate some lsp_command code 2022-07-29 18:04:14 -04:00
ForLoveOfCats
479fbee574 Add test cases for `cmd+shift+click" behavior 2022-07-29 17:00:07 -04:00
ForLoveOfCats
2c70583ef0 Add cmd+shift+click action for triggering go to type definition 2022-07-29 17:00:07 -04:00
ForLoveOfCats
5149c15329 Add "go to type definition" action 2022-07-29 11:41:08 -04:00
Antonio Scandurra
f2d92d640d Copy setting and keymap files from legacy config locations 2022-07-29 10:01:48 +02:00
Antonio Scandurra
5f6e4c7d91 Extract all zed config/cache paths into a paths module 2022-07-29 10:01:48 +02:00
Antonio Scandurra
cfe3ebd2b3 Use XDG-compliant directories for config and cache files 2022-07-29 10:01:48 +02:00
Max Brunsfeld
868c460620 🎨 Rename and simplify some autoindent stuff 2022-07-28 22:40:30 -07:00
Max Brunsfeld
7a26fa18c7 Record start columns when writing to the clipboard from Zed 2022-07-28 22:13:32 -07:00
Max Brunsfeld
2d05f906f1 Start work on adjusting pasted text based on old start column 2022-07-28 17:29:42 -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
Max Brunsfeld
3a74290359 Merge branch 'main' into autoindent-on-paste 2022-07-28 15:09:18 -07:00
Mikayla Maki
81cbdcfd11 Reduced time holding lock even more 2022-07-28 14:58:19 -07:00
Max Brunsfeld
fa5af4383d Introduce AutoindentMode parameter to Buffer::edit
This controls whether or not we preserve the relative indentation
of inserted text blocks.

Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
2022-07-28 14:03:31 -07:00
Max Brunsfeld
cdf6ae25bb Remove indent_size parameter from Buffer::edit_with_autoindent
Instead, compute the indent size by reading the settings inside that method.

Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
2022-07-28 13:00:05 -07:00
Max Brunsfeld
b1b252ee45 Fix error in autoindent range calculation 2022-07-28 11:51:03 -07:00
Antonio Scandurra
df6e733e68 Open both old and new log files, but just retain the last 1000 lines 2022-07-28 10:25:40 +02:00
Antonio Scandurra
de35c3f99d Prevent log file from becoming larger than 1MB 2022-07-28 10:02:38 +02:00
Isaac Clayton
b20aefc842 First draft for opening Zed.log 2022-07-28 09:25:39 +02: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
92de5ab000 v0.49.1 2022-07-27 13:39:29 +02:00
Antonio Scandurra
f0814c7784 Fix vim tests using old key bindings 2022-07-27 12:19:01 +02:00
Antonio Scandurra
6a718dc4da Don't insert input when the fn key is held 2022-07-27 12:01:44 +02:00
Antonio Scandurra
d3f14fb1c2 Dispatch application menu events if custom key equivalent wasn't found 2022-07-27 11:46:47 +02:00
Antonio Scandurra
fe7ba09d52 Honor shift when converting keystroke to native key equivalent 2022-07-27 09:28:56 +02:00
Max Brunsfeld
f547c268ce Restructure autoindent to preserve relative indentation of inserted text 2022-07-26 17:43:43 -07:00
Max Brunsfeld
537530bf76 🎨 compute_autoindents 2022-07-26 17:09:30 -07:00
Max Brunsfeld
09ed149184 Improve calculation of which lines are new when auto-indenting 2022-07-26 17:09:30 -07:00
Mikayla Maki
d1e878f0c6 Checkpoint, still not compiling 2022-07-26 16:58:14 -07:00
Mikayla Maki
6b9c1e78c1
Merge pull request #1417 from zed-industries/working-directory-regression
Fixed regression in working directory code
2022-07-26 16:39:40 -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
Max Brunsfeld
ef1efb615e 0.49.0 2022-07-26 14:26:45 -07:00
Mikayla Maki
71af876489 removed stray file 2022-07-26 13:10:04 -07:00
Keith Simmons
4ff007eaab
Merge pull request #1414 from zed-industries/fix-theme-issues
Fix tab bar themes
2022-07-26 11:55:17 -07:00
K Simmons
2bd0819ac8 Extract tab bar from workspace 2022-07-26 10:41:02 -07:00
Antonio Scandurra
8552ba15dc Show symbols located in visible paths before ones located externally 2022-07-26 14:48:18 +02:00
Antonio Scandurra
f775cb2947 Honor sort_text when language server provides completions 2022-07-26 10:41:39 +02:00
Antonio Scandurra
45eb0e7889 Clip invalid edits from LSP instead of reporting an error
This fixes an issue with the Go language server, which reports invalid
formatting ranges when there's a missing newline at the end of the file.
Specifically, if the buffer is `N` lines long, it will try to insert the
newline at `Point(N + 1, 0)`.

I confirmed the behavior is the same in VS Code, and they indeed clip the
LSP ranges as well.
2022-07-26 08:43:27 +02: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
Max Brunsfeld
9cefeb08e1
Merge pull request #1411 from zed-industries/no-gpu-log
Log instead of showing an alert when exiting due to no GPU
2022-07-25 16:21:05 -07:00
Max Brunsfeld
ea82b9353d Log instead of showing an alert when exiting due to no GPU
Showing the alert resulted in a panic because tasks
dispatched to the app's main GCD queue continue
to run even while the alert is displayed.
2022-07-25 16:13:28 -07:00
Mikayla Maki
313316fe88 fixed 2022-07-25 16:08:31 -07:00
Julia
888405a4b2
Merge pull request #1409 from zed-industries/middle-mouse-close-tabs
Allow closing tabs with the middle mouse button
2022-07-25 17:05:00 -04:00
Max Brunsfeld
13097ea110 Update terminal test to reflect new text insertion approach 2022-07-25 12:21:26 -07:00
Max Brunsfeld
ab037fe844 Simulate calling of text-insertion APIs in TestAppContext::dispatch_keystroke 2022-07-25 12:20:12 -07:00
Max Brunsfeld
a54d9f1697 Add comment about noop performKeyEquivalent function 2022-07-25 11:42:54 -07:00
Max Brunsfeld
09c0211c96 Bump the RPC protocol version 2022-07-25 11:36:52 -07:00
Max Brunsfeld
4c8d9384b1 Replaces lines_utf16 with a single u32 - last_line_len_utf16 2022-07-25 11:35:42 -07:00
ForLoveOfCats
36d789ff84 Allow closing tabs with the middle mouse button 2022-07-25 14:23:38 -04:00
Antonio Scandurra
6dc27cbba2 Add test for IME composition with multiple cursors 2022-07-25 17:47:10 +02:00
Antonio Scandurra
ff99f8d0ca Clip UTF-16 offsets provided by Cocoa when composing IME input 2022-07-25 17:32:33 +02:00
Antonio Scandurra
47e8bd5f4f Introduce MultiBuffer::clip_offset_utf16 2022-07-25 15:06:04 +02:00
Antonio Scandurra
c46be992e0 Introduce Rope::clip_offset_utf16 2022-07-25 15:02:45 +02:00
Antonio Scandurra
bb55d654ce Handle IME composition with multiple cursors 2022-07-25 14:50:09 +02:00
Antonio Scandurra
acdfb933e8 Honor shift if pressing command switches keyboard 2022-07-25 11:01:38 +02:00
Antonio Scandurra
ca3e73106c Merge branch 'main' into ime-support-2 2022-07-25 10:47:49 +02:00
Antonio Scandurra
d3567e381c Coalesce IME compositions into a single edit 2022-07-25 09:53:51 +02:00
Antonio Scandurra
555e705ccb 🎨 2022-07-23 09:31:41 +02:00
Antonio Scandurra
0fc7308932 Allow grouping local transactions even if remote peer edits in between 2022-07-23 09:27:21 +02:00
Max Brunsfeld
79f960b69e Combine adjacent ranges in 'edited_ranges_for_transaction' 2022-07-22 17:41:31 -07:00
Max Brunsfeld
7c3421e041 Remove versioned offset ranges from transactions and undo operations
Now, instead of using these versioned offset ranges, we locate the
fragments associated with a transaction using the transaction's
edit ids. To make this possible, buffers now store a new map called
`insertion_slices`, which lets you look up the ranges of insertions
that were affected by a given edit.

Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2022-07-22 17:28:55 -07:00
Nate Butler
f963c0ed45 WIP for keith 2022-07-22 17:28:58 -04:00
Mikayla Maki
8c1d4d877f
Merge pull request #1393 from zed-industries/graceful-exit
Polishing the terminal
2022-07-22 13:59:13 -07: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
Max Brunsfeld
65fd943509 Move edited_ranges_for_transaction from BufferSnapshot to Buffer
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2022-07-22 11:24:14 -07:00
Keith Simmons
2111fdc118
Merge pull request #1378 from zed-industries/diagnostics-popover
Diagnostics Popover
2022-07-22 11:12:56 -07:00
K Simmons
b93040a6ae attempt to fix broken test 2022-07-22 10:55:57 -07:00
Mikayla Maki
dce27870ce Refactored terminal tests 2022-07-22 10:20:15 -07:00
Nate Butler
088668ecf8 Fix reversed disclosure arrows in project panel 2022-07-22 11:57:53 -04:00
Antonio Scandurra
7b009c8bbe Merge branch 'main' into ime-support-2 2022-07-22 16:03:38 +02:00
Antonio Scandurra
2bfa3b9006 Synthesize CGEvents instead of using charactersByApplyingModifiers 2022-07-22 15:51:34 +02:00
Antonio Scandurra
622596619c Honor ⌘ when Dvorak-QWERTY is used 2022-07-22 14:52:24 +02:00
Antonio Scandurra
136550de9f Discard shift when it causes keyboard to output a different character 2022-07-22 08:15:44 +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
372c3eed52 Adjust editor tests to use input APIs instead of key events 2022-07-21 21:36:40 -07:00
Max Brunsfeld
0185b4fef4 Add simple IME handling to the terminal 2022-07-21 21:32:58 -07:00
Keith Simmons
9286e5ea04
Merge pull request #1396 from zed-industries/better-empty-pane
Fix Pane Focus Issues
2022-07-21 15:07:03 -07:00
K Simmons
d6519ad280 Minor naming improvements and revert empty pane background color change 2022-07-21 14:56:17 -07:00
Max Brunsfeld
6d264502b2 Remove print statements 2022-07-21 13:44:58 -07:00
Max Brunsfeld
2142fca673 Remove Input action, detect ignored input in vim via an event 2022-07-21 13:40:48 -07:00
Max Brunsfeld
beeaec8647 Prevent IME window from appearing while editor's input is disabled (vim) 2022-07-21 12:48:36 -07:00
Mikayla Maki
c6d5decbf9 Finished erorr terminal refactoring 2022-07-21 12:37:15 -07:00
Max Brunsfeld
7c575990be Remove the set_selected_text_range method from the InputHandler trait 2022-07-21 12:22:12 -07:00
Mikayla Maki
7c0a031506 added cursor text back 2022-07-21 10:04:12 -07:00
Antonio Scandurra
509f54bf20 Don't dispatch keydown event if editor is still composing 2022-07-21 17:37:32 +02:00
Antonio Scandurra
97ce3998ec Position IME input according to where the selection is rendered 2022-07-21 17:35:40 +02:00
Antonio Scandurra
3c5d7e001e Always mark keydown events as handled to suppress beep 2022-07-21 15:53:21 +02:00
Antonio Scandurra
3d6c257551 🎨 2022-07-21 14:39:22 +02:00
Antonio Scandurra
b2f2c5b055 Handle keydown event even when charactersIgnoringModifiers is empty
This allows the input system to work in the presence of dead keys.
2022-07-21 14:36:47 +02:00
Antonio Scandurra
101a0663d3 Remove input from KeyDownEvent 2022-07-21 14:29:27 +02:00
Antonio Scandurra
f170582c26 Remove println statements from NSTextInputClient protocol functions 2022-07-21 13:51:31 +02:00
Antonio Scandurra
a4ceae3cf2 Remove unused {cancel,finish}_composition methods 2022-07-21 13:48:56 +02:00
Antonio Scandurra
481078ae22 Restructure IME composition to not follow Chromium so closely 2022-07-21 13:41:55 +02:00
Antonio Scandurra
b02681ee8a Treat NSTextInputClient ranges as UTF-16 2022-07-21 13:41:35 +02:00
Antonio Scandurra
32662b6b92 Start indexing UTF-16 offsets
This is needed because cocoa will report ranges as UTF-16 indices.
2022-07-21 09:40:48 +02:00
Antonio Scandurra
eda60effed Honor setting the selected range in addition to marking text 2022-07-21 08:57:20 +02:00
K Simmons
fb2fbf2ac7 fix test failure 2022-07-20 19:13:16 -07:00
K Simmons
b85b2a90aa address warnings 2022-07-20 19:02:33 -07:00
K Simmons
02a47d962e add test coverage for diagnostic popover 2022-07-20 19:02:33 -07:00
K Simmons
95952f0c66 working diagnostic popover. Also renamed GoToNextDiagnostic to GoToDiagnostic and adjusted it's action to jump to the popover's diagnostic if it is visible 2022-07-20 19:02:33 -07:00
K Simmons
dbedc30abe WIP 2022-07-20 19:02:33 -07:00
K Simmons
daceb1eb5f Fix warning 2022-07-20 19:02:12 -07:00
K Simmons
225055ed5d Address some issues where panes don't get focused properly, make the focused pane more obvious, and prevent splitting of the pane with no items 2022-07-20 18:52:32 -07: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
Max Brunsfeld
f985515141 Start work on new text input handling in Editor 2022-07-20 16:45:27 -07:00
Max Brunsfeld
0b81a4dfae Call methods on the focused view during input events 2022-07-20 16:44:26 -07:00
Keith Simmons
d34d6ea184
Merge pull request #1392 from zed-industries/mouse-vim-mode-clipping
Fixup Clipping at Line Ends when Selecting with the Mouse in Vim Mode
2022-07-20 13:39:24 -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
Max Brunsfeld
1b0e93b153 Change interpretation of marked_text and edit when handling input
Co-authored-by: Antonio Scandurra <antonio@zed.dev
2022-07-20 09:53:49 -07:00
Antonio Scandurra
42ac4bf9fc WIP 2022-07-20 18:06:29 +02:00
Antonio Scandurra
2ea0b89e7c WIP 2022-07-20 15:07:09 +02:00
K Simmons
a77cf914ec Fix failing test re mode switch in buffer search 2022-07-19 17:18:17 -07:00
K Simmons
1cfaac1bc5 Fix clipping when dragging the mouse with vim-mode enabled and adjust single line editor selections 2022-07-19 17:18:17 -07:00
Nate Butler
bcc554a3db Merge branch 'main' into theme-improvements 2022-07-19 20:12:02 -04:00
Keith Simmons
c2868a39e8
Merge pull request #1388 from zed-industries/mouse-region-refactor
Mouse Region Refactor
2022-07-19 16:50:12 -07:00
Nate Butler
46384e71b7 Add icon sets for sizes 8, 12 and 16, remove old icons 2022-07-19 17:11:15 -04:00
Antonio Scandurra
7757fbe241 Implement NSTextInputClient protocol on window using no-ops 2022-07-19 14:52:02 +02:00
Antonio Scandurra
456a390166 Add character palette menu item 2022-07-19 14:51:57 +02:00
Max Brunsfeld
e5602b0ad4 0.48.1 2022-07-18 19:11:12 -07:00
Max Brunsfeld
815ce22fb7 Revert "Merge pull request #1359 from zed-industries/plugin-json-enable"
This reverts commit 94b443a704, reversing
changes made to 285832e810.
2022-07-18 19:04:49 -07:00
Max Brunsfeld
142a019ada 0.48.0 2022-07-18 16:24:57 -07:00
Max Brunsfeld
c1dfb6294b Dismiss project panel's rename editor when it loses focus 2022-07-18 16:10:09 -07:00
Max Brunsfeld
2ab732efdb
Merge pull request #1390 from zed-industries/fix-fs-watch-leak
Ensure that FS watchers are dropped when dropping their event stream
2022-07-18 15:16:41 -07:00
Max Brunsfeld
43613fe2ac Ensure that fs watches are dropped when dropping the event stream 2022-07-18 14:55:24 -07:00
Max Brunsfeld
7998771d9f Avoid panic when unable to access a GPU
This will remove noise from our panic logs.

Co-authored-by: Nathan Sobo <nathan@zed.dev>
2022-07-18 14:13:12 -07:00
K Simmons
deeefed7eb Change mouse_event_handler to use HandlerSet 2022-07-18 10:08:14 -07:00
K Simmons
ec25fa9260 Extract handler set from MouseRegion 2022-07-18 09:54:48 -07:00
Antonio Scandurra
11ef6bfbae Avoid unnecessarily emitting fake fs events for dirs that exist 2022-07-18 17:36:40 +02:00
Antonio Scandurra
f9df5fe595 Detect cycles also when processing events 2022-07-18 17:31:09 +02:00
Antonio Scandurra
b3218641cd Create intermediate directories in FakeFs::create_dir 2022-07-18 16:38:26 +02:00
Antonio Scandurra
b48118830f Detect cycles when scanning a directory 2022-07-18 13:47:15 +02:00
Antonio Scandurra
df33556693 Introduce a new TreeSet struct in sum_tree
This is just a special case of `TreeMap<K, V>` where `V = ()`.
2022-07-18 13:40:30 +02:00
Max Brunsfeld
f9a5ed3a85 Start work on a test for a worktree with symlink cycles 2022-07-18 12:23:07 +02:00
Max Brunsfeld
f6c1393dfd Restructure FakeFs to let it model symlinks
Instead of storing paths, model the FS more directly
as nodes
2022-07-18 12:23:07 +02:00
Antonio Scandurra
0aafc78eb7
Merge pull request #1385 from zed-industries/fix-lifetime-error
Fix spurious borrow checker error
2022-07-18 12:22:54 +02:00
Antonio Scandurra
51c40f4136
Merge pull request #1384 from zed-industries/expose-collaboration-metrics
Expose collaboration metrics
2022-07-18 10:44:29 +02:00
Antonio Scandurra
316a534a16 Allow querying active user counts for people that have collaborated 2022-07-18 10:29:10 +02:00
Isaac Clayton
c326a20193
Merge pull request #1367 from zed-industries/plugin-opaque
Guide to Opaque Types and Callbacks in Plugins
2022-07-18 09:20:10 +02:00
Antonio Scandurra
2cbb0ae843 Expose max number of project collaborators in Db::get_top_user_activity 2022-07-18 08:58:09 +02:00
K Simmons
8add81350e Rework presenter and MouseRegion to use Handler hashmap rather than individual fields 2022-07-17 23:19:32 -07:00
Nate Butler
4ca4449394 Update icons in rust
Updated icons
- Diagnostic states
- Sidebar icons (project, contacts)
- Navigation arrows
2022-07-16 11:51:10 -04:00
Antonio Scandurra
af917de684 Handle inserting multiple tabs on the same row
This also fixes a panic when tabbing on a row that contained multi-byte
characters.
2022-07-16 08:40:44 +02:00
Mikayla Maki
8349ead6b2 Add bracketed paste support 2022-07-15 19:01:08 -07:00
Mikayla Maki
cfc956d78f
Merge pull request #1376 from zed-industries/terminal-settings
Added settings for common terminal configurations
2022-07-15 18:50:40 -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
Max Brunsfeld
69146fb318 Allow the web client to specify activity bucket durations 2022-07-15 16:46:44 -07:00
Max Brunsfeld
1363d2c502 Add admin API for counting users with a given amount of activity 2022-07-15 16:46:44 -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
Isaac Clayton
85cf703282 Fix typos, minor revisions 2022-07-15 13:16:01 +02:00
Isaac Clayton
d121226cd6 Write initial plan 2022-07-15 12:58:20 +02: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
Keith Simmons
17f52fb587
Merge pull request #1355 from zed-industries/better-tab-ordering
More intuitive tab ordering
2022-07-14 12:26:46 -07:00
Antonio Scandurra
d4ee372eab 🎨 2022-07-14 16:46:45 +02:00
Antonio Scandurra
49ef33090c Add test for tab disambiguation 2022-07-14 16:42:30 +02:00
Isaac Clayton
91fefae96a Add retries to failing terminal test 2022-07-14 16:05:10 +02:00
Isaac Clayton
52e4774e8a Re-enable JSON plugin 2022-07-14 15:13:12 +02:00
Antonio Scandurra
fd5cb02ea9 Truncate description in tab title when it is too long 2022-07-14 15:12:16 +02:00
Isaac Clayton
b3ac63b7b5 Remove triple-based suffix 2022-07-14 15:05:54 +02:00
Isaac Clayton
af1ad474e3 Update docs 2022-07-14 13:46:41 +02:00
Isaac Clayton
80b45ef93b Precompile plugins depending on target triple 2022-07-14 13:23:04 +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
Isaac Clayton
4a5b8fd2e6 Merge fuel-based metering 2022-07-14 08:13:47 +02:00
K Simmons
52b29c0928 When tab closed, move to previous tab, and when opening an existing tab, reorder it to be after the current active tab 2022-07-13 20:14:44 -07:00
Max Brunsfeld
df838c74ca 0.47.1 2022-07-13 17:31:59 -07:00
Max Brunsfeld
c90fe31249
Merge pull request #1353 from zed-industries/fix-init-user-settings
Avoid copying all default settings to initial user settings
2022-07-13 17:31:10 -07:00
Max Brunsfeld
8292ba15ed Avoid copying all default settings to initial user settings
This would cause top-level default editor settings to override
language-specific default settings.

Co-authored-by: Nathan Sobo <nathan@zed.dev>
2022-07-13 17:07:41 -07: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
Max Brunsfeld
48624b796e 0.47.0 2022-07-13 15:59:11 -07:00
Max Brunsfeld
9c82d5b080
Merge pull request #1333 from zed-industries/editor-mouse-context-menu
Editor mouse context menu
2022-07-13 15:58:31 -07:00
Keith Simmons
ed1370eafc
Merge pull request #1330 from zed-industries/completions-setting
Completions Menu Setting
2022-07-13 15:35:10 -07:00
Max Brunsfeld
4775d839d7 Fix incomplete language names list being used for JSON schema
For now, since initializing the languages themselves is still async,
create a parallel duplicated code path that is synchronous, and
just provided the language names.
2022-07-13 15:04:28 -07:00
K Simmons
e7b1060bca fix merge error to use new default settings flow 2022-07-13 14:29:47 -07:00
Keith Simmons
7f3018c3f6 add show_completions_on_input setting to disable popping the completions menu automatically 2022-07-13 14:23:49 -07:00
Keith Simmons
5366ed4404 Add basic test for editor context menu 2022-07-13 14:13:19 -07:00
Keith Simmons
b850e41d6f Add editor mouse context menu with some basic refactorings and an entry to pop the code actions 2022-07-13 14:13:19 -07:00
Keith Simmons
d796b543e0 WIP add basic context menu and make progress toward adding quick actions to it 2022-07-13 14:13:19 -07:00
Max Brunsfeld
dddeb66e2a Temporarily remove JSON plugin + restore native JSON LspAdapter 2022-07-13 13:56:39 -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
Isaac Clayton
5e7456df4e Fix docs 2022-07-13 20:19:56 +02:00
Isaac Clayton
8bb8e851df Remove epoch-based metering 2022-07-13 18:03:14 +02:00
Isaac Clayton
562e22814f Remove .pre suffix use .epoch and .fuel instead 2022-07-13 17:08:43 +02:00
Isaac Clayton
3fb1cd0726 Fix issue where precompiled plugins were compiled with the wrong settings 2022-07-13 16:31:47 +02:00
Isaac Clayton
01a2d53638
Merge pull request #1327 from zed-industries/plugin-epoch
Configurable Plugin Yielding
2022-07-13 15:29:22 +02:00
Antonio Scandurra
1460fd0e2f
Merge pull request #1342 from zed-industries/mouse-based-splitting
Introduce mouse-based pane splitting
2022-07-13 15:25:20 +02:00
Antonio Scandurra
3e3bd7ccc8 Don't steal focus when splitting pane via context menu 2022-07-13 15:06:39 +02:00
Isaac Clayton
a6edf85078 Use enum to differentiate between normal and precompiled plugins 2022-07-13 14:26:52 +02:00
Isaac Clayton
daf1674ca6 Fix failing test 2022-07-13 13:27:31 +02:00
Isaac Clayton
c956a8866e Quick documentation fix 2022-07-13 13:21:45 +02:00
Isaac Clayton
b3e1fd0740 Rename a few items and add documentation 2022-07-13 13:19:51 +02:00
Isaac Clayton
8b376dd613 Fix resulting errors and introduce functional executor callback 2022-07-13 13:15:12 +02:00