Commit Graph
11144 Commits
Author SHA1 Message Date
Max Brunsfeld 21588a87c8 Fix copilot state corruption when there are multiple buffers with the same remote id in different projects (#2569)
Fixes
https://linear.app/zed-industries/issue/Z-1511/thread-main-panicked-at-assertion-failed-left-==-right-left-local-0-1

Previously, when exchanging messages about buffers with a copilot
language server, we identified buffers using their **remote id**. This
caused problems when there were multiple projects open, where one or
more were remote, because buffers' remote ids are only unique within a
given project.

When you have multiple projects open, and one or more of the projects is
remote, it's pretty easy to have two buffers open with the same remote
id. In my testing, when this happened, copilot would stop working in
both buffers. But I believe that depending on the editing patterns that
occur in the two buffers, it could cause the crash reported in the
Linear issue above.

This PR changes our copilot logic to use buffers' local handle ids for
identifying them. This fixed the problems I was able to reproduce when
using copilot in both remote and local projects.

Release Notes:

- Fixed a crash that would sometimes occur when editing buffers after
having collaborated on a remote project.
2023-06-05 14:33:56 -07:00
Max Brunsfeld 1bf7a087c4 Use local ids, not remote ids, to identify buffers to copilot 2023-06-05 14:12:19 -07:00
Mikayla Maki 8000a7075d Add file and line number information to logs (#2568)
This PR adds codegen from rustc to track the file and line number of
calls to `log_err()`. I haven't noticed much longer compile times on my
machine, and looking at the
[implementation](https://rustc-dev-guide.rust-lang.org/backend/implicit-caller-location.html)
it essentially adds an extra argument and secret reference pass.
However, this will show a lot more data in our logs on user machines.
Requesting review from @ForLoveOfCats, who usually knows a bunch about
this kind of thing :)
2023-06-05 13:24:07 -07:00
Mikayla Maki 066e23ec4e Add file and line number information to logs 2023-06-05 12:53:37 -07:00
Mikayla Maki af3189be5b WIP: Add status bubbling to project panel 2023-06-05 12:53:04 -07:00
Joseph T. Lyons 3332f3118d Remove code sending zed events to mixpanel (#2567)
Release Notes:

- N/A
2023-06-05 15:40:27 -04:00
Joseph Lyons bdc5fe76db Remove code sending zed events to mixpanel 2023-06-05 15:33:17 -04:00
Mikayla Maki 341fde871c Add postgres migration 2023-06-05 12:17:21 -07:00
Joseph T. Lyons 368505fe77 Stop sending editor events to mixpanel (#2566)
Release Notes:

- N/A
2023-06-05 15:15:30 -04:00
Joseph Lyons 396846c973 Stop sending editor events to mixpanel 2023-06-05 15:09:47 -04:00
Mikayla Maki d478937043 Add statuses to test integration 2023-06-05 12:06:23 -07:00
Mikayla Maki 619cfe3cec Track git status changes with the changed_paths system 2023-06-05 11:50:23 -07:00
Joseph T. Lyons 70149165b7 Move app version into panic object (#2565)
Final tweaks to clean up how we structure our panic data

Release Notes:

- N/A
2023-06-05 14:40:28 -04:00
Joseph Lyons 84a4486086 Move app version into panic object 2023-06-05 14:17:48 -04:00
Julia f7209e317e Update rust-bindgen dev-dependencies (#2563)
I did \*something\* Friday afternoon which changed something about my
system SDK to break the `media` crate's bindings generation. Some of the
types and consts were not being generated despite being able to prove
that they exist in the source, such as when running the header through
the preprocessor myself and feeding that through the generator. Updating
my OS, XCode, command line tools, and reinstalling Rust as well as
working from fresh clones of the repo had no effect.

Updating rust-bindgen resolved the issue and downgrading the version
back to the original version caused the issue to reappear. I'm still not
sure what happened to change the SDK but at this point with being able
to build the project again I'm not going to look a gift horse in the
mouth.

Release Notes:

- N/A
2023-06-05 09:21:07 -04:00
Antonio Scandurra c0659012e8 Query rect_for_text_range on focused view instead of root element (#2564)
This was causing IME input to be drawn in the wrong place when there
were splits or panels in the window.

Release Notes:

- Fixed a bug that was causing IME input to sometimes be rendered in the
wrong position.
2023-06-05 12:11:35 +02:00
Antonio Scandurra 12e72cc144 Query rect_for_text_range on focused view instead of root element
This was causing IME input to be drawn in the wrong place when there
were splits or panels in the window.
2023-06-05 12:00:40 +02:00
Antonio Scandurra d2981852ef Avoid accidentally taking the api_key when requesting an assist 2023-06-05 11:25:21 +02:00
Julia ddbfe23535 Update rust-bindgen dev-dependencies 2023-06-04 23:34:22 -04:00
Joseph T. Lyons 85c636c0b4 Fix typos (#2562)
Quite literally just ran `typos --write-changes` from
https://crates.io/crates/typos. Its pretty impressive - wonder if we
should run it on CI.

Release Notes:

- N/A
2023-06-02 22:08:45 -04:00
Joseph Lyons 4b5a7ec94a Fix typos 2023-06-02 22:02:19 -04:00
Mikayla Makiandmax 09220ebb02 Fix bug where git statuses would not be initialized on startup
move git status queries to be on entry creation

co-authored-by: max <max@zed.dev>
2023-06-02 17:38:39 -07:00
Mikayla Makiandmax c589b13748 Remove stale comments
Implement status bubbling query with sum tree traversals

co-authored-by: max <max@zed.dev>
2023-06-02 16:41:01 -07:00
Mikayla Makiandmax 026df41c1a Remove stateful bubbling
co-authored-by: max <max@zed.dev>
2023-06-02 15:07:49 -07:00
Mikayla Makiandmax 16ba8467d8 Abandoning stateful bubbling approach
co-authored-by: max <max@zed.dev>
2023-06-02 14:51:40 -07:00
Max Brunsfeld 2f77dc9f80 Improve panic reports (#2560)
* Add an `identifying_backtrace` field that only contains symbols in
*our* own codebase, which can be used for better deduplication.
* In the main backtrace, include file and line numbers for all symbols
in our codebase
* Exclude any stack frames within the panic handling/hooking system
itself, so that the top line of the backtrace is where the panic
originated in our codebase.

This should improve our panic deduplication, and also make panic reports
a bit more readable.

example:

```
{
  "thread": "main",
  "payload": "wtf",
  "location_data": {
    "file": "crates/zed/src/zed.rs",
    "line": 459
  },
  "backtrace": [
    "zed::open_log_file::{{closure}}::{{closure}}::{{closure}}",
    "    crates/zed/src/zed.rs:459",
    "gpui::app::AppContext::spawn_internal::{{closure}}",
    "    crates/gpui/src/app.rs:2073",
    "gpui::executor::any_local_future::{{closure}}",
    "    crates/gpui/src/executor.rs:1026",
    "<core::pin::Pin<P> as core::future::future::Future>::poll",
    "<async_task::runnable::spawn_local::Checked<F> as core::future::future::Future>::poll",
    "async_task::raw::RawTask<F,T,S>::run",
    "async_task::runnable::Runnable::run",
    "<gpui::platform::mac::dispatcher::Dispatcher as gpui::platform::Dispatcher>::run_on_main_thread::trampoline",
    "    crates/gpui/src/platform/mac/dispatcher.rs:40",
    "<() as objc::message::MessageArguments>::invoke",
    "objc::message::platform::send_unverified",
    "objc::message::send_message",
    "<gpui::platform::mac::platform::MacForegroundPlatform as gpui::platform::ForegroundPlatform>::run",
    "    crates/gpui/src/platform/mac/platform.rs:366",
    "gpui::app::App::run",
    "    crates/gpui/src/app.rs:251",
    "Zed::main",
    "    crates/zed/src/main.rs:118",
    "core::ops::function::FnOnce::call_once",
    "std::sys_common::backtrace::__rust_begin_short_backtrace",
    "std::rt::lang_start::{{closure}}",
    "core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once",
    "std::rt::lang_start"
  ],
  "release_channel": "dev",
  "os_name": "macOS",
  "os_version": "12.6.1",
  "architecture": "aarch64",
  "panicked_on": 1685734744050,
  "identifying_backtrace": [
    "zed::open_log_file::{{closure}}::{{closure}}::{{closure}}",
    "gpui::app::AppContext::spawn_internal::{{closure}}",
    "gpui::executor::any_local_future::{{closure}}",
    "<gpui::platform::mac::dispatcher::Dispatcher as gpui::platform::Dispatcher>::run_on_main_thread::trampoline",
    "<gpui::platform::mac::platform::MacForegroundPlatform as gpui::platform::ForegroundPlatform>::run",
    "gpui::app::App::run",
    "Zed::main"
  ]
}
```

Release Notes:

N/A
2023-06-02 13:11:57 -07:00
Max Brunsfeld 12bdb28539 Avoid writing spurious nulls to the settings file when updating it programatically (#2561)
Thanks for catching this @iamnbutler.
2023-06-02 13:11:35 -07:00
Max Brunsfeld e4888ab8e1 Avoid writing spurious nulls to settings file when updating it programatically 2023-06-02 13:02:17 -07:00
Max Brunsfeld 663fd99478 Improve panic reports
* Add an 'identifying_backtrace' field that only contains symbols in our
  codebase, which can be used for better deduplication.
* In the main backtrace, include file and line numbers for all symbols
  in our codebase
2023-06-02 12:37:39 -07:00
Joseph T. Lyons 563fdd0dff Add additional panic information to panic events (#2555)
Adds the following to the panic event

release_channel
os_name
os_version
architecture

Merge first: https://github.com/zed-industries/zed.dev/pull/322

Release Notes:

- N/A
2023-06-02 14:30:16 -04:00
Piotr Osiewicz 2ff93b2bc5 editor: add select previous command (#2556)
Added a `select previous` command to complement `select next`.
Release Notes:

- Added "Select previous" editor command, mirroring `Select next`.
Ticket number: Z-366
2023-06-02 17:32:34 +02:00
Antonio Scandurra 4829c9ef8e Show remaining tokens 2023-06-02 17:27:21 +02:00
Sergey Onufrienko 39046de128 feat: update themes to use ThemeConfig 2023-06-02 14:11:11 +02:00
Sergey Onufrienko 1e3c0c4c74 fix: typescript errors 2023-06-02 14:10:44 +02:00
Sergey Onufrienko 9af586e442 feat: add index export 2023-06-02 14:10:19 +02:00
Sergey Onufrienko 869165cb71 chore: make SyntaxHighlightStyle.color optional 2023-06-02 14:10:02 +02:00
Sergey Onufrienko ce8daa7d18 feat: update and refactor colorScheme 2023-06-02 14:08:35 +02:00
Sergey Onufrienko 2c28af853e feat: add themeConfig types 2023-06-02 14:07:43 +02:00
Antonio Scandurra 6da72891cd Save OpenAI API key in the keychain 2023-06-02 12:15:25 +02:00
Piotr Osiewicz 469a3f827e Z-1074/search default label (#2547)
This commit adds a default "Project search" tooltip for empty search
panes. Fixes Linear ticket Z-1074
Release Notes:

- Added default tooltip to empty search panes.
([#1533](https://github.com/zed-industries/community/issues/1533)).
2023-06-02 11:42:40 +02:00
Antonio Scandurra e2a0dd6ccf Allow saving the OpenAI API key in the assistant panel 2023-06-02 11:38:02 +02:00
Antonio Scandurra 5f5cbb5700 Allow moving the assistant panel to other docks 2023-06-02 10:55:19 +02:00
Antonio Scandurra 1c39a0e70e Allow adding new contexts 2023-06-02 10:29:22 +02:00
Antonio Scandurra 83542684d5 Fix compile errors 2023-06-02 10:08:06 +02:00
Antonio Scandurra 58959e4179 Merge remote-tracking branch 'origin/main' into assistant-2 2023-06-02 09:32:11 +02:00
Mikayla Maki 1e44d43940 WIP: Git statuses 2023-06-01 23:27:49 -07:00
Joseph Lyons 6f3a90f4e5 Rename field to panicked_on 2023-06-02 01:33:25 -04:00
Joseph Lyons f188617f61 Add additional panic information to panic events 2023-06-01 23:34:39 -04:00
Mikayla Maki 319f9d7377 WIP: Add stateful status bubbling to worktree 2023-06-01 16:51:34 -07:00
Max Brunsfeld 2ccf121a51 Zoom out all panes when opening a dock (#2554)
Fixes
https://linear.app/zed-industries/issue/Z-2051/center-zoom-isnt-unset-when-opening-project-panel

Release Notes:

- Fixed a bug where opening the project panel did not reset the zoom
state of a pane.
2023-06-01 15:26:46 -07:00