Commit graph

2180 commits

Author SHA1 Message Date
Antonio Scandurra
9d6a7a83a0 Show worktree root names in titlebar and align them left 2022-04-26 13:21:58 +02:00
Antonio Scandurra
bf27edfdee Sort themes by light/dark first and then alphabetically 2022-04-26 12:09:25 +02:00
Nathan Sobo
be040b60b7 WIP 2022-04-25 20:21:43 -06:00
Nathan Sobo
3938f7c364 Fix compile error 2022-04-25 20:12:32 -06:00
Nathan Sobo
2bd08a7b3f Validate API token for all API routes 2022-04-25 20:10:14 -06:00
Nathan Sobo
538fc23a77 WIP 2022-04-25 20:05:09 -06:00
Nathan Sobo
35bec69fa4 Finish adding API routes
We haven't tested them yet.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-04-25 17:51:13 -06:00
Max Brunsfeld
9c03670d21 v0.30.0 2022-04-25 16:17:25 -07:00
Max Brunsfeld
5be7c354f6
Merge pull request #900 from zed-industries/completion-insert-text
Respect lsp completions' 'insert_text' property when present
2022-04-25 14:36:47 -07:00
Max Brunsfeld
45922603f8 Infer completions old ranges based on the syntax tree 2022-04-25 13:14:05 -07:00
Max Brunsfeld
065734e1de
Merge pull request #898 from zed-industries/track-window-focus
Focus/blur views when application windows become active/inactive
2022-04-25 08:54:47 -07:00
Nathan Sobo
cb9d608e53 WIP
Continue adding in more API routes
2022-04-24 18:02:14 -06:00
Nathan Sobo
e30a3956d6 WIP: Switch to axum 2022-04-24 11:08:25 -06:00
Nathan Sobo
62f7c858e3 WIP 2022-04-24 10:45:20 -06:00
Nathan Sobo
ac6880b6ee Only set the cursor style once per mouse move event
This will hopefully prevent some of the intermittent flickering we seem to be seeing.
2022-04-22 18:57:49 -06:00
Nathan Sobo
f7f4aad00f WIP 2022-04-22 18:46:31 -06:00
Max Brunsfeld
e8d263274c Remove duplication between windowDid{Become,Resign}Key callbacks 2022-04-22 15:06:50 -07:00
Max Brunsfeld
6b9e93ac6d Fix double-borrow crash by calling window activated callback asynchronously 2022-04-22 15:01:19 -07:00
Max Brunsfeld
8ddc7e6458 Respect lsp completions' 'insert_text' property when present
Fixes #839
2022-04-22 14:33:13 -07:00
Keith Simmons
c61ae6f31f
Merge pull request #877 from zed-industries/misc-normal-commands
Add inclusive vs exclusive motions to vim mode
2022-04-22 14:25:56 -07:00
Max Brunsfeld
d12df4224a
Merge pull request #894 from zed-industries/typescript-outline-fixes
Fix missing TypeScript outline entries and breadcrumbs
2022-04-22 14:21:46 -07:00
Max Brunsfeld
7f64076f8d Focus/blur views when application windows become active/inactive 2022-04-22 14:18:50 -07:00
Max Brunsfeld
bfec9e1ec2 Fix missing TypeScript outline entries and breadcrumbs 2022-04-22 13:49:03 -07:00
Max Brunsfeld
f881c2aa92
Merge pull request #892 from zed-industries/syntax-theme-fixes
Syntax theme fixes
2022-04-22 13:24:31 -07:00
Max Brunsfeld
03d7035630 Avoid spurious highlight runs in Language::highlight_text 2022-04-22 13:13:54 -07:00
Max Brunsfeld
d330f909e6 Allow each theme to style all aspects of syntax highlighting
Previously, some syntax highlights were controlled in editor.ts,
and shared across all themes.

