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
Max Brunsfeld
4032e517f9
v0.38.0
2022-06-10 10:19:21 -07:00
Antonio Scandurra
63fdf1398a
WIP: Start adding more logs
2022-06-10 18:17:02 +02:00
Antonio Scandurra
f91fb48a4c
Simplify EditorElement::layout_blocks
2022-06-10 13:57:43 +02:00
Antonio Scandurra
666ea61dbc
Introduce a new BlockStyle
field for blocks
...
This new field allows blocks to specify how they want to be laid out:
- If `Fixed` they can take up all the width they want and they will impact
the scroll width of the editor. This is useful for diagnostic messages and
allows scrolling the editor further to the right to visualize the entire message.
- If `Flex` they can extend all the way to the scroll width without impacting it
any further. This is useful for the rename editor that we insert as a block
decoration when hitting `F2`.
- If `Sticky`, they will be as wide as the editor element and won't participate
in the horizontal scrolling of the editor. This is useful for headers in general,
where we want e.g. the filename and the jump button to always be visible
independently of how much the user has scrolled to the right.
2022-06-10 13:47:40 +02:00
Keith Simmons
02f0fee6ae
Always delay hover display
2022-06-09 18:08:23 -07:00
Keith Simmons
e21d1b1acb
Merge fix
2022-06-09 17:07:32 -07:00
Keith Simmons
3cec157335
fix compile error in EditorLspTestContext
2022-06-09 17:03:45 -07:00
Keith Simmons
8378590d57
Test fixes
2022-06-09 17:03:45 -07:00
Keith Simmons
93158bfcff
Fix delayed lsp request
2022-06-09 17:03:45 -07:00
Keith Simmons
722023e347
test and build fixes
2022-06-09 17:03:45 -07:00
Keith Simmons
dddfc7beae
Add hover test and tweak dismiss logic
2022-06-09 17:03:45 -07:00
Keith Simmons
1da1853a76
Hide hover when font changes, and handle case where delay was preventing hover with large symbol range
2022-06-09 17:03:44 -07:00
Keith Simmons
b51bd87c10
Rework hover delay, respect editor font size, and enable hover in multibuffers
2022-06-09 17:03:44 -07:00
Keith Simmons
ee33fb03f2
wip
2022-06-09 17:03:44 -07:00
Max Brunsfeld
87ba68e3ea
Merge pull request #1155 from zed-industries/golang
...
Add Go support
2022-06-09 14:18:37 -07:00
Max Brunsfeld
924e9648e9
Tweak golang outline query
2022-06-09 13:31:30 -07:00
Max Brunsfeld
9495717421
Add project symbol labels for Go
2022-06-09 13:16:08 -07:00
Max Brunsfeld
861f4c7230
Add syntax highlighting for Go completions
2022-06-09 13:08:18 -07:00
Max Brunsfeld
4ce4c0ef03
Ignore completions from gopls that we can't yet handle
...
We only support additionalEdits if they are provided when resolving the
completion, not if they are provided immediately.
2022-06-09 13:08:08 -07:00
Max Brunsfeld
7bb7187619
Add tests and fix bugs for editor indent/outdent commands w/ hard tabs
2022-06-09 10:26:09 -07:00
Max Brunsfeld
77b9ab0885
Add buffer test for autoindent with hard tabs
2022-06-09 09:05:07 -07:00
Antonio Scandurra
ea8b5016f7
Snap overlay's bottom/right edge to same window's edge on overflow
2022-06-09 13:48:02 +02:00
Antonio Scandurra
213b31607c
Remove language server statuses synchronously when stopping a server
2022-06-09 10:59:02 +02:00
Antonio Scandurra
69170fc33a
Add unit test to ensure changing enable_language_server
works
2022-06-09 10:48:06 +02:00
Antonio Scandurra
36a1a7a819
Start/stop language servers when enable_language_server
changes
2022-06-09 10:08:11 +02:00
Antonio Scandurra
55cc8631cc
Introduce a new language-overrideable enable_language_server
setting
2022-06-09 10:07:31 +02:00
Antonio Scandurra
9d7476afc6
Extract a Project::stop_language_server
method when restarting server
...
This will be useful later to stop a language server when detecting
configuration changes.
2022-06-09 10:05:35 +02:00
Antonio Scandurra
0408a8259e
Add ModelContext::observe_global
2022-06-09 10:05:00 +02:00
Max Brunsfeld
f62fd3cddd
Add support for hard tabs
...
* Add a `hard_tabs` setting that causes indentation to be performed
using a tab instead of multiple spaces.
* Change Buffer's indentation-related APIs to return an `IndentSize`
struct with a length and a kind, instead of just a single u32.
* Use hard tabs by default in Go.
2022-06-08 18:30:10 -07:00
Max Brunsfeld
129fc515ef
Add parser and queries for go
...
Co-authored-by: Antonio Scandurra <me@as-cii.com>
2022-06-08 10:44:13 -07:00
Max Brunsfeld
36ce3eb5ef
Handle messages associated with LSP WorkDoneProgress::Begin
messages
...
Co-authored-by: Antonio Scandurra <me@as-cii.com>
2022-06-08 10:26:41 -07:00
Max Brunsfeld
a41f164ffe
Launch gopls with the right arguments
...
Co-authored-by: Antonio Scandurra <me@as-cii.com>
2022-06-08 10:25:58 -07:00
Antonio Scandurra
712d47d94f
Render a "Jump to Buffer" icon on all excerpt headers
2022-06-08 15:31:29 +02:00
Antonio Scandurra
c2eaf6128e
Move ProjectDiagnosticsEditor::jump
to Editor::jump
2022-06-08 15:08:11 +02:00
Antonio Scandurra
5fdafbe8c9
Expose a unique key: usize
in ExcerptBoundary
2022-06-08 15:02:52 +02:00
Antonio Scandurra
eda569d6b2
Snapshot file instead of path when creating a buffer snapshot
2022-06-08 14:29:14 +02:00
Antonio Scandurra
15b13fe511
Introduce an optional primary
field to ExcerptRange
2022-06-08 12:23:12 +02:00
Antonio Scandurra
ffb75b0f02
Extract an ExcerptRange
containing a context
field in multi_buffer
...
This lays the groundwork for adding an optional `primary` field that can
be supplied to provide the "jump to" feature.
2022-06-08 12:13:04 +02:00
Antonio Scandurra
a26af194e7
Use visible bounds to determine hit bounds for cursor/mouse regions
2022-06-08 10:17:22 +02:00
Antonio Scandurra
d8b885e3ec
Provide tab_size
when formatting document using LSP range formatting
2022-06-08 09:56:11 +02:00
Antonio Scandurra
494a1b332f
Reduce log level on collab
...
This is generating way too much data and doesn't seem very cost-effective
to investigate the issues we've had with the stale contacts panel.
2022-06-08 09:06:13 +02:00
Max Brunsfeld
8f4387a252
Start work on installing gopls
2022-06-07 18:38:37 -07:00
Max Brunsfeld
209ff619ef
Simplify interface of latest_github_release
helper function
2022-06-07 16:26:01 -07:00
Max Brunsfeld
8311458931
Add status bar link and Help menu item to open an issue on feedback repo
2022-06-07 15:48:12 -07:00
Keith Simmons
9d5111e86a
Merge pull request #1078 from zed-industries/lsp-hover
...
LSP Hover Information
2022-06-07 14:45:43 -07:00
Max Brunsfeld
26cd20e38b
Merge pull request #1132 from zed-industries/refresh-on-save
...
Don't refresh the project diagnostics until the user saves
2022-06-07 14:28:07 -07:00
Keith Simmons
1b66e1e185
Add integration test and fix hovering over the wire
2022-06-07 14:22:02 -07:00
Max Brunsfeld
b53f887ecc
Merge pull request #1129 from zed-industries/update-notification
...
Show a notification after Zed auto-updates
2022-06-07 13:16:04 -07:00
Keith Simmons
a6c0ee472c
Add vim bindings for hover
...
Allow scrolling in hover popover
2022-06-07 13:07:53 -07:00
Keith Simmons
67d9abc00f
Move highlighting to editor code and implement proto message types for hover response
2022-06-07 11:54:52 -07:00
Keith Simmons
c7cc07aafb
working markdown rendering
2022-06-07 11:54:51 -07:00
Isaac Clayton
efd798f5f6
Quick documentation pass
2022-06-07 11:54:33 -07:00
Keith Simmons
b014352740
Syntax highlighting working. Getting started on markdown support
2022-06-07 11:54:33 -07:00
Isaac Clayton
863a3b1886
Clean up impl a bit
2022-06-07 11:54:33 -07:00
Isaac Clayton
d529a1deb4
Add basic debounce, fix flickering
2022-06-07 11:54:31 -07:00
Keith Simmons
560dff7329
Pull hover popover out of context menu
2022-06-07 11:54:00 -07:00
Isaac Clayton
470c70d394
Get minimal POC working
2022-06-07 11:52:52 -07:00
Isaac Clayton
24ad60a651
Add hover action and style context menu
2022-06-07 11:50:49 -07:00
Keith Simmons
0ed8a42bb4
WIP
2022-06-07 11:49:28 -07:00
Keith Simmons
0c4f798a2d
WIP jump to definition with mouse
2022-06-07 11:47:23 -07:00
Antonio Scandurra
b04e62d895
Fix tracking of in-progress disk-based diagnostics on indicator
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-06-07 19:35:53 +02:00
Antonio Scandurra
bbfa6580a4
Avoid refreshing diagnostics for language servers that didn't update
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-06-07 19:05:06 +02:00
Antonio Scandurra
6b4e7da7d6
Prepopulate project search query when deploying it from an editor
2022-06-07 10:02:04 +02:00
Max Brunsfeld
c86b12e1b6
Show a notification after Zed auto-updates
2022-06-06 17:42:31 -07:00
Max Brunsfeld
ce080e9520
Update connected users' invite info when they are granted invite codes
2022-06-06 11:14:01 -07:00
Max Brunsfeld
6899eacf3d
v0.37.0
2022-06-06 10:37:27 -07:00
Max Brunsfeld
075dd83a43
Merge pull request #1115 from zed-industries/offset-out-of-range
...
Fix `offset out of range` panic during `FoldMap::sync`
2022-06-06 10:32:18 -07:00
Max Brunsfeld
436c989e4b
Merge pull request #1109 from zed-industries/fix-vim-clearing-selections
...
Avoid collapsing selections on editor creation when vim_mode is disabled
2022-06-06 10:32:12 -07:00
Antonio Scandurra
1ecc51f035
Fix warnings
2022-06-06 16:23:49 +02:00
Antonio Scandurra
70afc06666
Handle out-of-order edits coming from LSP
2022-06-06 16:15:11 +02:00
Antonio Scandurra
8826ad5ddd
Make Buffer::edit
and MultiBuffer::edit
resilient to inverted ranges
...
Previously, we would accept edits containing out-of-order ranges. When
generating such ranges in our randomized tests, many invariants started
breaking causing e.g. undo/redo to misbehave and operation application
to panic.
In theory, we should never pass inverted ranges, but this commit changes
the above functions to swap the start and the end when that occurs to avoid
breaking the entire system and panicking.
2022-06-06 15:22:36 +02:00
Antonio Scandurra
c22aedfe69
Fix tests
2022-06-06 09:29:42 +02:00
Antonio Scandurra
22dd68fbfb
Add keystroke for menu item only when action is equal to binding
...
This fixes a bug where we would show `cmd-e` instead of `cmd-f` for
`Edit -> Find` because both bindings would have the `buffer_search::Deploy`
action and we were mistakenly selecting the former.
2022-06-06 09:26:33 +02:00
Antonio Scandurra
3a69943df3
Require that PartialEq
is implemented for Action
2022-06-06 09:18:44 +02:00
Antonio Scandurra
492cc716d3
Don't manipulate selections when syncing options if vim-mode is disabled
...
Previously, we were always mutating selections when `sync_editor_options`
was called. This seems to happen every time vim is enabled/disabled, but also
when vim is disabled and editors are simply focused/blurred.
This commit changes it so that we only manipulate selections when vim-mode is active.
2022-06-06 08:14:49 +02:00