Commit graph

353 commits

Author SHA1 Message Date
Max Brunsfeld
21cfb75a73 Flush redundant fs events in worktree test
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-04-28 12:42:39 -07:00
Nathan Sobo
92775290d9
Merge pull request #28 from zed-industries/close-tabs
Add tab close buttons
2021-04-28 13:19:42 -06:00
Nathan Sobo
53013b3ab7 Merge remote-tracking branch 'origin/master' into close-tabs 2021-04-28 13:15:00 -06:00
Nathan Sobo
1cb3fdbf7d Synthesize a mouse moved event in the previous position after painting a scene
This ensures that we correctly update the hover state of elements whose position has changed relative to the mouse cursor even though the mouse hasn't actually moved.

Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-04-28 13:02:39 -06:00
Nathan Sobo
b5463dcd1e Close tabs when X is clicked
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-04-28 10:00:45 -06:00
Nathan Sobo
bc1f758b66 Lighten tab close button when clicked
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-04-28 09:39:13 -06:00
Nathan Sobo
8c51bb253d Render sprited icons at 2x resolution since we don't align to pixel grid
This provides the sampler with a bit more data when positioning sprites at subpixel positions.

Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-04-28 09:32:38 -06:00
Max Brunsfeld
1eba61c08d Flush the fs event stream on construction 2021-04-27 21:43:41 -07:00
Nathan Sobo
69cc2b0483 WIP 2021-04-27 18:35:24 -06:00
Max Brunsfeld
c1d35b099b Ignore 'historical' events from fs event stream
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-27 16:50:05 -07:00
Max Brunsfeld
907b537a0b Fix race when fs events occur right after constructing worktree
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-27 16:38:47 -07:00
Nathan Sobo
58e336354e Align close tab icon cleanly with unsaved indicator 2021-04-27 16:51:23 -06:00
Max Brunsfeld
110dcc48f9
Merge pull request #26 from zed-industries/stable-file-finder-results
Improve file finder behavior when opening large directories like `~` or `/`
2021-04-27 15:37:24 -07:00
Max Brunsfeld
eec8a3b555 Simplify file finder update_matches logic 2021-04-27 14:58:54 -07:00
Max Brunsfeld
75b8f7425d Avoid redundant sort_unstable_by call on merged fuzzy matches 2021-04-27 14:34:29 -07:00
Max Brunsfeld
a59b75c839 Keep results stable when using file-finder while scanning files 2021-04-27 14:02:55 -07:00
Max Brunsfeld
6882fdca38 Avoid crash when running pane:activate_prev_item w/ no tabs open 2021-04-27 11:01:32 -07:00
Nathan Sobo
eca9f495a1 Render a close tab button on tab hover
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-04-27 11:58:59 -06:00
Nathan Sobo
bb95d58c79 Relay hover events to tabs
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-04-27 11:37:14 -06:00
Nathan Sobo
3d1e44ca29 Capture hover events on tabs
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2021-04-27 09:23:44 -06:00
Antonio Scandurra
2a1496be2e
Merge pull request #24 from zed-industries/fix-autoscroll-on-paste
Autoscroll on paste
2021-04-27 11:59:37 +02:00
Antonio Scandurra
b52a3b5a24 Autoscroll on paste
This also removes the `changed_selections` and moves the autoscroll
request inside of `update_selections`. This is nicer because it'll force
us to determine whether we want to autoscroll every time we update the
selections, so that we don't forget this in the future.
2021-04-27 11:52:46 +02:00
Nathan Sobo
fc4b7e2a2a Introduce MouseEventHandler
Still need to give elements the ability to re-render their parent view. Once that is in place, I think we can implement hoverable close tab buttons.
2021-04-26 21:52:18 -06:00
Nathan Sobo
a47b0b4ca6 Add a mechanism for storing ephemeral values
I'll use this in the mouse event handler to track hover and click state.
2021-04-26 21:24:23 -06:00
Nathan Sobo
d31f2defa5
Merge pull request #15 from zed-industries/rescan
Update Worktrees when the file system changes
2021-04-26 20:35:01 -06:00
Nathan Sobo
f29f1b073d Preserve selected file finder path when Worktree changes 2021-04-26 20:23:56 -06:00
Max Brunsfeld
55fcc586bc Cancel outstanding fuzzy-matching calls before starting a new one
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-26 16:14:43 -07:00
Max Brunsfeld
09f5c7c23e Fix scrollwheel events in uniformlist
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-26 15:53:38 -07:00
Max Brunsfeld
733dc15c32 Ignore .git directories 2021-04-26 15:46:06 -07:00
Max Brunsfeld
e7c594262f Fix handling of uppercase characters in fuzzy finding 2021-04-26 15:04:26 -07:00
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
Max Brunsfeld
9753e67410 Update filehandle paths when renames occur
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-26 12:56:13 -07:00
Antonio Scandurra
6535304da8 WIP: Start on updating file handles
Co-Authored-By: Max Brunsfeld <max@zed.dev>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-26 20:10:15 +02:00
Antonio Scandurra
111d98d6c1 Keep ignore status up-to-date as events are processed 2021-04-26 17:55:18 +02:00
Nathan Sobo
f770a70929 WIP: Maintain an IgnoreStack while scanning
All ignore files associated with ancestors of the directory currently being scanned are included in the stack. This allows us to compute ignore status for each entry as we initially scan it. If we encounter an ignored directory, we replace the stack with an "ignore all" variant that simply ignores every descendant of the ignored directory.