Co-authored-by: Keith Simmons <keith@zed.dev>
2022-04-22 12:43:01 -07:00
Nathan Sobo
447c1d2f71 WIP: Get compiling with Tokio by commenting almost everything
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-04-22 13:33:19 -06:00
Max Brunsfeld
f0c6a6ad18 Highlight punctuation uniformly in all supported languages
Co-authored-by: Keith Simmons <keith@zed.dev>
2022-04-22 12:16:49 -07:00
Max Brunsfeld
6658fa58c0 Update languages' highlight mapppings when the theme changes
Co-authored-by: Keith Simmons <keith@zed.dev>
2022-04-22 12:09:14 -07:00
Nathan Sobo
92f040df00 Apply cursor styles during paint
This makes the editor's cursor an IBeam and properly deals with nested cursor styles.

Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-04-22 10:54:18 -06:00
Antonio Scandurra
53bf7b61c0
Merge pull request #887 from zed-industries/fix-typescript-rename
Use document highlights to prepare rename if LSP doesn't support it
2022-04-22 16:37:13 +02:00
Antonio Scandurra
a2279422f5 Fix rpc::tests::test_collaborating_with_renames 2022-04-22 16:29:28 +02:00
Antonio Scandurra
63cdf61c53 Fix Project::test_rename 2022-04-22 15:59:20 +02:00
Antonio Scandurra
5e16adc6c9 Use document highlights to prepare rename if LSP doesn't support it 2022-04-22 15:43:57 +02:00
Antonio Scandurra
f91fdd2ba0 Return None when prepare rename is not available on language server 2022-04-22 15:43:23 +02:00
Nathan Sobo
8ec2b5e359 Delete selected text when deleting to beginning of line 2022-04-22 06:04:14 -06:00
Antonio Scandurra
3def7a6803 Avoid flicker when toggling project browser on workspace open 2022-04-22 11:53:45 +02:00
Antonio Scandurra
9730213ed7 Move project browser toggling logic in workspace::open_paths 2022-04-22 11:25:23 +02:00
Antonio Scandurra
bba65e120d Add only one worktree when running zed /dir /dir/file 2022-04-22 11:06:17 +02:00
Antonio Scandurra
9d8e3f51c8 Show project panel when opening a folder via the CLI 2022-04-22 10:45:46 +02:00
Antonio Scandurra
033d000489 Replace underscores with spaces when humanizing action names 2022-04-22 10:24:12 +02:00
Keith Simmons
5ea782de21 Add inclusive vs exclusive motions to vim mode 2022-04-21 16:50:23 -07:00
Max Brunsfeld
3a878c8d6c Add syntax highlighting for TOML 2022-04-21 16:39:49 -07:00
Max Brunsfeld
490b65b55f Reuse Confirm action in chat panel, go-to-line, and project search 2022-04-21 15:24:05 -07:00
Max Brunsfeld
915ba91888 Allow toggling line comments in JSON 2022-04-21 14:12:17 -07:00
Max Brunsfeld
066b4faf61 Restructure KeyMap file, make it easy to edit in Zed
Add a JSON schema for this file so that autocomplete can be used for the actions.
2022-04-21 13:35:10 -07:00
Max Brunsfeld
f52050a9ec Use the 'jsonc' language id for all JSON files
This way, comments are allowed by the language server.
2022-04-21 12:08:16 -07:00
Max Brunsfeld
3a28f09979 Allow comments in setting and keymap JSON files 2022-04-21 11:58:18 -07:00
Max Brunsfeld
066e572767
Merge pull request #864 from zed-industries/polish-project-panel
Sort directories before files in a case-insensitive manner
2022-04-21 11:48:04 -07:00
Max Brunsfeld
f9cd1b25d5
Merge pull request #866 from zed-industries/max-line-len-2
Always wrap lines that are wider than 512 em advances
2022-04-21 11:23:29 -07:00
Antonio Scandurra
5081eafa9d Always wrap lines that are wider than 512 em advances
We went with a more conservative upper bound so that the number of
characters (hopefully) never exceeds `MAX_LINE_LEN` (1024) when laying
out text.

Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-04-21 19:29:37 +02:00
Nathan Sobo
e52fad0fc7
Merge pull request #865 from zed-industries/remove-web-frontend
Remove web frontend from collab server
2022-04-21 11:17:21 -06:00
Nathan Sobo
e63ebc5b24 Drop signups table 2022-04-21 10:59:13 -06:00
Nathan Sobo
396e4ba17b Remove signups-related methods from Db trait 2022-04-21 10:55:32 -06:00
Nathan Sobo
0cf7bba483 Remove remaining bits of web front-end 2022-04-21 09:30:08 -06:00
Nathan Sobo
9f83417b58 Remove more files supporting the old web front-end 2022-04-21 09:06:34 -06:00
Nathan Sobo
9f0b044ba0 Remove more unused code related to GitHub auth and errors 2022-04-21 08:57:49 -06:00
Antonio Scandurra
953256b128 Sort (case-insensitive) directories before files 2022-04-21 15:08:45 +02:00
Antonio Scandurra
11828040cc Store visible entries in project panel by id rather than offset 2022-04-21 13:37:57 +02:00
Antonio Scandurra
fb87bacc7e Merge branch 'main' into auto-update 2022-04-21 09:53:06 +02:00
Max Brunsfeld
9d3048ebe7 v0.29.0 2022-04-20 16:10:07 -07:00
Max Brunsfeld
b07b08862b
Merge pull request #863 from zed-industries/fix-project-symbols-crash
Fix project symbols crash
2022-04-20 16:09:25 -07:00
Max Brunsfeld
3619d4c1c4 Always notify a Picker when its delegate notifies 2022-04-20 16:03:11 -07:00
Max Brunsfeld
84df1d6564 Add unit test for project symbols that demonstrates crash 2022-04-20 16:02:37 -07:00
Nathan Sobo
9150b77471 Remove some user-facing routes 2022-04-20 15:39:39 -06:00
Keith Simmons
b1f9d9d8ba
Merge pull request #851 from zed-industries/vim-delete-jk-fix
Linewise motions fix
2022-04-20 14:34:05 -07:00
Nate Butler
09634dffb8
Merge pull request #846 from zed-industries/update-themes-04-19
Update theme for command palette, inputs, tabs, autocomplete
2022-04-20 12:05:00 -04:00
Nate Butler
ea11f2e183 Increase min-width for all Pickers, minor style changes
- Increases the Picker min-width from 500 to 540
- Makes some changes to the styling of keyboard shortcuts in the command palette
2022-04-20 11:54:57 -04:00
Antonio Scandurra
a210b05d00 Remove App::on_open_files, as it's a subset of on_open_urls
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-04-20 17:36:27 +02:00
Antonio Scandurra
d725876e64 💄
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-04-20 17:36:03 +02:00
Antonio Scandurra
07562c2ccd Locate app bundle based on location of CLI binary
The app bundle can also be specified via `-b` or `--bundle-path`.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-04-20 17:29:12 +02:00
Antonio Scandurra
f77239bd96 Add application menu to install CLI
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-04-20 17:29:10 +02:00
Antonio Scandurra
926c75dadf Implement zed --version
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-04-20 17:28:31 +02:00
Antonio Scandurra
5ab35bd6fd Remove stray dbg 2022-04-20 17:28:31 +02:00
Antonio Scandurra
f7055c2acc Implement zed --wait 2022-04-20 17:28:31 +02:00
Antonio Scandurra
b013b1ba5d Call language::init_test in test_single_file_worktrees_diagnostics 2022-04-20 17:28:31 +02:00
Antonio Scandurra
b3f2b7a92c Use osascript to escalate privileges and copy the CLI to /usr/local/bin 2022-04-20 17:28:30 +02:00
Max Brunsfeld
0d9a0e2cbe Avoid permissions error when installing CLI symlink 2022-04-20 17:27:33 +02:00
Max Brunsfeld
fbd1afc51f Add a command for installing the CLI 2022-04-20 17:27:33 +02:00
Max Brunsfeld
eee1cec3d4 🎨 Remove unnecessary JoinProjectParams struct 2022-04-20 17:27:33 +02:00
Max Brunsfeld
a81f7ebbf6 Locate the Zed app from the CLI using NSWorkspace API 2022-04-20 17:27:33 +02:00
Max Brunsfeld
43763fa2f8 Allow opening paths from the CLI
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-04-20 17:27:31 +02:00
Nathan Sobo
05c44b9414 Process incoming CLI requests on the main thread 2022-04-20 17:15:46 +02:00
Nathan Sobo
75f0326e54 Use ipc_channel crate to communicate between cli and app
We still aren't handling CLI requests in the app, but this lays the foundation for bi-directional communication.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-04-20 17:15:46 +02:00
Antonio Scandurra
01eb2dce24 WIP: Start on a new cli crate
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-04-20 17:15:45 +02:00
Antonio Scandurra
0c98168227 v0.28.1 2022-04-20 15:21:15 +02:00
Antonio Scandurra
8ef6b1d8a9 Don't emit event when LSP reports consecutive empty diagnostics
This is related to #849: in that pull request we avoided *storing*
empty diagnostics, but we'd still report an event when receiving
consecutive empty diagnostics. So if the project diagnostics editor
was open, it could happen that opening a buffer would cause the
language server to report zero diagnostics. We would therefore close
the buffer because there were no diagnostics, but doing so would cause
the LSP to report another event with zero diagnostics. This would repeat
forever, causing Zed to use a lot of CPU and the UI not to refresh properly.

