Max Brunsfeld
1d1f8df180
Trigger completion when typing words or trigger characters
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-31 17:07:24 -08:00
Max Brunsfeld
8d2b7ba032
Insert completion text on enter
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-31 13:46:50 -08:00
Max Brunsfeld
071a55a7ab
Allow selecting items from the autocomplete list
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-31 13:25:46 -08:00
Max Brunsfeld
16c0baced6
Dispatch editor events on the autocomplete list
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-31 13:15:30 -08:00
Max Brunsfeld
6da01eac9b
Make editor element's paint and layout states non-optional
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-31 13:06:59 -08:00
Max Brunsfeld
c19d639e0a
Derive autocomplete menu's width from the width of its largest item
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-31 13:01:20 -08:00
Nathan Sobo
1a6e972ed4
Get basic list of completions rendering without styling
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-01-31 13:17:42 -07:00
Nathan Sobo
ab6eb0a655
Start on completion rendering
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-01-31 12:19:17 -07:00
Nathan Sobo
960696a504
Bind autocomplete to ctrl-space
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-01-31 11:34:19 -07:00
Nathan Sobo
0344c543af
Return anchored completions from Buffer::completions
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-01-31 11:25:00 -07:00
Antonio Scandurra
03bcbdc33d
WIP
2022-01-31 19:12:35 +01:00
Antonio Scandurra
bd2527e691
Use StringMatchCandidate::new to construct candidates more conveniently
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-31 19:11:13 +01:00
Antonio Scandurra
1e96fc98e7
Advertise additionalTextEdits
resolution capability to language servers
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-31 19:09:29 +01:00
Antonio Scandurra
808550fe41
v0.14
2022-01-31 15:14:54 +01:00
Antonio Scandurra
08b8b60377
Merge pull request #378 from zed-industries/multibuffer-anchors
...
Fix errors when anchors escape an excerpt's buffer boundaries
2022-01-31 14:28:41 +01:00
Antonio Scandurra
52f9c27338
Merge pull request #380 from zed-industries/find-bar
...
Find in buffer
2022-01-31 14:23:40 +01:00
Antonio Scandurra
3ccbd77269
Move match index before the navigation buttons
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-31 14:06:49 +01:00
Antonio Scandurra
51ec350635
Assign a background to find buttons
2022-01-31 14:00:35 +01:00
Antonio Scandurra
eb537214ed
Fix panic when moving to next/prev result but there are no matches
2022-01-31 11:04:53 +01:00
Antonio Scandurra
803cdd00a6
Add some basic styling to FindBar
2022-01-31 11:00:29 +01:00
Antonio Scandurra
7db4cad9e0
Fix panic when closing pane's last item
2022-01-31 10:10:15 +01:00
Antonio Scandurra
611538f6bd
Clear highlighted matches when dismissing FindBar
2022-01-31 09:58:03 +01:00
Nathan Sobo
b1639e5677
Add cmd-g and cmd-shift-g to jump to next / previous result
...
I added the action handler on Pane so we can use these bindings when the find bar isn't focused.
2022-01-30 20:59:20 -07:00
Antonio Scandurra
f90193beea
Populate query and select it only if find bar isn't already deployed
2022-01-30 16:44:42 +01:00
Antonio Scandurra
83423a4344
Use cmd-f to move focus back to the editor when find bar is focused
2022-01-30 16:30:07 +01:00
Antonio Scandurra
9ce1eda305
Bind cmd-e
to deploy FindBar
without focusing it
2022-01-30 16:11:48 +01:00
Antonio Scandurra
ce5270488f
Propagate Cancel
when editor is not in full mode
...
This is consistent with what VS Code and Sublime Text do and allows the user to
perform only one keybinding to e.g. dismiss the find bar when the query is
(partially) selected.
2022-01-30 16:01:53 +01:00
Antonio Scandurra
c53b6b907a
Populate query with text under selection when hitting cmd-f
2022-01-30 16:01:05 +01:00
Antonio Scandurra
2a1b1adfab
Bind enter
and shift-enter
in FindBar
2022-01-30 15:20:57 +01:00
Antonio Scandurra
e8105c9a99
Show a message when no matches were found
2022-01-29 18:23:14 +01:00
Antonio Scandurra
c16bd98f56
Fix panic when no matches were found
2022-01-29 18:21:19 +01:00
Antonio Scandurra
969d81b632
Determine active match index correctly when cursor is after last match
2022-01-29 16:44:26 +01:00
Antonio Scandurra
df4cc45790
Select next/prev find match based on whether we intersect active match
...
Also, capture the next/prev selection logic in a unit test.
2022-01-29 16:16:48 +01:00
Antonio Scandurra
1d55872e7a
Display active match and allow going to next or previous match
...
We still need to write a unit test for this, as well as add a keybinding.
2022-01-29 14:38:58 +01:00
Antonio Scandurra
5ebd24d528
📝 Improve assertion comment
2022-01-29 10:41:55 +01:00
Antonio Scandurra
a284e7140c
Always return valid locations when refreshing anchors
...
Specifically, with this commit:
- We will now refresh the anchor if it escapes the boundaries of the excerpt by
using the `Excerpt::contains` method. This was not the case before, as we were
just checking if the excerpt id and buffer id of the anchors matched the ones
stored on the excerpt.
- We fixed a bug that was causing the anchor to be outside of the excerpt when
resetting it to one of the excerpt's endpoints after we couldn't keep its
position. This would happen because we were using `anchor_at`, which resolved
the anchor to an offset first and then converted it back into an anchor with
the given bias, which is a lossy operation. We now use `Anchor::bias` to
achieve the same goal: note that this could still lead to the anchor escaping
the excerpt's boundary when the bias doesn't match the endpoint's bias, so we
take extra care to avoid that and `min`/`max` the newly-produced anchor with
the other endpoint.
2022-01-29 10:10:53 +01:00
Antonio Scandurra
2d6e348185
Prevent anchors from escaping their excerpt's range when resolving them
...
This could happen if an anchor was created on an excerpt with a larger range.
Then, if the excerpt was removed and added back at the same position and with
the same buffer but a smaller range, resolving the anchor could overshoot
the excerpt's boundaries.
2022-01-29 09:52:38 +01:00
Max Brunsfeld
5c7cea5a3e
WIP - Navigate to prev/next search result
2022-01-28 14:00:00 -08:00
Max Brunsfeld
7e02d669e1
Add a simple unit test for find bar
2022-01-28 13:05:29 -08:00
Max Brunsfeld
be7f5340d0
Adjust hover assertion in lsp test after bumping rust-analyzer
2022-01-28 12:11:26 -08:00
Antonio Scandurra
d2a64f2171
Optimize search when regex doesn't contain newlines
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-01-28 17:26:08 +01:00
Antonio Scandurra
5b9d791269
Implement regex search with multiline support
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-28 16:15:18 +01:00
Antonio Scandurra
5c862bfe98
Maintain search results as query and active editor changes
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-28 15:19:58 +01:00
Antonio Scandurra
860e37d50f
Move finding results in the background
2022-01-28 12:15:55 +01:00
Antonio Scandurra
b2ded5bca8
Optimize some common operations when MultiBuffer
is a singleton
2022-01-28 11:50:13 +01:00
Antonio Scandurra
b980b11053
Implement whole word mode
2022-01-28 11:48:04 +01:00
Nathan Sobo
df1810a3b0
A bit more progress styling find
...
Fix the pinwheel when hovering mode buttons.
2022-01-27 18:59:44 -07:00
Max Brunsfeld
da35df0cca
WIP
2022-01-27 16:16:51 -08:00
Max Brunsfeld
4f0ffdcdaf
Avoid panic when closing the last tab in a pane, due to calling activate_item
2022-01-27 15:38:10 -08:00
Max Brunsfeld
3abd7bc8dd
Highlight find matches
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-27 15:19:52 -08:00
Max Brunsfeld
34ed734749
Add highlighted_ranges API to editor
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-27 15:19:28 -08:00
Max Brunsfeld
d8e4464a89
WIP - Run substring search when typing in find bar
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-27 13:00:51 -08:00
Max Brunsfeld
05e20ca72b
Inform toolbars when active item changes
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-27 13:00:23 -08:00
Antonio Scandurra
bebde782fa
Deploy FindBar
when hitting cmd-f
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-01-27 17:56:50 +01:00
Antonio Scandurra
e7d4c385d5
Take an Into<AnyViewHandle>
in ChildView::new
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-01-27 17:54:45 +01:00
Antonio Scandurra
dbf48d2a5b
Merge pull request #375 from zed-industries/more-project-diagnostics-styling
...
Last touches on project diagnostics for now
2022-01-27 16:47:05 +01:00
Antonio Scandurra
3853826f78
Pause cursor blinking only when editor is focused
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-27 16:33:47 +01:00
Antonio Scandurra
37032f5eb2
Show non-disk-based diagnostics in project diagnostics
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-27 16:23:50 +01:00
Antonio Scandurra
ff24766319
Fix warning
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-27 15:55:48 +01:00
Antonio Scandurra
41ec4645ab
Don't panic when ending transaction that wasn't started by the same editor
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-27 15:53:44 +01:00
Antonio Scandurra
f055053fc9
Avoid grouping transactions created by different editors
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-27 15:51:46 +01:00
Antonio Scandurra
4d9cdd474b
Style empty project diagnostics state
2022-01-27 10:21:26 +01:00
Antonio Scandurra
3e4fe09d00
Filter out supporting diagnostics that contain no messages
2022-01-27 09:51:15 +01:00
Max Brunsfeld
0e55f0ccaa
Use Rust 2021 edition in all crates
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-26 12:50:31 -08:00
Max Brunsfeld
509d362bdd
Avoid stripping newlines before opening backticks in error messages
2022-01-26 11:51:12 -08:00
Max Brunsfeld
f1d621133e
Dial back opacity of border.1 in dark themes
2022-01-26 11:27:00 -08:00
Max Brunsfeld
76bbd101c6
Increase diagnostic editor's vertical scroll margin
...
This way, the first path header will always be fully visible when
you move your cursor to the beginning of the multibuffer.
2022-01-26 10:23:41 -08:00
Max Brunsfeld
9b9fcf6927
Avoid showing selection strip on top of diagnostic headers
2022-01-26 10:23:40 -08:00
Antonio Scandurra
51c34ebcc2
Alpha-blend borders with backgrounds in quad SDF
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-01-26 19:16:26 +01:00
Antonio Scandurra
02baaa3529
Bump the protocol version
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-26 17:42:04 +01:00
Nathan Sobo
e585bc7199
Add retries to rescan test that uses the real file system
...
We could potentially use a fake file system, but this should avoid flaky tests in the short run.
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-01-26 09:25:06 -07:00
Antonio Scandurra
0263ea289c
Style diagnostic header's border in light and dark theme
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-26 17:08:24 +01:00
Antonio Scandurra
dedd5d63fb
Fix blending of quad's border with background
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-26 17:06:20 +01:00
Antonio Scandurra
3f6960bd34
Position underlines at a distance proportional to the line descent
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-26 16:03:06 +01:00
Antonio Scandurra
b9b255652f
Display squiggly underlines underneath text with diagnostics
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-26 15:52:40 +01:00
Antonio Scandurra
52594fe250
WIP: Start on squiggly underlines
2022-01-26 13:07:39 +01:00
Max Brunsfeld
a890787923
Render header blocks as horizontall fixed (like the gutter)
...
Tweak editor layout to perform horizontal autoscroll before
laying out the blocks, so that they can access the scroll position.
2022-01-25 17:19:38 -08:00
Max Brunsfeld
f19934096a
Account for editor's full scroll width when laying out blocks
...
Compute the editor's scroll width earlier in layout and
store it on the layout state, rather than computing it repeatedly.
2022-01-25 16:31:14 -08:00
Max Brunsfeld
cefb63936d
Tweak diagnostic header styling
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-25 15:33:49 -08:00
Max Brunsfeld
e04e929010
Render diagnostic status bar icon with icons
2022-01-25 15:33:34 -08:00
Max Brunsfeld
dbe969893c
Show icons and counts in the project diagnostics tab
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-25 12:31:55 -08:00
Max Brunsfeld
c9b4bb78f2
Merge branch 'project-diagnostics-pinned-tab' into style-project-diagnostics
2022-01-25 12:20:37 -08:00
Max Brunsfeld
78b57e4d9d
Scale diagnostic header and message text with editor font
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-25 12:10:11 -08:00
Nathan Sobo
0c6fd157ee
Scale diagnostic headers icons with editor font and right align w/ line numbers
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-01-25 12:40:53 -07:00
Antonio Scandurra
121b45e249
Sanitize language server diagnostics coming from Rust
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-25 17:49:50 +01:00
Antonio Scandurra
7250974aa6
Style block decorations
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-25 17:07:12 +01:00
Antonio Scandurra
65d4c33c0e
Format messages within backticks using bold instead of with a background
2022-01-25 15:50:49 +01:00
Antonio Scandurra
7e55353de8
Show error code in diagnostic header
2022-01-25 15:23:58 +01:00
Antonio Scandurra
ec0ca2a1b6
Display icon next to primary message
2022-01-25 15:15:03 +01:00
Antonio Scandurra
e7ec016350
Restyle diagnostic headers
2022-01-25 12:23:24 +01:00
Max Brunsfeld
0cfb9ff1ae
Add random delays in FakeFs
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-24 16:50:38 -08:00
Max Brunsfeld
2b8685c1a2
Insert random delays when sending and receiving websocket messages in tests
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-24 16:37:22 -08:00
Nathan Sobo
d241ab6370
Don't store operations for remote buffers we haven't yet opened
...
This used to be needed, but we think with our improvements to message ordering that we'll never miss operations that were applied after opening a remote buffer.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-01-24 17:33:46 -07:00
Nathan Sobo
afa33c958b
Clear shared buffers when unsharing projects
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-01-24 17:24:07 -07:00
Nathan Sobo
469ee554a0
Get most tests passing when respecting wake order for foreground tasks in Deterministic executor
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-01-24 17:13:56 -07:00
Antonio Scandurra
b7314ef2aa
WIP: Start restructuring executor
2022-01-24 18:49:20 +01:00
Antonio Scandurra
96b66dcce1
Fix race condition when opening a buffer and getting a definition to it
2022-01-24 18:47:55 +01:00
Antonio Scandurra
93125cbd16
Remove executor::Foreground::Test
...
All code paths have already transitioned to `Foreground::Deterministic`.
2022-01-24 16:14:30 +01:00
Antonio Scandurra
dabab6e323
Verify simultaneously opening buffers via definition
and open_buffer
...
This fails because we don't yet handle this scenario.
2022-01-24 15:08:04 +01:00
Antonio Scandurra
a762f575f4
Add remote worktree to project before it is fully deserialized
...
This prevents a race condition where the host will send us messages and
responses about a worktree that we have seen but haven't yet finished loading.
2022-01-24 14:00:38 +01:00
Antonio Scandurra
245490f934
Implement Project::definition
when the buffer is remote
2022-01-24 13:10:13 +01:00
Antonio Scandurra
528a4dd9b4
Fix regression causing guests to miss operations while opening a buffer
2022-01-24 11:28:46 +01:00
Antonio Scandurra
f859d444ff
Don't show conflict indicator on remote buffer after a reload
2022-01-24 10:17:36 +01:00
Antonio Scandurra
4372fe1ed0
Maintain remote buffers via UpdateBufferFile
messages sent by host
2022-01-24 09:32:40 +01:00
Nathan Sobo
da13d028a3
Send File protos as part of Buffer protos
...
Use the File proto to build the File associated with the buffer rather than relying on the local entry.
2022-01-22 22:19:04 -07:00
Nathan Sobo
66fce5ec8e
Introduce LocalFile trait
...
If you want to call `abs_path` or `load`, the file needs to be local. You call `as_local` which returns `Option<dyn LocalFile>` with those local-only methods. I think this makes it more explicit what works only locally vs everywhere.
2022-01-22 15:52:14 -07:00
Nathan Sobo
ea9c5b0686
💄
2022-01-22 15:30:38 -07:00
Nathan Sobo
506ce8e032
Introduce LocalSnapshot
...
This allows us to remove the absolute path and scan-related state from the Snapshot. None of this data is relevant or valid on guests.
2022-01-22 15:19:14 -07:00
Nathan Sobo
d192b6ebc7
Remove Worktree::abs_path
...
I'd like to only have methods related to absolute paths on local worktrees, because it's not really possible to implement them on remote worktrees since we don't know the full path being shared and wouldn't have anything to do with it anyway if we did.
2022-01-22 14:44:58 -07:00
Nathan Sobo
e2a2073bdb
Remove worktree_path from File struct
2022-01-22 14:29:36 -07:00
Nathan Sobo
e61a5b172c
Defer pane interaction when opening excerpts in diagnostics view
...
Activating a new item causes the current item to be deactivated. We're the current item, but we're on the stack, so we panic if we try to do this synchronously. If we use defer to wait until we're off the stack it works.
2022-01-22 13:23:08 -07:00
Nathan Sobo
b755b2d602
Add ViewHandle::defer
...
It's like update, but happens after the current effect instead of synchronously. Also, it doesn't allow the callback to return a value because there would be nothing to do with it.
2022-01-22 13:21:59 -07:00
Nathan Sobo
8b04c5d3ac
Add a ViewContext::defer
...
This takes a closure that will be enqueued as an effect to ensure there are no entities on the stack.
2022-01-22 13:14:25 -07:00
Nathan Sobo
83418204b6
Assign diagnostics on buffer even if it doesn't have a language
...
This shouldn't be necessary in practice but makes testing easier.
2022-01-22 09:54:25 -07:00
Nathan Sobo
8bf628c17b
Update new buffers with existing diagnostics in Project – after assigning language
2022-01-22 08:46:37 -07:00
Antonio Scandurra
2773cab4ec
Simplify opening buffers in the Project and assign language synchronously
2022-01-22 11:34:44 +01:00
Antonio Scandurra
31dfd01fda
Make add_local_worktree
private and use find_or_create_local_worktree
...
The former always adds a worktree, even if we have one already in the
project and that could be misused. The public API should always search
for a local worktree containing the requested path first so that the
project can uphold invariants about which worktrees it has.
2022-01-22 11:23:00 +01:00
Max Brunsfeld
622aff3be2
Get diagnostics crate's tests passing
...
Update diagnostics on project instead of on worktree
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-21 18:02:10 -08:00
Max Brunsfeld
2712cadaf6
Get integration tests passing
...
* Fix misuse of guest buffer's id as its remote id
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-21 17:44:24 -08:00
Max Brunsfeld
f1fc0bde99
Flush effects after every spawned future completes
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-21 17:43:24 -08:00
Max Brunsfeld
34e42c0c5f
Remove worktree_id from buffer-related RPC messages
2022-01-21 16:23:39 -08:00
Max Brunsfeld
03dc1e5aea
Move main worktree structs adjacent to each other
2022-01-21 16:10:26 -08:00
Max Brunsfeld
bd49a02c92
Move buffers from worktree to project
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-21 15:46:27 -08:00
Max Brunsfeld
7de26302ec
Remove UserStore from Worktree
2022-01-21 12:37:44 -08:00
Max Brunsfeld
6751bd9d78
Change integration tests to open buffers via the project
2022-01-21 12:23:17 -08:00
Nathan Sobo
a578d71ea2
v0.13.0
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-01-21 11:26:32 -07:00
Nathan Sobo
3ecb7e81f1
Remove panic when guest attempts to go to definition
...
We'll implement this soon but want to merge something stable to main.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-01-21 11:24:05 -07:00
Nathan Sobo
19751e9200
Merge remote-tracking branch 'origin/main' into go-to-definition
2022-01-21 11:12:38 -07:00
Nathan Sobo
a73671e57c
Revert "Replace project_path
with project_entry
in workspace::{Item, ItemView}
"
...
This reverts commit 9c9a09cccb
.
2022-01-21 11:07:10 -07:00
Nathan Sobo
1d72e8face
Remove source_range from definition
...
We don't use it now, and plan on dealing with it in a dedicated way when we need mouse hover interactions.
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-01-21 07:31:02 -07:00
Antonio Scandurra
4698d57ddd
Add unit test for Project::definition
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-21 15:05:25 +01:00
Antonio Scandurra
64f5a45397
Hide weak worktrees in the file finder
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-21 14:39:35 +01:00
Antonio Scandurra
2fcf1aee6b
Remove weak handles when worktree gets dropped
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-21 14:34:14 +01:00
Antonio Scandurra
e5662dd426
Allow observing the release of entities
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-21 14:34:14 +01:00
Antonio Scandurra
6e7e86e491
Remove weak worktrees from project when nobody references them
...
Also, avoid showing them in the project panel as well as in the
contacts panel.
2022-01-21 14:34:14 +01:00
Antonio Scandurra
ee95775b1c
Unregister worktree when its last handle to it gets released
2022-01-21 14:34:14 +01:00
Nathan Sobo
9505d6cdcf
Disable the nav history when selecting a definition in a different buffer
...
When jumping between different buffers, we don't care about the cursor's previous location. When navigating backward, we want to jump directly to the site of the jump.
2022-01-20 21:33:16 -07:00
Nathan Sobo
fbca28337a
When opening a path in an existing window, move it to the foreground
2022-01-20 20:45:30 -07:00
Antonio Scandurra
377e41a90f
Make navigation history work with project diagnostics
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-01-20 18:21:48 +01:00
Antonio Scandurra
c450945001
WIP
2022-01-20 18:11:37 +01:00
Antonio Scandurra
fad5c98b8d
Center selections when going to definition
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-20 17:33:07 +01:00
Antonio Scandurra
b6685a532c
Make "go to definition" work in project diagnostics
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-20 17:30:30 +01:00
Antonio Scandurra
d92b40474f
Change GoToDefinition
binding to F12
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-20 15:43:02 +01:00
Antonio Scandurra
a53c87edfe
🎨
2022-01-20 15:26:10 +01:00
Antonio Scandurra
66734e11af
WIP: Start on a GoToDefinition
action for the editor
2022-01-20 12:26:04 +01:00
Antonio Scandurra
cbbf7391e8
Start on Project::definition
that only works locally (for now)
2022-01-20 12:11:41 +01:00
Antonio Scandurra
11a83d01c2
Advertise link capability in LSP
2022-01-20 12:10:01 +01:00
Antonio Scandurra
6b1f989c2b
Omit worktree id when emitting Event::DiskBasedDiagnosticsUpdated
...
Sometimes we will have more than one worktree associated with the same
language server and in that case it's unclear which worktree id we should
report an event for.
2022-01-20 10:13:27 +01:00
Antonio Scandurra
71082d4cdc
Return a Task<Result<()>>
in {ItemView,Buffer,MultiBuffer}::save
2022-01-20 09:58:24 +01:00
Antonio Scandurra
634340dd84
Return a task from Workspace::save_active_item
...
This required changing our approach to OS prompts and this commit greatly
simplifies that. We now avoid passing a callback and return a simple future
instead. This lets callers spawn tasks to handle those futures.
2022-01-20 09:51:29 +01:00
Max Brunsfeld
e56c043693
Get tests passing, centralize more diagnostic logic in Project
2022-01-19 16:32:55 -08:00
Max Brunsfeld
0992132a0d
Always open buffers via the project
2022-01-19 14:48:54 -08:00
Max Brunsfeld
f43dcd6763
Move logic for starting language servers to the project
2022-01-19 14:05:06 -08:00
Antonio Scandurra
10c64f527c
WIP
2022-01-19 19:28:41 +01:00
Antonio Scandurra
8052f905e5
Remove unused languages
field from LocalWorktree
2022-01-19 18:46:17 +01:00
Antonio Scandurra
ae284c2d8a
Route save_as
via the Project
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-01-19 18:44:48 +01:00
Antonio Scandurra
e7235a82ec
Remove unused languages
field on LocalWorktree
2022-01-19 17:27:00 +01:00
Antonio Scandurra
9c9a09cccb
Replace project_path
with project_entry
in workspace::{Item, ItemView}
2022-01-19 15:56:04 +01:00
Antonio Scandurra
18f1040c85
Rename Navigation
to NavHistory
2022-01-19 15:27:34 +01:00
Max Brunsfeld
05bf8f61e2
Avoid changing selection in buffer navigation dialogs
...
If an editor has highlighted_rows, autoscroll it to reveal those rows instead of
its cursor positions.
2022-01-18 17:29:33 -08:00
Max Brunsfeld
2cae706033
Limit the storage used by the navigation history
2022-01-18 16:31:48 -08:00
Max Brunsfeld
926306582b
Add a unit test for navigation behavior at the editor level
2022-01-18 16:25:22 -08:00
Max Brunsfeld
f7326b8d74
Push to navigation history based on jump distance instead of time
2022-01-18 15:02:49 -08:00
Antonio Scandurra
16b82d59f1
Experiment with a more general way of pushing editor navigation entries
2022-01-18 18:03:10 +01:00
Antonio Scandurra
0cae3e0ac0
Ensure focus is transferred when opening the first item in pane
2022-01-18 10:15:37 +01:00
Antonio Scandurra
b7091dd5e2
Fix double borrow error when closing an item
2022-01-18 10:13:50 +01:00
Antonio Scandurra
4f472e1442
🔥
2022-01-18 10:10:16 +01:00
Antonio Scandurra
bb954e29cf
Introduce a test to verify navigation
2022-01-18 10:03:56 +01:00
Antonio Scandurra
d5acbe1e32
Use offset to restore navigation position if anchor can't be resolved
2022-01-18 09:59:28 +01:00
Antonio Scandurra
d480738cc5
Skip past entries in the navigation history that can't be re-opened
2022-01-18 09:58:40 +01:00
Max Brunsfeld
11b7270f68
Navigate to previous positions in editors when using navigation history
2022-01-17 16:01:52 -08:00
Max Brunsfeld
e43d33cdad
WIP - Reopen closed items when going back in nav history
2022-01-17 10:46:47 -08:00
Antonio Scandurra
ea624c6cde
Populate backward/forward stacks upon item deactivation
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-01-17 18:57:31 +01:00
Antonio Scandurra
bbf634f439
Start laying the foundation for a per-pane navigation system
2022-01-17 16:59:06 +01:00
Antonio Scandurra
cd0d1d3340
Delete unused pane::State
struct
2022-01-17 15:27:54 +01:00
Antonio Scandurra
f51cf6b05e
Cleanup worktrees' shared state when unsharing
2022-01-17 10:58:49 +01:00
Antonio Scandurra
466b26e7e6
Always re-render outline view when changing the active selection
2022-01-17 10:17:11 +01:00
Max Brunsfeld
e27fafb824
v0.12
2022-01-14 12:03:29 -08:00
Max Brunsfeld
485554cd0c
Merge pull request #342 from zed-industries/symbolic-nav
...
Introduce outline view
2022-01-14 12:02:43 -08:00
Max Brunsfeld
f3239fe1d5
Apply scroll_max after uniform list autoscrolls
2022-01-14 11:56:28 -08:00
Max Brunsfeld
dd8e5ee543
Add bottom margin to the outline view
2022-01-14 11:01:20 -08:00
Max Brunsfeld
5de5e4b6f2
Avoid panic in OutlineView when active item isn't an editor
2022-01-14 10:51:26 -08:00
Max Brunsfeld
b7561c6cef
Add select_first and select_last bindings to outline view
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-14 10:45:37 -08:00
Max Brunsfeld
ea69dcd42a
Match on names only when outline query has no spaces
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-14 09:16:29 -08:00
Antonio Scandurra
ce51196eab
Center the selected item when updating outline query
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-14 17:53:06 +01:00
Antonio Scandurra
e4c0fc6ad5
Dismiss outline view when the query editor is blurred
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-14 17:25:24 +01:00
Nathan Sobo
b52db22544
Only enable smart case if the query contains an uppercase character
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-01-14 09:16:09 -07:00
Nathan Sobo
f934370e7f
Match full path when query contains spaces
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-01-14 09:02:04 -07:00
Antonio Scandurra
be24e58926
Associate StringMatchCandidate
with an id
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-14 14:55:03 +01:00
Antonio Scandurra
e538beb920
Highlight matches by increasing the font weight
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-14 14:39:15 +01:00
Antonio Scandurra
a64ba8b687
Allow matching of context items in outline view
2022-01-14 11:09:02 +01:00
Antonio Scandurra
e7f1398f3a
💄
2022-01-14 10:20:04 +01:00
Antonio Scandurra
b0033bb6d4
Don't emit duplicate text when mixing syntax highlighting and match indices
2022-01-14 10:08:08 +01:00
Antonio Scandurra
ecba761e18
Make mod
a @context
2022-01-14 09:22:20 +01:00
Antonio Scandurra
deb679b8f5
Report all matching strings in fuzzy matcher even if they're duplicates
2022-01-14 09:16:39 +01:00
Antonio Scandurra
9c1f58ee89
Maintain order of outline items when filling out tree's missing parts
2022-01-14 09:12:30 +01:00
Max Brunsfeld
adeb7e6864
Incorporate syntax highlighting into symbol outline view
...
Still need to figure out how to style the fuzzy match characters
now that there's syntax highlighting. Right now, they are
underlined in red.
2022-01-13 18:10:02 -08:00
Max Brunsfeld
7913a1ea22
Include highlighting runs in Outline
2022-01-13 14:46:15 -08:00
Max Brunsfeld
3e1c559b2d
Allow multiple disjoint nodes to be captured as matcheable in the outline query
2022-01-13 14:04:25 -08:00
Max Brunsfeld
950b06674f
Add more items to rust outline query
2022-01-13 12:01:36 -08:00
Max Brunsfeld
f2cef0b795
Implement navigation via outline modal
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-01-13 11:48:44 -08:00
Max Brunsfeld
373fe6fadf
Change Editor::set_highlighted_row to take a row range
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-01-13 09:49:46 -08:00
Antonio Scandurra
055d48cfb2
Select the closest outline item when the outline view's query is empty
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-01-13 18:43:49 +01:00
Antonio Scandurra
2660d37ad8
Return Outline<Anchor>
from MultiBuffer::outline
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-01-13 18:24:00 +01:00
Antonio Scandurra
e165f1e16c
Use OutlineItem::depth
to include ancestors of matching candidates
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-13 16:59:52 +01:00
Antonio Scandurra
aee3bb98f2
Implement selecting prev and next in outline view
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-13 16:44:06 +01:00
Antonio Scandurra
d74658fdb5
Allow searching of outline items
2022-01-13 15:10:50 +01:00
Antonio Scandurra
06ba1c64cf
Implement Outline::search
2022-01-13 15:10:29 +01:00
Antonio Scandurra
5e64f1aca8
Report the candidate's index when matching strings
2022-01-13 15:09:27 +01:00
Antonio Scandurra
5f2ac61401
Use only lowercase characters to determine if query matches a candidate
2022-01-13 15:07:48 +01:00
Antonio Scandurra
d6ed2ba642
Start on rendering the outline view
2022-01-13 12:01:11 +01:00
Antonio Scandurra
ef596c64f8
Add OutlineItem::depth so that we can render a tree in the outline view
2022-01-13 11:35:43 +01:00
Antonio Scandurra
08c3fddc65
Allow splitting of project diagnostics
2022-01-13 10:24:41 +01:00
Max Brunsfeld
63a401ac5d
Add Buffer::outline method
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-12 18:17:49 -08:00
Nathan Sobo
057dc62b90
Merge pull request #338 from zed-industries/use-wildcard-cert
...
Associate staging and production load balancers with wildcard cert
2022-01-12 17:23:04 -07:00
Nathan Sobo
a93502bb64
Add placeholder environment variables to our deploy
...
We have the ability to define environment-specific environment variables, but don't current need it. This keeps these files in place while avoiding noise from running `export` with no args due to the files being empty.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-01-12 16:33:41 -07:00
Nathan Sobo
e71b989041
Use the same wildcard certificate on production and staging
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-01-12 16:28:09 -07:00
Nathan Sobo
3a82d0d8e1
Use a wildcard cert on DigitalOcean in the staging environment
...
If this works, we'll use it for production as well and delete the other certs.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-01-12 16:17:21 -07:00
Max Brunsfeld
1a672929e0
Adjust BlockMap tests to reflect new tiebreaking behavior
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-12 12:11:55 -08:00
Max Brunsfeld
ed88fdcea2
Add unit test for diagnostic + path header ordering
2022-01-12 11:34:57 -08:00
Max Brunsfeld
6865a42df9
Show error+warning counts in project diagnostics tab
...
Allow workspace items' tab contents to be arbitrary elements
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-12 10:51:28 -08:00
Max Brunsfeld
6ad9ff10c1
Ensure path headers appear before first diagnostic header
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-12 10:51:28 -08:00
Max Brunsfeld
ac0d55222f
Adjust project diagnostics test to reflect new block structure
2022-01-12 10:51:08 -08:00
Max Brunsfeld
9ccf2f3f58
Tweak theming of project diagnostics
2022-01-12 10:51:08 -08:00
Max Brunsfeld
b5ee095da9
Deduplicate path names in the project diagnostics view
2022-01-12 10:51:08 -08:00
Max Brunsfeld
a9937ee8be
Expand block decorations' bounds to include the gutter
2022-01-12 10:51:08 -08:00
Nathan Sobo
30225678c0
Test ordering of responses with respect to uni-directional messages
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-01-12 11:19:17 -07:00
Antonio Scandurra
66694b4c9a
Fix failing tests
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-01-12 18:43:23 +01:00
Antonio Scandurra
8b53868f8a
Preserve the order of responses with respect to all other incoming messages
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-01-12 18:26:00 +01:00
Antonio Scandurra
9e4b118214
Use synchronous locks for Peer
state
...
We hold these locks for a short amount of time anyway, and using an
async lock could cause parallel sends to happen in an order different
than the order in which `send`/`request` was called.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-12 18:02:41 +01:00
Antonio Scandurra
310def2923
Implement Buffer::format
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-12 18:01:20 +01:00
Antonio Scandurra
6fbbbab7ba
Process selection anchors in a sorted fashion when refreshing them
2022-01-12 09:28:09 +01:00
Antonio Scandurra
b768a3977c
Add unit test reproducing a panic when refreshing selections
2022-01-12 09:27:03 +01:00
Antonio Scandurra
7daa4b5b04
Don't return a Result
in test-only method select_display_ranges
2022-01-12 09:14:48 +01:00
Max Brunsfeld
9602bc6f8e
Remove stray dbg! calls
2022-01-11 13:56:07 -08:00
Max Brunsfeld
5941f5fca0
Upgrade tree-sitter-markdown
2022-01-11 10:36:31 -08:00
Max Brunsfeld
5a889b04df
Merge pull request #329 from zed-industries/fix-newline-in-multibuffer
...
Fix cursor position when inserting newlines on a repeated excerpt
2022-01-11 09:39:05 -08:00
Antonio Scandurra
89ead1c44d
Merge pull request #314 from zed-industries/auto-connect
...
Auto-connect to server on startup if credentials are on the keychain
2022-01-11 18:34:20 +01:00
Antonio Scandurra
c16820166b
Fix cursor position when inserting newlines on a repeated excerpt
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-01-11 18:30:25 +01:00
Antonio Scandurra
aa543a4b0a
Ensure selections stay sorted after refreshing them
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-11 17:16:45 +01:00
Antonio Scandurra
e70b728758
Verify Anchor::buffer_id
before resolving it or comparing it
...
This commit also verifies some properties about anchor resolution in the
multibuffer randomized test.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-11 16:40:12 +01:00
Antonio Scandurra
d7fcb049d4
Don't register an entity ID extractor for non-entity subscriptions
...
This commit fixes a panic that could occur when registering N subscriptions for
N entities of the same kind. Before, when dropping the first of the
subscriptions, we would remove the entity ID extractor as well. This was,
however, used by all the other N - 1 subscriptions which would then start
losing messages. In addition, dropping yet another subscription of that kind
would result in a panic, because we wouldn't find the extractor in the map
upon invoking `Subscription::drop`.
With this change we will avoid removing the ID extractor when dropping a
subscription. Crucially, we also avoid inserting extractors for simple message
subscriptions. This enables these non-entity subscriptions to be dropped and
re-registered without seeing a "registered handler for the same message twice"
panic.
2022-01-11 08:21:35 +01:00
Max Brunsfeld
a0a558318c
In diagnostics editor, attempt to open excerpts in a different pane
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-10 16:33:25 -08:00
Max Brunsfeld
747d9e8784
Add files to project diagnostics view in order
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-10 16:17:56 -08:00
Max Brunsfeld
c7eb6a6a60
Tweak color of share icon in titlebar
2022-01-10 11:26:07 -08:00
Max Brunsfeld
7244fe9c7f
Merge pull request #315 from zed-industries/fix-outdent-column-0
...
Fix outdent not working when cursor is at column 0
2022-01-10 11:16:30 -08:00
Antonio Scandurra
4992a8a407
🎨
2022-01-10 16:10:29 +01:00
Antonio Scandurra
b44ae46559
Fix panic if subscribing after dropping a subscription for the same message
2022-01-10 16:09:06 +01:00
Antonio Scandurra
dff812b38e
Don't panic when dropping a subscription in a subscription handler
2022-01-10 16:04:49 +01:00
Antonio Scandurra
9f6c53b547
Fix dev dependencies in client/Cargo.toml
2022-01-10 16:03:55 +01:00