This is incomplete. We still need to construct an ignore stack in an appropriate state when rescanning subtrees in response to events. It also doesn't deal with individual ignore files being added, removed, or changed. I think we could potentially use the ignore stack while reconstructing the tree for this purpose.
2021-04-24 23:59:03 -06:00
Antonio Scandurra
9cd1d5e607 Avoid cloning entry in Snapshot::entry_for_path 2021-04-24 10:14:17 +02:00
Max Brunsfeld
6a7308b87a Avoid storing redundant copies of file paths
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-23 21:17:26 -07:00
Max Brunsfeld
054203d21c Fix fuzzy matching after removing root dirname from stored paths
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-23 15:22:47 -07:00
Nathan Sobo
dced9469f5 WIP
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-04-23 12:47:23 -06:00
Nathan Sobo
c9d7249305 WIP
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-04-23 11:37:23 -06:00
Antonio Scandurra
ec2e1c3045 Rename PathSearch::Sibling to PathSearch::Successor
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-23 17:15:04 +02:00
Antonio Scandurra
8f2fc079fd Restructure Worktree to index entries by path 2021-04-23 15:25:59 +02:00
Max Brunsfeld
ae5f02d2e9 Use getmntinfo(3) to list mounted volumes
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-22 15:41:03 -07:00
Max Brunsfeld
b37b047400 Start work on excluding separate mount dirs
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-22 14:11:46 -07:00
Max Brunsfeld
3e44a0adae Avoid redundant clearing of descendants when scanning dirs
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-22 10:30:47 -07:00
Antonio Scandurra
b2e7a2c42a Log when there's an error while scanning a directory
Co-Authored-By: Max Brunsfeld <max@zed.dev>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-22 19:15:37 +02:00
Antonio Scandurra
99f51c0d85 Simulate .gitignores in the randomized test
Co-Authored-By: Max Brunsfeld <max@zed.dev>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-22 18:57:46 +02:00
Antonio Scandurra
928ce0eec8 Clear descendants of existing children when scanning a directory
Co-Authored-By: Max Brunsfeld <max@zed.dev>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-04-22 18:42:11 +02:00
Antonio Scandurra
9723e46af4 Replace linear scan of entries with a custom FileIter 2021-04-22 17:29:36 +02:00
Antonio Scandurra
c429a937be Remove is_ignored from PathEntry and lean more on the tree instead 2021-04-22 16:49:11 +02:00