With this commit we will simply avoid emitting a `DiagnosticsUpdated` event
altogether if no diagnostics were present before *and* the LSP is reporting
a `PublishDiagnostics` event with no diagnostics in it.
2022-04-20 15:02:38 +02:00
Max Brunsfeld
717ebe6a4c Don't cancel match updates when picker query changes
The file finder often cancels an in-progress match task when
the project updates. But it still needs to take the matches
that it did find and add them to its results. So we should
not cancel the entire task, as this will cause the
partial results to be discarded.
2022-04-19 13:16:57 -07:00
Max Brunsfeld
47379677f2 Update file finder correctly when project files change 2022-04-19 13:10:36 -07:00
Keith Simmons
8ff0277103 Handle linewise motions correctly and fix panic when executing invalid actions 2022-04-19 11:36:44 -07:00
Nathan Sobo
93d307aecb Navigate to best match when updating outline view query
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Keith Simmons <keith@the-simmons.net>
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-04-19 10:12:42 -06:00
Nathan Sobo
360b876f36 v0.28.0
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-04-19 09:40:32 -06:00
Antonio Scandurra
ef784cf21e Remove summaries that don't contain any errors or warnings
When opening a buffer, some language servers might start reporting
diagnostics. When closing a buffer, they might report that no diagnostics
are present for that buffer. Previously, we would keep an empty summary entry
which would cause us to open a buffer in the project diagnostics view, only to
drop it because it contained no diagnostics. However, the act of opening it
caused the language server to asynchronously report non-empty diagnostics.
We would therefore handle this as an update, but the previous closing of the
buffer would cause the language server to report empty diagnostics again. This
would cause the project diagnostics view to thrash infinitely between these two
states, pegging the CPU and constantly refreshing the UI.

With this commit we won't maintain empty summary entries for files that contain
no diagnostics, which fixes the above issue.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-04-19 15:30:46 +02:00
Antonio Scandurra
eaa6637b05 Use the entire ProjectPath to find open buffer for an LSP diagnostic
Previously, we would only compare the path relative to the worktree root, which
would cause Zed to sometimes update diagnostics on the wrong buffer. This
manifested in the project diagnostics not showing those errors/warnings while
the status bar and the tab title displayed a summary with errors/warnings.

