Readit News logoReadit News
iamnbutler commented on Zed AI   zed.dev/blog/zed-ai... · Posted by u/dahjelle
amkkma · a year ago
Hey! I really see the power in Zed and the extensibility and simplicity. Great approach.

I posted this above, but want you to see it:

Two areas where I think Zed might fall behind: Cursor Tab is REALLY good and probably requires some finetuning/ML chops and some boutique training data.

For composer, there's going to be more use of "shadow workspace" https://www.cursor.com/blog/shadow-workspace to create an agentic feedback loop/ objective function for codegen, along with an ability to navigate the language server and look up definitions and just generally have full context like an engineer

Also, cursor has a model agnostic apply model, whereas you all are leaning on claude.

Any plans to address this from the core team or more of a community thing? I think some of this might be a heavy lift

I really like the shared context idea, and the transparency and building primitives for an ecosystem

iamnbutler · a year ago
Thanks, I'll take a look at these. We aren't done–A good amount of the Zed team uses our assistant heavily every day so we'll continue to refine it.

I shared this with the team. I need to spend some time in Cursor to understand their mental model, it seems a lot of folks have come to enjoy using it.

We do also have extensibility planned for the assistant, you can see a taste of it in the slash command code if you want to check it out.

AFAIK you can use `/workflow` with some other models other than Claude, but I can't speak to which off the top of my head.

iamnbutler commented on Zed AI   zed.dev/blog/zed-ai... · Posted by u/dahjelle
swyx · a year ago
am Cursor main, dont really have any burning pains that make me want to change tools but open to what I dont know.

Zed vs Cursor review anyone?

iamnbutler · a year ago
Hey! I'm Nate from Zed. There are a lot of questions about this, here are some quick thoughts...

Cursor is great – We explored an alternate approach to our assistant similar to theirs as well, but in the end we found we wanted to lean into what we think our super power is: Transforming text.

So we leaned into it heavily. Zed's assistant is completely designed around retrieving, editing and managing text to create a "context"[0]. That context can be used to have conversations, similar to any assistant chatbot, but can also be used to power transformations right in your code[1], in your terminal, when writing prompts in the Prompt Library...

The goal is for context to be highly hackable. You can use the /prompt command to create nested prompts, use globs in the /file command to dynamically import files in a context or prompt... We even expose the underlying prompt templates that power things like the inline assistant so you can override them[2].

This approach doesn't give us the _simplest_ or most approachable assistant, but we think it gives us and everyone else the tools to create the assistant experience that is actually useful to them. We try to build the things we want, then share it with everyone else.

TL;DR: Everything is text because text is familiar and it puts you in control.

[0]: https://zed.dev/docs/assistant/contexts.html

[1]: https://zed.dev/docs/assistant/inline-assistant

[2]: https://zed.dev/docs/assistant/prompting#overriding-template...

iamnbutler commented on Zed AI   zed.dev/blog/zed-ai... · Posted by u/dahjelle
forrestthewoods · a year ago
Ah interesting. I missed that when browsing the page.

Can you make the diff side-by-side? I’ve always hated the “inline” terminal style diff view. My brain just can’t parse it. I need the side-by-side view that lets me see what the actual before/after code is.

iamnbutler · a year ago
Haha I actually agree – I always prefer them side by side.

We don't have side-by-side diffs yet, but once we do I'll make sure it works here :)

iamnbutler commented on Zed AI   zed.dev/blog/zed-ai... · Posted by u/dahjelle
simonw · a year ago
This feature does exactly that. You can open up the chat panel, run "/tab name-of-tab" or "/file path-to-file" and then start asking questions about the code.
iamnbutler · a year ago
Hey! I'm Nate from Zed. You can also use the /file command to drop entire directories, or even globs into the assistant.

For example, you can do /file *.rs to load all of the rust files in your project into context.

Here is a simple but real example I used a while back:

"/file zed/crates/gpui/src/text_system.rs

I have a font I want to check if it exists on the system. I currently have a &'static str.

Is there something in here that will help me do that?"

I haven't interfaced with the lower level TextSystem that much, so rather than dig through 800 lines of code, I was able to instantly find `is_font_available()` and do what I needed to do.

iamnbutler commented on Zed AI   zed.dev/blog/zed-ai... · Posted by u/dahjelle
forrestthewoods · a year ago
Hrm. Still not quite what I crave.

Here's roughly what I want. I want to be able to highlight some block of code, ask the AI to modify it in some way, and then I want to see a diff view of before/after that lets me accept or reject changes.

LLMs often get code slightly wrong. That's fine! Doesn't bother me at all. What I need is an interface that allows me to iterate on code AND helps me understand the changes.

