Antonio Scandurra
d9b5357234
Always prevent window from closing and manually invoke Workspace::close
...
This ensures we ask the user to save their state if there are unsaved
changes.
2022-06-23 11:44:14 +02:00
Antonio Scandurra
06033d7fa9
Introduce ViewContext::on_window_should_close
...
This is a new callback that can be used to interrupt closing the window
when the user has unsaved changes.
2022-06-23 11:43:19 +02:00
Antonio Scandurra
ca8ddcdeec
Set window's edited = true
when there are unsaved changes
2022-06-23 10:59:50 +02:00
Antonio Scandurra
01349e1d42
Fix panic when Text
contained carriage returns
2022-06-23 10:21:21 +02:00
Max Brunsfeld
11f73bfa4e
Integrate pyright language server
2022-06-22 16:58:19 -07:00
Max Brunsfeld
c0dbd8f9b9
Add python outline and bracket queries
2022-06-22 16:28:09 -07:00
Max Brunsfeld
074caa09c2
Make python indent query more general
...
Upgrade Tree-sitter for a query bugfix that I found while
writing this indent query.
2022-06-22 16:18:52 -07:00
Max Brunsfeld
4cb68b2966
Prioritize keepalive pings over incoming message handling in Peer
2022-06-22 14:44:05 -07:00
Max Brunsfeld
36f8c68099
Remove redundant run_until_parked call in Foreground::advance_clock
2022-06-22 14:43:21 -07:00
Max Brunsfeld
a14b626927
Enable env log in peer tests
2022-06-22 14:42:20 -07:00
Antonio Scandurra
2d8ffbdfa2
Don't wait for host's worktree updates if they disconnected
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-06-22 19:45:55 +02:00
Antonio Scandurra
48ff443d10
Remove stray log statement when contacts are updated
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-06-22 19:40:52 +02:00
Antonio Scandurra
f2d134917e
Remove non-determinism from Peer
caused by smol's timeout
helper
2022-06-22 18:39:12 +02:00
Antonio Scandurra
071d940a88
Ensure receive timeout is triggered before waiting on disconnection
2022-06-22 18:02:42 +02:00
Antonio Scandurra
9b521d6097
Use Arc<Deterministic>
to understand which await points are parking
2022-06-22 17:39:34 +02:00
Antonio Scandurra
62521531a6
💄
2022-06-22 15:06:22 +02:00
Antonio Scandurra
fb2590d913
Use a FuturesUnordered
to process foreground messages
...
This prevents deadlocks when e.g., client A performs a request to client B and
client B performs a request to client A. If both clients stop processing further
messages until their respective request completes, they won't have a chance to
respond to the other client's request and cause a deadlock.
This arrangement ensures we will attempt to process earlier messages first, but fall
back to processing messages arrived later in the spirit of making progress.
2022-06-22 15:04:17 +02:00
Antonio Scandurra
6eb3e72c36
Add test demonstrating hang when peers wait on each other's response
2022-06-22 14:41:14 +02:00
Antonio Scandurra
2f09a4af16
Update project metadata when releasing a worktree's weak handle
...
When a project was getting unshared, we would remove invisible worktrees
from the project's state without notifying the server, which was causing
the randomized tests to fail.
This commit calls `Project::remove_worktree` when a worktree's handle gets
released. Doing so ensures that we update both our local metadata database
as well as the state on the server.
2022-06-22 10:26:10 +02:00
Max Brunsfeld
34351c0a51
Start work on Python support
2022-06-21 17:04:54 -07:00
Keith Simmons
484e98c0bb
Merge pull request #1216 from zed-industries/hover-context-menu-fix
...
Don't trigger hover popover action when mouse is over context menu
2022-06-21 13:43:24 -07:00
Keith Simmons
19feb627d8
Add comment linking to long term plan
2022-06-21 12:38:27 -07:00
Max Brunsfeld
dc8d5f4ae3
Merge pull request #1217 from zed-industries/fix-lsp-statuses-for-guests
...
Report running language servers when sharing project for the first time
2022-06-21 11:50:58 -07:00
Antonio Scandurra
83f38aa1ba
Merge pull request #1215 from zed-industries/suggest-upgrade-on-reconnect
...
Show upgrade required message when reconnecting after a protocol change
2022-06-21 20:41:36 +02:00
Antonio Scandurra
69aa3d848e
Report running language servers when sharing project for the first time
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-06-21 20:39:54 +02:00
Max Brunsfeld
e9d19457d6
Add failing test for replication of lsp statuses
...
Co-authored-by: Antonio Scandurra <me@as-cii.com>
2022-06-21 11:27:08 -07:00
Keith Simmons
057a7ec989
Don't trigger hover popover action when mouse is over context menu
2022-06-21 11:23:25 -07:00
Max Brunsfeld
30d75620f1
Fix error when worktree has no file extensions
...
Co-authored-by: Antonio Scandurra <me@as-cii.com>
2022-06-21 11:02:13 -07:00
Keith Simmons
fb881b2eda
hide hover on editor blur
2022-06-21 10:37:59 -07:00
Max Brunsfeld
6a2c5e0dc1
Show upgrade required message when reconnecting after a protocol change
...
Co-authored-by: Antonio Scandurra <me@as-cii.com>
2022-06-21 10:26:34 -07:00
Antonio Scandurra
db77601aa2
Expose project metadata via GET /project_metadata
2022-06-21 18:06:31 +02:00
Antonio Scandurra
ebaf3224fd
Exclude staff from activity recording
2022-06-21 16:07:59 +02:00
Antonio Scandurra
c90e8c08a6
Accept a datetime range when querying project activity
2022-06-21 14:03:10 +02:00
Antonio Scandurra
95a629d200
Unregister project from db when user disconnects or manually does so
2022-06-21 10:37:34 +02:00
Antonio Scandurra
7acebc4eb8
Register projects in the database and record worktree extensions
2022-06-21 10:29:26 +02:00
Max Brunsfeld
44160869eb
Add an API that returns the most active users and the projects where they've been active
2022-06-20 19:46:37 -07:00
Antonio Scandurra
0e20782b53
Highlight files ending in mdx
as Markdown
...
This is clearly a stopgap solution but it'll make our life easier
while hacking on zed.dev.
2022-06-20 15:53:45 +02:00
Antonio Scandurra
d425d9fa64
Allow wrapping selected text with '
in Rust
2022-06-20 11:56:46 +02:00
Antonio Scandurra
6040429f93
Auto-close ' for TypeScript and don't do so for Rust
2022-06-20 11:55:40 +02:00
Antonio Scandurra
d5efae609e
Respect close
in language configuration when autoclosing bracket
2022-06-20 11:50:44 +02:00
Antonio Scandurra
d6c630f8eb
Add missing auto-close brackets from various languages
2022-06-20 11:38:12 +02:00
Antonio Scandurra
137a3996a1
Replace "Remove Folder from Project" label with "Remove from Project`
2022-06-20 10:53:26 +02:00
Max Brunsfeld
71534d4412
Avoid holding a strong project handle in an on_click callback
2022-06-17 15:41:48 -07:00
Max Brunsfeld
6359535c52
v0.39.0
2022-06-17 14:22:49 -07:00
Antonio Scandurra
a35d7c5e15
Use BOOL
instead of Rust booleans in handle_key_equivalent
2022-06-17 17:19:18 +02:00
Antonio Scandurra
8f6d081de8
Override performKeyEquivalent
to handle key events
...
This lets us bypass the application menu and invoke the event handler
in Zed first. If that doesn't handle the event, the application menu
item corresponding to the shortcut will be actioned. Prior to this
commit the opposite would happen, which would dramatically limit the
throughput at which we could handle events.
2022-06-17 17:12:56 +02:00
Antonio Scandurra
607903eed5
Return true in the Window::on_event
callback if event was handled
2022-06-17 17:09:16 +02:00
Antonio Scandurra
ae2273b40a
Merge pull request #1204 from zed-industries/accurate-is-dirty
...
Determine `Buffer::is_dirty` based on the rope's fingerprint
2022-06-17 16:08:07 +02:00
Antonio Scandurra
4f215a77cd
Don't compute fingerprint for every text summary
2022-06-17 15:15:27 +02:00
Antonio Scandurra
5654684d30
Fix editor tests after changing the semantics of is_dirty
2022-06-17 12:57:40 +02:00
Antonio Scandurra
052222c91c
Bump protocol version
2022-06-17 12:39:59 +02:00
Antonio Scandurra
6f7a893ec9
Determine Buffer::is_dirty
based on the rope's fingerprint
2022-06-17 12:38:25 +02:00
Antonio Scandurra
c31a233aad
Introduce a new fingerprint
field to TextSummary
...
This is calculated in `Rope` and uses the `bromberg_sl2` homomorphic
hash function to determine the fingerprint of a single chunk and
compose each chunk fingerprint into a single fingerprint for the entire
rope that is equivalent to hashing all the rope's bytes at once.
2022-06-17 12:12:37 +02:00
Max Brunsfeld
21ecbce9b8
Add a Zed > Preferences submenu with prefs, bindings, theme
2022-06-16 17:50:44 -07:00
Max Brunsfeld
2c61bc2b1f
Always use capital letters when rendering a keystroke
2022-06-16 17:48:10 -07:00
Max Brunsfeld
a3b17ffd15
Allow creating application menus with submenus
2022-06-16 17:47:39 -07:00
Max Brunsfeld
216a275ef2
Disable auto-indent entirely for markdown
2022-06-16 14:20:09 -07:00
Max Brunsfeld
dd7b874039
Return focus to the workspace center on escape
2022-06-16 11:30:02 -07:00
Antonio Scandurra
cef85f5d84
Merge pull request #1198 from zed-industries/keyboard-toggle-search-options
...
Toggle search options via the keyboard
2022-06-16 14:49:37 +02:00
Antonio Scandurra
88d8696414
Display tooltip for select prev/next match buttons
2022-06-16 14:37:33 +02:00
Antonio Scandurra
649185da9c
Allow toggling search options via the command palette
2022-06-16 14:28:37 +02:00
Antonio Scandurra
29e57c8e3c
Toggle project search options via the keyboard
2022-06-16 14:18:45 +02:00
Antonio Scandurra
d0d6c27ae9
Don't select next match when toggling buffer search option
2022-06-16 14:06:47 +02:00
Antonio Scandurra
a835dcefa2
Toggle buffer search options via the keyboard
2022-06-16 13:44:00 +02:00
Antonio Scandurra
dc75b70724
Use word boundaries instead of syntax to infer completion edit ranges
2022-06-16 11:27:22 +02:00
Antonio Scandurra
35889add40
Add failing test for wrong typescript completion
2022-06-16 11:26:35 +02:00
Antonio Scandurra
edd758eb67
Cap context menu's width to cover at most 70% of the window
2022-06-16 10:40:12 +02:00
Antonio Scandurra
e09a6890f3
Remove unnecessary dependencies from lsp_status
crate
2022-06-16 10:02:23 +02:00
Antonio Scandurra
4e4210ac39
Open a buffer for every language server error when clicking on status
2022-06-16 10:00:29 +02:00
Antonio Scandurra
d02bc2f9f8
Add tooltip for project diagnostics
2022-06-15 17:12:47 +02:00
Antonio Scandurra
516bd13474
Add tooltip to follow collaborators
2022-06-15 17:08:39 +02:00
Antonio Scandurra
8a146e49ca
Use a different fit mode for tooltips
2022-06-15 16:45:04 +02:00
Antonio Scandurra
f2a48c6b02
Add tooltips for sidebar buttons
2022-06-15 13:50:04 +02:00
Antonio Scandurra
4750727586
Autoscroll to newest selection when adding it via the cursor
2022-06-15 13:21:01 +02:00
Antonio Scandurra
da1eb91935
Replace pane::Split
action with Split{Left,Up,Right,Down}
...
This allows us to show them in the command palette.
2022-06-15 13:06:59 +02:00
Antonio Scandurra
7a81983c62
Fix surrounding text with bracket pairs with multiple selections
...
This was probably a regression that was introduced with the new batched
`Buffer::edit` API and was caused by providing selection ranges in a
non-ordered fashion (we were passing all the starts first and then all the
ends).
With this commit we are adding a unit test to verify the behavior of
`Editor::surround_with_bracket_pair` and changing the order in which
we pass edit ranges to respect the selection order.
2022-06-15 11:48:21 +02:00
Antonio Scandurra
197a4342d0
Fix tests
2022-06-15 11:16:26 +02:00
Antonio Scandurra
a85f9e74b1
Harvest the latest metrics when /metrics
is requested
...
Now that we track active projects, if nothing happens to the store
during the activity timeout we would still serve some old metrics
that may not account for the staleness of a project.
This commit changes it so that we grab a mutable reference to the store
before serving the metrics, which has the side effect of updating
all the metrics.
2022-06-15 10:54:51 +02:00
Antonio Scandurra
e373e05d27
🎨
2022-06-15 10:42:37 +02:00
Antonio Scandurra
3a1d0dd692
Track active projects in metrics
...
An active project is defined as a project where there has been at
least a buffer edit, a join request/response, or a follow update
in the last minute.
2022-06-15 10:33:20 +02:00
Antonio Scandurra
6d93a41f40
Exclude admins from collected metrics
2022-06-14 16:26:00 +02:00
Antonio Scandurra
f89977ba41
Bump protocol version
2022-06-14 15:21:37 +02:00
Antonio Scandurra
68093342e7
Broadcast only visible worktree root names
2022-06-14 15:15:23 +02:00
Antonio Scandurra
cfbd8b94d1
Prevent setting files from showing up in project and contacts panels
2022-06-14 14:47:16 +02:00
Antonio Scandurra
5dd28b7e57
🎨
2022-06-14 14:03:25 +02:00
Antonio Scandurra
a5a4246e6c
Attempt to open new entry only if it is a file
2022-06-14 14:01:49 +02:00
Antonio Scandurra
572e295854
Open files in project panel using enter
instead of right
2022-06-14 13:56:56 +02:00
Antonio Scandurra
146e2b5089
Open files when creating them in project panel
2022-06-14 13:49:47 +02:00
Antonio Scandurra
76da93d260
Merge branch 'main' into users-api
2022-06-14 11:14:16 +02:00
Antonio Scandurra
49d7b4bc12
Allow specifying query
, limit
and page
when hitting /api/users
...
This is needed to introduce pagination and search in our admin panel.
2022-06-13 17:30:01 +02:00
Antonio Scandurra
fe1a861bf3
Expose a new POST /api/bulk_users
API to create many users at once
...
This API will accept a vector of JSON entries containing the GitHub login,
the email address and the invite count. If that user already exist, the
invite count will be updated to the new one.
2022-06-13 15:18:18 +02:00
Antonio Scandurra
b1e8e81513
Merge pull request #1172 from zed-industries/more-logs
...
Add more logging to `collab` to better understand user behavior
2022-06-13 09:22:37 +02:00
Antonio Scandurra
502625c570
Exclude ignored files from the logged extension count
2022-06-13 09:16:16 +02:00
Antonio Scandurra
dcdc6311df
Don't retain message payloads in span, just log the payload instead
2022-06-13 09:06:58 +02:00
Antonio Scandurra
3b8388dcdd
Log extension counts when worktree is updated
2022-06-13 08:57:21 +02:00
Max Brunsfeld
1bc2bc0e95
Merge pull request #1171 from zed-industries/prompt-save-before-quit
...
Prompt to save changes before quitting the app
2022-06-10 17:32:57 -07:00
Max Brunsfeld
b9eb875bf4
Prompt to save changes before quitting the app
2022-06-10 17:26:33 -07:00
Max Brunsfeld
e2935100db
Move prometheus annotations from deployment to pod spec
2022-06-10 14:32:36 -07:00
Max Brunsfeld
2311534c3c
Add DataDog OpenMetrics annotations to collab k8s deployment
...
Co-authored-by: Antonio Scandurra <me@as-cii.com>
2022-06-10 13:35:52 -07:00
Max Brunsfeld
2e6fa889ea
Add OpenMetrics endpoint exposing the basic RPC store metrics as guages
...
Co-authored-by: Antonio Scandurra <me@as-cii.com>
2022-06-10 13:32:56 -07:00