This commit simply uses `Project::get_open_buffer` which correctly locates a
buffer with the given project path.
2022-04-19 12:06:14 +02:00
Max Brunsfeld
d8ad0d8e4e Format action names more readably in command palette
Also add a unit test for the command palette
2022-04-18 18:12:43 -07:00
Max Brunsfeld
a4f259066b tmp 2022-04-18 17:30:17 -07:00
Max Brunsfeld
11eba96cb8 Allow toggling other modals from the command palette 2022-04-18 17:11:39 -07:00
Max Brunsfeld
f5377c2f50 Highlight fuzzy match positions in command palette 2022-04-18 17:11:39 -07:00
Max Brunsfeld
3bbc021a7e Use Picker in Outline view 2022-04-18 17:11:39 -07:00
Max Brunsfeld
c56e2ead23 Fix hang when dropping ::scoped future under deterministic executor
Co-authored-by: Nathan Sobo <nathan@zed.dev>
Co-authored-by: Keith Simmons <keith@zed.dev>
2022-04-18 17:11:39 -07:00
Max Brunsfeld
df0b5779a8 Remove unused crossbeam-channel dependency in zed crate
Co-authored-by: Keith Simmons <keith@zed.dev>
2022-04-18 17:11:39 -07:00
Max Brunsfeld
d0413ac0e1 Fix crash when dropping a task that is awaiting a call to Background::scoped
Co-authored-by: Keith Simmons <keith@zed.dev>
2022-04-18 17:11:39 -07:00
Max Brunsfeld
20657566b3 Make all pickers respect mouse clicks 2022-04-18 17:11:39 -07:00
Max Brunsfeld
c7527f92a4 Use Picker in FileFinder 2022-04-18 17:11:39 -07:00
Max Brunsfeld
c75ffc583c Use Picker in ProjectSymbolsView 2022-04-18 17:11:39 -07:00
Max Brunsfeld
7b16860806 Use Picker in ThemeSelector 2022-04-18 17:11:39 -07:00
Max Brunsfeld
7964464e3d Rename SelectorModal -> Picker, put it in its own crate 2022-04-18 17:11:39 -07:00
Max Brunsfeld
bde52d5c93 Add basic styling to keystrokes in command palette 2022-04-18 17:11:37 -07:00
Max Brunsfeld
3901d9d544 Display key bindings in the command palette
They still need to be styled.

Co-authored-by: Antonio Scandurra <me@as-cii.com>
2022-04-18 17:11:08 -07:00
Max Brunsfeld
4630071f58 Start work on a command palette 2022-04-18 17:11:08 -07:00
Max Brunsfeld
99f8466cb5 Add a gpui method for listing the available actions 2022-04-18 17:11:07 -07:00
Keith Simmons
5c6a2ac7e6
Merge pull request #812 from zed-industries/js-jsx-language
Add javascript and jsx specific languages
2022-04-18 16:19:54 -07:00
Keith Simmons
26f2aa4d69 Swap to parsing javascript as jsx 2022-04-18 15:26:57 -07:00
Keith Simmons
dd25ab5798 Revert d/c j and k binding special casing 2022-04-18 14:44:11 -07:00
Keith Simmons
dcd5922609 Merge jsx language into js 2022-04-18 14:21:23 -07:00
Keith Simmons
63278041e1 Add c and d operators to vim normal mode
Extracted motions from normal mode
Changed vim_submode to be vim_operator to enable better composition of operators
2022-04-15 16:05:50 -07:00
Antonio Scandurra
2695b13947 Always clear rename state when selections change
At some point during the implementation of rename, we added logic for
invalidating the rename state when the selection moved outside the original
rename range. After transitioning to displaying renames as a block decoration,
we don't need that anymore given that a new, temporary editor is used instead.

This commit removes that invalidation logic and always calls `Editor::take_rename`
when the editor selections change. Doing so also fixes a bug that was causing Zed
to hide the cursor when clicking on the editor to dismiss the rename.
2022-04-15 10:32:07 +02:00
Nathan Sobo
9820c6ba64
Merge pull request #822 from zed-industries/focus-project-search-query
Fix focus bugs in `ProjectSearchView`
2022-04-14 12:25:59 -06:00
Max Brunsfeld
3cdda79fc3
Merge pull request #817 from zed-industries/dynamic-editor-highlights
Store accessors for editor highlight colors not colors themselves
2022-04-14 10:36:38 -07:00
Antonio Scandurra
77d3cc359e Fix tests 2022-04-14 18:50:45 +02:00
Antonio Scandurra
ce3a31d8bd Persist project search focus state
...so that we can re-focus the previously-active editor when switching back
to the project search tab.
2022-04-14 18:36:42 +02:00
Antonio Scandurra
5a8297a02f Introduce ViewContext::observe_focus 2022-04-14 18:22:55 +02:00
Nathan Sobo
27057fdb1b Only process a single focus effect per batch
This allows us to focus the query editor of the project search when deploying it. Previously, a complex interplay between focus events was preventing this from working in an intuitive way. What happened previously:

- We'd activate the project search, which enqueued a focus effect for the project search view
- We'd focus the query editor, which enqueued an effect
- We'd process the focus effect for the search view, which would enqueue an effect to transfer focus to the results editor
- We'd process the effect to focus the query editor
- We'd process the effect to focus the results editor

Now...