As a concrete example I recently used Claude to help me write some Python matplotlib code. It took me roughly a dozen plus iterations. I had to use a separate diff tool so that I could understand what changes were being made. Blindly copy/pasting LLM code is insufficient.

iamnbutler · a year ago
Hey, this is Nate from Zed. Give the inline assistant a try. Here is a little demo: https://share.cleanshot.com/F2mg2lXy

You can even edit the prompt after the fact if the diff doesn't show what you want and regenerate without having to start all over.

iamnbutler commented on Zed on Linux Is Here   zed.dev/linux... · Posted by u/0xedb
lexoj · a year ago
The only reason why I dropped (and Im not alone) using Zed is the arcaic UI sublime-like search functionality. Please revisit that part because I really want to use ZED.
iamnbutler · a year ago
This is actually the first time I’ve seen someone unhappy with search - can you tell me a bit more what you are looking for?

There is lots of room for improvement of course, but I’d love to hear what your desired search experience is.

iamnbutler commented on Zed on Linux Is Here   zed.dev/linux... · Posted by u/0xedb
jchw · a year ago
GPUI is very cool, they have blogged about it before.

https://zed.dev/blog/videogame

Many UI libraries being built today want to be very forward-focused, so they focus on being as general as possible. This does make some sense, especially considering that, for better or worse, using a web browser engine as a UI has become increasingly popular of a decision. However, in the end this leads to almost all new "greenfield" UI projects trying to develop scalable vector UI rendering engines that need advanced and highly optimized vector rendering libraries like Skia and Pathfinder. Having everything in vector all the way through is elegant, but it's complicated.

The insight with GPUI is that it's not really necessary to be that general, the vast majority of UIs are made up of a relatively small number of different primitives that you can build on to basically do anything. So instead the vast majority of what's going on in GPUI is layers of roundrects. Text rendering is the classic approach of rendering into glyph atlases. I think this is a vastly more sustainable model for a UI library.

I don't know if GPUI is ready to be used on its own, but it does have a spiffy if brief website.

https://www.gpui.rs/

Given that Zed actually has good "UI-feel", it tells me they are focused on the right things. A lot of new greenfield UI frameworks are spending a ton of time on trying to build extremely generic vector graphics systems but the actual widgets feel bad and are missing all kinds of tweaks and nuance. Here's a good litmus test for text editors: what happens if you double click and drag? In most good UI frameworks, this should result in word selection and then expanding that selection left or right. In a lot of smaller greenfield UI libraries, something vastly less useful will happen :(

iamnbutler · a year ago
Lots of the app’s UI right now is a layer of components on top of gpui (check out the ui crate!) that are pretty Zed-specific at the moment.

Some of these things will likely be made more general and have dedicated gpui elements built for them (button, input…)

I think not rushing to cover everything right out the gates is giving us the time to feel out apis that feel good to write and work well for us. Hopefully in the near future that translates to a UI library that is awesome for the whole rust community to use.

iamnbutler commented on Zed on Linux Is Here   zed.dev/linux... · Posted by u/0xedb
apatheticonion · a year ago
What does Zed use as the UI toolkit? Looking at the code they have a handmade UI toolkit called gpui. Does that map directly to OS/DE specific GUI bindings? I can't find where that's happening

EDIT:

Holy sh*t, they actually have bindings for each OS and built a Rust abstraction on top of that. That's pretty wild

https://github.com/zed-industries/zed/blob/main/crates/gpui/...

iamnbutler · a year ago
We have a couple of blog posts digging into gpui, but here is one from just after rewriting and shipping gpui2: https://zed.dev/blog/gpui-ownership

We’ve slowly been building out gpui to be super ergonomic and fluid for us to build the kind of UI we need to.

As a designer that just picked up Rust last February it’s been really nice to have something that is so comfortable to work with without compromising our performance goals.

iamnbutler commented on Zed on Linux Is Here   zed.dev/linux... · Posted by u/0xedb
jitl · a year ago
I hope they add UI support for proportional type. I've bounced off the editor every time I've tried it since so many UI elements end up truncated or overly wide in general because of the insistence on fixed-width font.
iamnbutler · a year ago
Hey! Nate from Zed here - have you had issues with proportional fonts in Zed?

Let us know if so - they should just work™, but would love to know if that is not the case.

iamnbutler commented on Linux When?   zed.dev/blog/zed-decoded-... · Posted by u/todsacerdoti
zozbot234 · a year ago
If you care a lot about Linux support, Lapce is a very promising alternative. Much like Zed, it also is written in Rust with native GPU-based rendering and a shared focus on enabling integration with modern IDE technologies such as LSP servers, tree-sitter parsers and DAP for debugging.
iamnbutler · a year ago

u/iamnbutler

KarmaCake day44June 8, 2022
About
Nate from zed - https://github.com/iamnbutler
View Original