Commit graph

9857 commits

Author SHA1 Message Date
Max Brunsfeld
050c22312c Update plugin runtime LspAdapter impl 2023-06-19 19:38:31 -07:00
Max Brunsfeld
1215de0c42 Show a notification when unable to start elixir-ls 2023-06-19 18:05:30 -07:00
Max Brunsfeld
57c2d85c66 Show a notification that gopls can't be installed without go 2023-06-19 18:05:12 -07:00
Max Brunsfeld
360bbebbd9 Introduce LspAdapterDelegate trait, passed to LspDelegates 2023-06-19 16:12:25 -07:00
Max Brunsfeld
05d69c804c
Fix issues with syntax highlighting in elixir and heex (#2629)
Fixes
https://linear.app/zed-industries/issue/Z-2391/text-within-h-isnt-highlighted-the-same-as-in-heex-files
Fixes
https://linear.app/zed-industries/issue/Z-2415/syntax-highlighting-bug-in-strings

Release Notes:

- Fixed some issues with syntax highlighting in Elixir and Heex.

If the release notes are only intended for a specific release channel
only, add `(<release_channel>-only)` to the end of the release note
line.
These will be removed by the person making the release.
2023-06-19 12:56:09 -07:00
Max Brunsfeld
04430fdbd6 Fix issues with syntax highlighting in elixir and heex 2023-06-19 12:34:46 -07:00
Piotr Osiewicz
2a3c660d1f
settings: accept trailing commas (#2606)
Z-2357

I've found a crate that handles both comments and trailing commas in
JSON. It is a fork of `serde_json`, but it is maintained & up-to-date.
Sadly RawValue seems to not play nicely with it; I've ran into
deserialisation issues around use of RawValue. For this PR I've migrated
to `Value` API.

Obviously this is just a point of discussion, not something I'd merge
straight away. There may be better solutions to this particular problem.

I've also noticed that `serde_json_lenient` does not handle trailing
commas after bindings array. I'm not sure how big of an issue that is.

Release Notes:
- Improved handling of trailing commas in settings files.
[#1322](https://github.com/zed-industries/community/issues/1322)
2023-06-19 18:29:03 +02:00
Antonio Scandurra
70ccbbafc1
Allow message splitting with multiple cursors (#2627)
Closes
https://linear.app/zed-industries/issue/Z-2408/make-block-splitting-work-with-multiple-cursors
2023-06-19 12:07:16 +02:00
Antonio Scandurra
c9df963142 Allow message splitting with multiple cursors 2023-06-19 12:00:45 +02:00
Joseph T. Lyons
c858ab263c
Add pane activation bindings for Atom keymap (#2625)
Release Notes:

- N/A
2023-06-18 02:09:26 -04:00
Joseph T. Lyons
bb04d65b8e Add pane activation bindings for Atom keymap 2023-06-18 02:05:25 -04:00
Nathan Sobo
c3b2b4c4e3
Cycle message roles on ctrl-r (#2619)
I'd like to follow up to allow roles to be cycled for the selected range
and support multi-cursors, but this is a start and contains a
refactoring, so going to merge.

Release Notes:

- Added the ability to cycle roles in the assistant with `ctrl-r`
2023-06-16 14:11:01 -06:00
Kirill Bulatov
7ff194f21f
React on message-less LSP requests properly (#2620) 2023-06-16 23:00:14 +03:00
Kirill Bulatov
77f5b5a80d React on message-less LSP requests properly
Co-Authored-By: Julia Risley <julia@zed.dev>
2023-06-16 22:02:29 +03:00
Nathan Sobo
11f318566e
Allow splitting of messages using shift-enter (#2613)
Closes
https://linear.app/zed-industries/issue/Z-2364/allow-splitting-blocks

Release Notes:

- Added support for splitting messages in the assistant panel using
`shift-enter`. (preview-only)
2023-06-16 11:50:50 -06:00
Nathan Sobo
75b5ac8488 Cycle message roles on ctrl-r 2023-06-16 11:50:18 -06:00
Nathan Sobo
c179dd9990 Remove redundant tests 2023-06-16 11:43:16 -06:00
Nathan Sobo
6c0f65cfe0 Avoid inserting redundant newlines
Co-Authored-By: Piotr Osiewicz <piotr@zed.dev>
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-06-16 10:36:42 -06:00
Piotr Osiewicz
ef6cb11d5c Emit editor event whether we insert a newline or not. 2023-06-16 13:29:12 +02:00
Mikayla Maki
8235d78afe
Voice support (#2602)
This PR adds APIs for voice chat to our live kit integration

Release Notes:

- N/A
2023-06-15 19:40:01 -07:00
Mikayla Maki
d7dbc3b5d3
Implement test stubs 2023-06-15 19:28:59 -07:00
Max Brunsfeld
8592208d3a
Fix failure to upload panics when multiple panics happen at the same time (#2616)
When multiple panics occur at the same time (usually because one thread
panics, and another thread joins it), multiple panic JSON objects can
get written to the same panic file. The resulting file won't be valid
JSON.

This PR addresses that problem via two changes:
* Format panic files as single-line JSON objects
* When a panic file  isn't valid JSON, try taking the first line

In the future, we could try combining all of the backtraces, but for
now, I just want to avoid a problem of not reporting a panic at all.

Release Notes:

- Fixed a problem with Zed's internal crash reporting.
2023-06-15 15:31:49 -07:00
Mikayla Maki
b9270925dd
Focus on toggle dock (#2612)
This PR updates some dock behaviors. Now the toggle-dock commands
(cmd-j/b/r) also toggle focus. This also adds zoom serialization to the
docks.

Release Notes:
- Bug fix: Toggle dock commands (cmd-j/b/r) now move focus 
- Bug fix: Dock zoom is now restored with the rest of the workspace
2023-06-15 15:20:20 -07:00
Max Brunsfeld
e525706581 Fix failure to upload panics when multiple panics happen at the same time 2023-06-15 15:16:26 -07:00
Mikayla Maki
b156644daf
fixed tests to match new behavior 2023-06-15 15:09:37 -07:00
Mikayla Maki
b7e3ac5bf4
Fix bug on workspace deserialization 2023-06-15 14:56:37 -07:00
Mikayla Maki
b9cb594626
Fix fmt 2023-06-15 14:51:38 -07:00
Max Brunsfeld
5f93a4effd
Don't rely on debug symbols for panic reporting (#2615)
This fixes a regression introduced in
https://github.com/zed-industries/zed/pull/2560, where panic reports did
not include backtraces. The problem was that in that PR, I assumed we
could retrieve file paths for symbols in our backtraces. But actually,
that functionality only works when the app is built locally, and a
`.dSYM` file can be magically found by the OS. We don't ship those dSYM
files with Zed, so panic symbols do not have file paths available.

Panic backtraces will still be more useful and less noisy than before
though: we will strip out frames for which we don't have symbol names,
and remove leading panic-handling stack frames from the backtraces.

Release Notes:

- N/A
2023-06-15 14:09:42 -07:00
Max Brunsfeld
e7e0f2183f Don't rely on debug symbols for panic reporting 2023-06-15 12:27:39 -07:00
Antonio Scandurra
0a8d67c4ca
Activate screen-sharing when leader activates a panel (#2614)
Fixes
https://linear.app/zed-industries/issue/Z-1875/screen-sharing-tab-is-not-activated-when-leader-is-on-a-panel

Release Notes:

- Fixed a bug that caused followers to not see the leader's screen when
they activated a panel.
2023-06-15 18:13:07 +02:00
Antonio Scandurra
f068712a0a Activate screen-sharing when leader activates a panel 2023-06-15 18:01:30 +02:00
Nathan Sobo
8c6ba13fef Never insert an empty prefix when splitting a message with a non-empty range
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
Co-Authored-By: Piotr Osiewicz <piotr@zed.dev>
2023-06-15 09:02:15 -06:00
Nate Butler
0863486803
Add internal markdown docs (#2598)
This PR adds internal docs directly to the codebase.

There are a few goals here:

- Make it easier to document our internal processes
- Put the documentation where people already are
- Allow changes to be in sync with PRs
- Make it easier for people coming in to discover our docs and onboard
faster.

With 2 more people joining us in the next few weeks it would be great to
get these up.

Release Notes:

- N/A (No public facing changes)
2023-06-15 10:55:55 -04:00
Nate Butler
87c3216236 Fix design tools link 2023-06-15 10:38:15 -04:00
Nate Butler
5149db6acd
Update docs/index.md
Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
2023-06-15 10:36:53 -04:00
Antonio Scandurra
21e8e8763e Allow splitting of messages using shift-enter 2023-06-15 14:05:26 +02:00
Mikayla Maki
6662066821
Add zoom serialization to the workspace 2023-06-14 23:43:45 -07:00
Mikayla Maki
790d995381
Add focusing into the toggle dock commands 2023-06-14 23:04:41 -07:00
Mikayla Maki
a4b009a497
Update test-app sound 2023-06-14 18:40:45 -07:00
Mikayla Maki
ce3847c9fc
WIP: Use audio support to send live data 2023-06-14 18:40:45 -07:00
Mikayla Maki
bbf05c8eac
Wire in audio APIs from swift
co-authored-by: nathan <nathan@zed.dev>
2023-06-14 18:40:45 -07:00
Mikayla Maki
8ccb75029f
Add entitlements file to bundle step (#2611)
This completes the bundle changes that will be needed to access voice,
as well as adds permissions for accessing other MacOS services, the
camera, and the necessary permissions for plugins. This was developed by
combining the entitlements of iTerm and VSCode, cross-referenced with
the entitlements of Firefox. 

Release Notes:

- Fixed a bug in enabling authorization for macOS services (preview
only)
2023-06-14 18:06:55 -07:00
Mikayla Maki
b481e383ce
Update bundle 2023-06-14 17:37:47 -07:00
Mikayla Maki
493e489c51
Add entitlements file to bundle step 2023-06-14 17:34:48 -07:00
Joseph Lyons
2e723cac62 v0.92.x dev 2023-06-14 13:27:36 -04:00
Mikayla Maki
75b1f60126
Add UsageDescriptions to Info.plist (#2609)
This updates our dependency on cargo-bundle to point at a fork I've
created that adjusts the latest version's behavior to work for our use
case. This PR also updates the Zed Info.plist to include the following
keys:

- NSSystemAdministrationUsageDescription
- NSAppleEventsUsageDescription
- NSBluetoothAlwaysUsageDescription
- NSCalendarsUsageDescription
- NSCameraUsageDescription
- NSContactsUsageDescription
- NSLocationAlwaysUsageDescription
- NSLocationUsageDescription
- NSLocationWhenInUseUsageDescription
- NSMicrophoneUsageDescription
- NSSpeechRecognitionUsageDescription
- NSRemindersUsageDescription

Release Notes:

- Bug fix: Allow applications run via the Zed terminal to request
authorization for macOS services (e.g. microphone and camera)
2023-06-14 10:04:54 -07:00
Antonio Scandurra
2b8b954c3e
Overhaul assistant panel (#2610)
Closes
https://linear.app/zed-industries/issue/Z-2368/use-a-different-icon-for-the-assistant-panel
Closes
https://linear.app/zed-industries/issue/Z-2363/ship-the-assistant-only-on-preview
Closes
https://linear.app/zed-industries/issue/Z-2331/scrolling-makes-it-hard-to-read
Closes
https://linear.app/zed-industries/issue/Z-2306/allow-undo-and-collaboration-in-assistant

This pull request is a significant overhaul of the assistant panel,
which now uses a simple `Buffer` as opposed to a `MultiBuffer` to show
messages. Specifically, we track the start of each message with an
anchor located right after the newline (or `Anchor::MIN` for the first
message). When the anchor becomes invalid (that is, the newline is
deleted), we merge the message with the preceding ones. Crucially,
messages don't actually get deleted so that, if the newline anchor
becomes valid again (such as when undoing/redoing), we can restore the
messages as well.

As part of this overhaul, we are also improving the scrolling behavior
to maintain the viewport stable only when editing or moving the cursor,
but otherwise leave the scroll position unchanged when manually
scrolling up or down.

Note that with these changes, we are limiting access to the assistant to
users on preview (and dev), as we want to polish the behavior a little
more before shipping to the general public. Users on stable will still
be able to see the default settings/keybindings of the assistant, but I
think that's okay, as they won't be able to do anything with them.

Release Notes:

- Added support for undo/redo in the assistant (preview-only)
- Improved the scrolling behavior of the assistant when it was
generating responses. Now Zed will keep the viewport stable only when
editing or moving the cursor, but otherwise leave the scroll position
unchanged when manually scrolling up or down (preview-only)
- Changed the icon of the assistant panel (preview-only)

**Note for @JosephTLyons: given that we're feature flagging this, let's
make sure things on stable look reasonable and work correctly. Things to
look out for: ensure a stock installation works, changing the settings
on stable works, changing the keybinding on stable works.**
2023-06-14 14:09:09 +02:00
Antonio Scandurra
4efe62b3e5 Use robot icon for assistant to prevent confusion with conversations 2023-06-14 12:14:43 +02:00
Antonio Scandurra
049c987310 Avoid loading the assistant panel on stable 2023-06-14 12:08:49 +02:00
Antonio Scandurra
56b0bf8601 Save cursor scroll position when the editor is auto-scrolled 2023-06-14 12:00:27 +02:00