- We activate the project search pane item, enqueuing a focus effect for the project search itself
- We focus the query editor and *remove* the previous pending focus change effect
- We process the focus effect
2022-04-14 08:52:24 -06:00
Nathan Sobo
c4203868ea
Revert "Focus Project Search query editor always when deployed" 2022-04-14 07:53:15 -06:00
Antonio Scandurra
6d33697e82 Fix warning 2022-04-14 13:03:46 +02:00
Antonio Scandurra
1a1d670104 Speed up WrapSnapshot::line_len using the indexed transforms 2022-04-14 13:01:29 +02:00
Antonio Scandurra
91d4c835ad Introduce TabMap::line_len 2022-04-14 12:55:33 +02:00
Max Brunsfeld
e1b4bbfcf1
Merge pull request #815 from zed-industries/stale-search-match-count
Notify when buffer search matches change
2022-04-13 15:41:30 -07:00
Max Brunsfeld
efa6af427d
Merge pull request #816 from zed-industries/render-icon-panic
Don't panic when allocating tiny_skia pixmap
2022-04-13 15:31:47 -07:00
Keith Simmons
292d075f81 Store accessors for editor highlight colors not colors themselves 2022-04-13 15:30:57 -07:00
Max Brunsfeld
08e55f77b8
Merge pull request #814 from zed-industries/nav-history-scroll-position
Record scroll position in nav history
2022-04-13 15:23:53 -07:00
Keith Simmons
4b55b578b2 Don't panic when allocating tiny_skia pixmap 2022-04-13 14:57:16 -07:00
Keith Simmons
b893cb6d82 rename NavigationData anchor and offset to cursor_anchor and cursor_offset 2022-04-13 14:53:47 -07:00
Keith Simmons
8cde15cb72 Notify when buffer search matches change 2022-04-13 14:49:18 -07:00
Max Brunsfeld
031472dc5a 0.27.0 2022-04-13 14:00:09 -07:00
Keith Simmons
9cec6d8d65 add comment explaining offsets 2022-04-13 13:30:07 -07:00
Nathan Sobo
6985d360c8
Merge pull request #811 from zed-industries/font-fallback-3
Implement font fallback and emoji rendering
2022-04-13 14:08:57 -06:00
Keith Simmons
f20e3f35a1 Record scroll position in nav history 2022-04-13 12:30:33 -07:00
Max Brunsfeld
2ea2ba358f Add back toggle sidebar key bindings 2022-04-13 11:14:10 -07:00
Keith Simmons
544ca443e3 Add javascript and jsx specific languages 2022-04-13 10:58:42 -07:00
Antonio Scandurra
8e89074714 Reduce allocations when caching fonts
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-04-13 19:06:34 +02:00
Max Brunsfeld
847322215e 0.26.0 2022-04-13 09:34:42 -07:00
Antonio Scandurra
cdcdccfb89 Render emojis
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-04-13 17:31:10 +02:00
Antonio Scandurra
fff1d9c631 Implement glyph scaling in a way that works with emojis as well 2022-04-13 15:56:32 +02:00
Keith Simmons
4249b5687e Implement font fallback in layout_line
Co-authored-by: Max Brunsfeld <max@zed.dev>
2022-04-13 11:42:19 +02:00
Antonio Scandurra
6cc9306f00 Make room for font subpixel variants correctly 2022-04-13 11:36:54 +02:00
Antonio Scandurra
6b629dfa5c Use CTFont::draw_glyphs to rasterize glyphs
This API supports rendering emojis in addition to normal glyphs.
2022-04-12 19:37:26 +02:00
Antonio Scandurra
4e057da69b Update contacts list when a project is shared 2022-04-12 11:41:20 +02:00
Antonio Scandurra
71beebc913 Fix warning 2022-04-12 10:52:16 +02:00
Antonio Scandurra
1d84876cfd Adjust distribution in randomized test 2022-04-12 10:15:38 +02:00
Antonio Scandurra
3e4bc75160 Merge branch 'main' into randomized-test-improvements 2022-04-12 10:14:08 +02:00
Antonio Scandurra
56b9e5b0a0 Make Server::update_contacts_for_users always synchronous 2022-04-12 09:44:23 +02:00
Antonio Scandurra
c06e5f3d1e Limit incoming size to 1 in tests to more easily simulate backpressure 2022-04-12 09:43:36 +02:00
Max Brunsfeld
6317c049c5
Merge pull request #800 from zed-industries/tolerate-lsp-workspace-symbols-failure
Avoid bailing out of Project::symbols when one LSP request fails
2022-04-11 21:14:51 -07:00
Max Brunsfeld
ae9f71cc07 Avoid bailing out of Project::symbols when one LSP request fails 2022-04-11 21:09:01 -07:00
Max Brunsfeld
aa37c364bb
Merge pull request #799 from zed-industries/debug-project-diagnostics-as-json
Allow dumping the project diagnostic view's state as JSON
2022-04-11 20:40:50 -07:00
Max Brunsfeld
949fbe7cd3 Allow dumping the project diagnostic view's state as JSON
Also, improve DebugElements action so that it shows the JSON in an editor.

Co-authored-by: Nathan Sobo <nathan@zed.dev>
2022-04-11 19:51:46 -07:00
Nathan Sobo
d8e4e924cc Merge branch 'main' into collab-renames 2022-04-11 19:07:07 -06:00
Max Brunsfeld
54d49c13d9
Merge pull request #795 from zed-industries/cancel-buffer-search
Handle editor cancel in pane in order to dismiss find toolbar
2022-04-11 17:47:44 -07:00
Max Brunsfeld
a754c3015f
Merge pull request #762 from zed-industries/safer-atlas-allocation
Safer Atlas Allocation
2022-04-11 17:42:53 -07:00
Max Brunsfeld
300feb5d57
Merge pull request #797 from zed-industries/project-search-focus
Focus Project Search query editor always when deployed
2022-04-11 17:41:08 -07:00
Max Brunsfeld
b3c64e47f1
Merge branch 'main' into cancel-buffer-search 2022-04-11 17:38:26 -07:00
Max Brunsfeld
50d5253eff
Merge pull request #792 from zed-industries/fix-tsx-default-indent
Set default tsx tabsize
2022-04-11 17:35:54 -07:00
Keith Simmons
1d8afdff80 Set tsx default indent to 2 and remove js from extension list in tsx config.toml 2022-04-11 17:34:44 -07:00
Nathan Sobo
5a5506ae1d Update certificate 2022-04-11 18:33:55 -06:00
Max Brunsfeld
25e1e3d2df
Merge pull request #786 from zed-industries/load-keymaps
Allow key bindings to be customized via a JSON file
2022-04-11 17:31:22 -07:00
Max Brunsfeld
2807d85a60
Merge pull request #791 from zed-industries/project-search-focus-fix
Properly activate project search item on mouse click
2022-04-11 17:31:06 -07:00
Max Brunsfeld
add0dad6d7 Use '*' to represent the default context in keymap files
Co-authored-by: Keith Simmons <keith@zed.dev>
2022-04-11 17:17:03 -07:00
Nathan Sobo
3b852ee2bd Update Kubernetes manifest to refer to "collab" instead of "zed" 2022-04-11 18:15:41 -06:00
Keith Simmons
28da5b4afc Don't focus active editor when deploying project search and focus query editor on project search focus 2022-04-11 17:05:24 -07:00
Max Brunsfeld
ee3eb9658f Use the word 'keymap' more consistently
Co-authored-by: Keith Simmons <keith@zed.dev>
2022-04-11 17:02:16 -07:00
Max Brunsfeld
be11f63f1e Watch ~/.zed/bindings.json file for custom key bindings
Co-authored-by: Keith Simmons <keith@zed.dev>
2022-04-11 16:50:44 -07:00
Max Brunsfeld
92a5c30389 Merge branch 'main' into load-keymaps 2022-04-11 15:55:10 -07:00
Max Brunsfeld
c065f283aa Move assets to their own crate, load keymaps in vim tests
Also, move assets folder to the top-level.

Co-authored-by: Keith Simmons <keith@zed.dev>
2022-04-11 15:54:52 -07:00
Max Brunsfeld
e0096ec1eb Move keymap_file module into settings crate
Co-authored-by: Keith Simmons <keith@zed.dev
2022-04-11 15:22:18 -07:00
Keith Simmons
4b295f566a Handle editor cancel in pane in order to dismiss find toolbar 2022-04-11 15:11:23 -07:00
Keith Simmons
0ca4c9946a Add logging when atlas allocator fails to allocate 2022-04-11 10:31:38 -07:00
Antonio Scandurra
3844634765 Hold the state lock while responding to guest joining a project
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-04-11 19:30:52 +02:00
Keith Simmons
7abd3a98a8 Make atlas allocation fallable and skip rendering icons and paths when it fails 2022-04-11 10:15:49 -07:00
Keith Simmons
3c116e32cb Reraise editor events in Project Search and activate workspace item from them 2022-04-11 10:13:07 -07:00
Antonio Scandurra
9a8b0388fa Replace synchronous Store lock with an async lock
This also fixes some failures due to `broadcast` and `update_contacts_for_users`
being fallible. As part of this commit, these two functions don't return `Result`
anymore: the reason for this change is that we don't want a request to fail only
because a peer disconnected while we were trying to broadcast a message to them.
2022-04-11 17:56:30 +02:00
Antonio Scandurra
273ee0ae58 Acquire guest connection ids after save request has been forwarded
This fixes a bug that would cause the server to broadcast the save
message to guests that have potentially left the project.
2022-04-11 16:27:14 +02:00
Antonio Scandurra
c3927c541f Simulate random guest disconnection and reconnection 2022-04-11 16:27:11 +02:00
Antonio Scandurra
f99a1437cd Distribute operation workload evenly across peers in randomized test
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-04-11 14:43:30 +02:00
Antonio Scandurra
02f96c6def Simulate parallelism among peers correctly in randomized collab test
Previously they were all using the same foreground executor, which was
not properly simulating concurrency among tasks from different peers.
2022-04-11 13:42:30 +02:00
Antonio Scandurra
bb8dc6120b Allow taking an Arc<Deterministic> in [gpui::test]-decorated tests 2022-04-11 13:42:30 +02:00
Antonio Scandurra
f9e0899e58 Fix divergence bug when peer reconnects reusing a prior replica id
We forgot to observe the footprint of the reconnecting replica's prior
undos into the local clock. This could cause the replica to generate
edits with a version strictly smaller than what other peers may have
observed. As such, those peers would think they had already seen those
edits and skip them.
2022-04-11 13:17:47 +02:00
Max Brunsfeld
9a4b8e3d8c Load all keybindings from JSON file 2022-04-10 14:29:45 -07:00
Max Brunsfeld
b4babbeeaa Load modal key bindings from JSON file 2022-04-10 11:39:43 -07:00
Max Brunsfeld
1e2eeaa22a Load project and buffer search key bindings from JSON file 2022-04-10 11:30:08 -07:00
Max Brunsfeld
3636c9ec25 Load workspace and editor key bindings from a JSON file 2022-04-10 11:18:08 -07:00
Nathan Sobo
ab8204368c Rename zed-server to collab
Over time, I think we may end up having multiple services, so it seems like a good opportunity to name this one more specifically while the cost is low. It just seems like naming it "zed" and "zed-server" leaves it a bit open ended.
2022-04-09 08:30:42 -06:00
Nathan Sobo
af674e1c00
Merge pull request #770 from zed-industries/better-settings-schema
Improve Settings Completions
2022-04-09 08:23:58 -06:00
Nathan Sobo
56fcffb634 Remove unused imports 2022-04-09 07:55:23 -06:00
Nathan Sobo
17195e615e
Merge pull request #781 from zed-industries/structured-logging
Introduce structured logging
2022-04-09 07:40:24 -06:00
Max Brunsfeld
fd4b81c8fc Allow actions to be deserialized from JSON
Introduce separate macro for implementing 'internal' actions which
are not intended to be loaded from keymaps.
2022-04-08 15:47:51 -07:00
Max Brunsfeld
ed2b690b9e Merge branch 'main' into namespace-actions 2022-04-08 11:48:43 -07:00
Nathan Sobo
8a7d3ea82a
Merge pull request #778 from zed-industries/test-random-disconnect
Introduce host disconnection in randomized collaboration test
2022-04-08 11:36:39 -06:00
Nathan Sobo
b507e21831 Enable JSON logging at the trace log level in K8s
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-04-08 10:08:52 -06:00
Nathan Sobo
7e5a3f9f6b Introduce structured logging
We're enabling the log crate feature everywhere, but only using it on the server for now.

Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-04-08 10:06:51 -06:00
Antonio Scandurra
53a7f9c43e Introduce a timeout when processing incoming messages
We have an hypothesis that the server gets stuck while processing
an incoming message, either because the buffer fills up or because
a handler never completes. This should mitigate that and, once we
add logging, give us some clue as to what is causing it exactly.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-04-08 16:21:39 +02:00
Antonio Scandurra
0b1fda3e13 Remove postage from zed-server
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-04-08 16:14:54 +02:00
Antonio Scandurra
24cb44fb00 Remove postage from rpc
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-04-08 16:13:37 +02:00
Antonio Scandurra
32fd4eb3ac Insert project id in connection's project during project registration
...in contrast to doing so during worktree registration. This fixes a
randomized test failure which would panic because store invariants would be
violated. This would happen when a peer disconnected before it had a chance
to register a worktree because, when removing all the state associated with
that peer upon disconnection, we would notice the registered project without
however finding it in the peer's connection state.
2022-04-08 14:41:56 +02:00
Antonio Scandurra
222cd09838 Allow host to reconnect to the server in randomized test 2022-04-08 14:41:30 +02:00
Antonio Scandurra
c994263225 Don't insert an empty vector in Project::buffer_snapshots
Other code paths rely on at least a version always being there, so
we should enforce that invariant everywhere.
2022-04-08 14:14:45 +02:00
Antonio Scandurra
663beab1b9 Avoid panicking when receiving a request for a dropped buffer 2022-04-08 12:10:45 +02:00
Antonio Scandurra
3daaef02ca Replace postage::oneshot with futures::channel::oneshot
This fixes an error in the randomized test that would cause the future
returned from `Worktree::share` to never finish due to a bug in `postage`
that causes its waker to not be notified upon drop.
2022-04-08 12:03:09 +02:00
Antonio Scandurra
da976012a9 Allow simulate_guest and simulate_host to fail when host disconnects 2022-04-08 11:29:00 +02:00
Antonio Scandurra
fae9048a2a Remove non-determinism from Peer caused by using std's HashMap 2022-04-08 11:28:19 +02:00
Keith Simmons
3e40b5bead dynamically inject theme names and language properties into schema 2022-04-07 18:15:02 -07:00
Max Brunsfeld
c801a52492 Convert some actions to use named fields
Co-authored-by: Nathan Sobo <nathan@zed.dev>
Co-authored-by: Keith Simmons <keith@zed.dev>
2022-04-07 16:44:37 -07:00
Max Brunsfeld
5242a3a6dc Restructure action macro to assign a namespace to every action
Also, allow arbitrary types to be used as Actions via the impl_actions macro

Co-authored-by: Nathan Sobo <nathan@zed.dev>
Co-authored-by: Keith Simmons <keith@zed.dev>
2022-04-07 16:20:49 -07:00
Keith Simmons
035cd37aa8 Add explicit types for LanguageOverrides and Themes to SettingsFileContent in order to improve completions in zed settings file 2022-04-07 16:00:51 -07:00
Max Brunsfeld
206b0f0f8c 0.25.0 2022-04-07 12:03:43 -07:00
Nathan Sobo
717f53e3d2 WIP 2022-04-07 09:29:47 -06:00
Antonio Scandurra
0b8eed64ad
Merge pull request #765 from zed-industries/yield-lsp
Don't starve UI thread when rapidly receiving LSP messages
2022-04-07 17:15:19 +02:00
Nathan Sobo
80d55fd3d8 Don't starve UI thread when rapidly receiving LSP messages
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-04-07 08:30:42 -06:00
Antonio Scandurra
b396909035 Calculate hitbox based on visible bounds in {Mouse}EventHandler
This is in contrast to not dispatching the event altogether in `Flex` when
the event is not contained in the flex element bounds. That approach was
problematic because it didn't give an opportunity to `MouseEventHandler`s
to handle mouse move events when they didn't intersect with the element bounds,
causing elements to never clear their hover state, cursor style, etc.
2022-04-07 15:12:09 +02:00
Antonio Scandurra
73f2fd6b09 Pass visible bounds to Element::dispatch_event 2022-04-07 15:10:09 +02:00
Antonio Scandurra
ae415ee49b
Merge pull request #763 from zed-industries/inconsistent-diagnostic-state
Fix bad diagnostic state when restarting a language server w/ a running diagnostic task
2022-04-07 09:54:00 +02:00
Antonio Scandurra
7c21b61ad9
Merge pull request #748 from zed-industries/fix-outline-panic
Don't assume there are always matches in outline view
2022-04-07 09:49:13 +02:00
Antonio Scandurra
52251c3463
Merge pull request #745 from zed-industries/scroll-tabs
Allow pane tabs to be scrolled when they overflow
2022-04-07 09:48:54 +02:00
Max Brunsfeld
f73de202d0 Fix diagnostic updates after restarting an LSP w/ a pending diagnostic job 2022-04-06 22:02:27 -07:00
Max Brunsfeld
b354af7bda Use an unbounded channel in gpui test helper methods
The bounded channel could fill up when many events were emitted in one
effect cycle.
2022-04-06 22:02:04 -07:00
Max Brunsfeld
ec837fa6d7 Update breadcrumbs when multibuffers' excerpts change 2022-04-06 17:12:36 -07:00
Max Brunsfeld
8f38ac8270 Tweak structure of Project::on_lsp_progress so it can be auto-formatted
Previously, rustfmt seems to have given up on formatting this method.
2022-04-06 16:35:58 -07:00
Max Brunsfeld
ea63df0519 Don't activate the next pane when opening excerpts 2022-04-06 15:46:11 -07:00
Keith Simmons
67b15ee037 Use language specific tabsize in editor commands
Co-authored-by: Max Brunsfeld <max@zed.dev>
2022-04-06 15:10:29 -07:00
Keith Simmons
1812480cbb Tab size is pulled properly from settings instead of hardcoded 2022-04-06 10:23:37 -07:00
Max Brunsfeld
866ffdd4ae Move Settings to its own crate
Co-authored-by: Keith Simmons <keith@zed.dev>
2022-04-06 10:23:33 -07:00
Max Brunsfeld
664f17f92b Avoid maintaining indent size as state on buffers
Indent size is still hard-coded, but it's now controlled by the
editor and not the buffer.

Co-authored-by: Keith Simmons <keith@zed.dev>
2022-04-06 10:22:29 -07:00
Nathan Sobo
0214bec7f4 Don't dispatch events to flex children outside of parent flex's bounds 2022-04-06 10:59:03 -06:00
Nathan Sobo
e21f90fec5
Merge pull request #747 from zed-industries/styles-in-typescript
Style the Zed app using Typescript styleTrees and Design Tokens
2022-04-06 10:39:10 -06:00
Nate Butler
b1eda1ac39 Add border to top of status bar 2022-04-06 12:25:15 -04:00
Nathan Sobo
ca64b081fe Don't assume there are always matches in outline view 2022-04-06 09:33:47 -06:00
Antonio Scandurra
d7342e2875 Use Pane::activate_item when navigating to remove duplicated logic 2022-04-06 09:31:54 +02:00
Antonio Scandurra
1453954ef4 Autoscroll to active tab when activating a new item 2022-04-06 09:08:44 +02:00
Nate Butler
e201826d00 Update Light & Dark themes 2022-04-06 01:46:10 -04:00
Nathan Sobo
eb99588368 Remove stray dbg! expressions 2022-04-05 20:02:45 -06:00
Nathan Sobo
ab3bbe1e17 Make the tabs scrollable when they overflow
This adds the ability to make a Flex element scrollable by passing a type tag and instance id, which we use to store the scroll position in an ElementStateHandle.

Still need to allow the element to auto-scroll.
2022-04-05 19:58:15 -06:00
Nathan Sobo
025d857be8 Make UniformListState an Rc<RefCell<>> instead of an Arc<Mutex<>>
We don't need to support multiple threads.
2022-04-05 18:40:25 -06:00
Nate Butler
2a2c4071f4 Update light syntax theme and highlights, player selections 2022-04-05 18:49:17 -04:00
Nate Butler
35f56708f5 Update light theme, change player 3 color
- Changed player 3 color to be less similar to player 1
2022-04-05 18:23:01 -04:00
Nathan Sobo
aeb0b42c7a Report more information when we panic due to an allocation failure 2022-04-05 13:53:13 -06:00
Nathan Sobo
4f4364d510 Ensure we drop the last pane item
Previously, we weren't updating the toolbar's active item when emptying out a pane. This enhances an integration test to ensure that we don't hold references to any editors or buffers once we close everything.
2022-04-05 13:05:14 -06:00
Nathan Sobo
41a27e6925 💄 2022-04-05 12:09:40 -06:00
Nathan Sobo
e2bf89b1e8 Don't require a path in TestAppContext::dispatch_action
Instead, derive it from the presenter. This makes tests easier to write and more reliable since we'll be accurately simulating the actual relationship between parent and child views.
2022-04-05 12:08:25 -06:00
Nathan Sobo
3da8f7f944 Fix dispatch path in test 2022-04-05 11:55:29 -06:00
Antonio Scandurra
c3b947ca26 Show unsaved/conflict prompt only when closing the last tab for an item
Also, ensure we show the correct prompt when files have conflicts.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-04-05 19:38:27 +02:00