I'm extremely glad to see something like this. I've tried to use Zed so many times, and this might sound neurotic -- but there are just so many little theming things that make a difference to me.
For example, https://imgur.com/a/ia2GCgg -- top is VSCode, bottom is Zed. Both using Svelte, and using a similar theme.
- Angle brackets are a different color
- Capitalized built-in components are a different color
- Boolean props are a different color
- Brackets are colored differently than text.
The inspector is a game changer, clicking into these specific things in the preview they provide is super helpful.
I don't use zed or svelte, but this looks like the zed picture is missing a treesitter parser for svelte. Many editors have basic regex-based highlighting for many languages, and optional, more advanced, highlighting available through extensions. You may also get some semantic highlights provided by a language server if your editor uses the Language Server Protocol as well.
It's been a while, but from what I remember you need that extension for any highlighting at all, and that screenshot is with it installed. Also, if I recall, it's something about that extension using an outdated treesitter parser or something along those lines.
Finally, I can reasonably get something truly high contrast and not just close to it as the current offerings are. This is a little thing, but Zed continues to keep getting so many things right that it has gone from “interesting” to “my preferred editor” after 15 years in vim. The git “follow mode” has been especially great transitioning into heavy usage of LLMs in development. Happy to see the team continues to just get more little things right.
The theme builder is good and easy to use, and I only needed a few minutes to make my own.
Syntax coloring is almost there, but still lacking (I use C/C++)
Small visual adjustment like line height in the UI text is not configurable enough (only two settings)
Scrolling should have a smooth option, nothing prevents it, it should be super easy to add, I find it easier on the eyes when I move around code, especially on a 240Hz monitor.
The editing experience is good, quick launch, no crashes, responsive, not too memory hungry.
Scrolling is perfectly smooth when you use a trackpad. IMO, clickwheels are a legacy technology for scrolling (even when I use Windows, I left-hand a Magic Trackpad so I still have smooth analog scrolling).
I never liked trackpad. I am an avid RTS player, the mouse is by far the superious input device.
Besides, I never work on a laptop.
And this is a lame excuse. Smooth scrolling should also work when using keyboard with and pageup/pagedown, at least as an option and with some tuning preferences.
Smooth scrolling also worked on the Amiga Cygnus Editor in 1986 - yes, 40 years ago - on a computer with 512Kb RAM and a ~7MHz 68000 CPU, and from keyboard too. And Zed complains at launch if it doesn't find a suitable Vulkan GPU driver, since the fallback CPU driver does not provide a smooth enough experience, despite 4-5 orders of magnitude more RAM, and a ~3 orders of magnitude faster CPU, than a 40 years old Amiga...
"smooth scrolling" with a mouse or keyboard like you mentioned is a lie. Its animating movement but is not precision input at all. its "smooth" sure but you have zero control over the actual scroll (i do wish zed did this too its genuinely useful as an accessibility aid because it lets your eyes follow where the cursor ends up for example but yeah its not the same as having proper precision input for scrolling as you do with a touchpad). I do agree a mouse is far better at precision input wrt pointing at things but when programming,,,, you do not need to be so precise with cursor movement. you're editing text which is largely keyboard centric, and the time offset between moving your hand from a mouse to a keyboard on a desktop is in my opinion far higher than it is to move your hands from a keyboard to a touchpad surface. Not to mention you get actual precision with scrolling with a touchpad. I personally keep both a proper MMO mouse with a dozen programmable buttons on my desk, and a apple touchpad with precision drivers for normal use.
also wrt scrolling, mice like the logitech mx master actually have what is in my opinion a much better solution where the scrollwheel is not stepped and has scrolling inertia, allowing you to have the same level of precision with scrolling as you do with a touchpad (im not sure if the vertical wheel on it is the same but regardless). Its in my opinion a similar jump in capability for mice as continous triggers were for game controllers. Something that must have been initially quite notable, but slowly became expected behaviour (except on the switch for some reason but whatever i guess)
macOS is a whole thing in terms of smooth scrolling, or HID (human interface devices) in general. It seems like Apple just doesn't put a lot of effort in terms of working with third-party HIDs:
* There's a standard way to enable high-resolution scroll reporting (pixel-level instead of line-level), but Apple doesn't use it.
* There's a standard approach to multi-touch digitizers/trackpads (documented and I think to some extent created by Microsoft, called PTP) which Apple doesn't support.
* Apple's own Magic Trackpad speaks a proprietary protocol and it appears you can only speak it if you claim to use their USB VID/PID. And I don't think doing that would go over well in a commercial product. (And if you do manage to speak it, it turns out their driver really doesn't do two-finger scrolling well with tiny trackpads anyway. They probably only tested it on the generous dimensions of their hardware.) (Also, it attaches to your entire device, so having an additional interface with a different driver doesn't appear to work either.)
But...you can inject smooth scrolling events via Core Graphics. So you can run a userspace program with accessibility permission that scrolls smoothly. And you can also communicate with USB devices from such a program. There are some existing programs for doing smooth scrolling with standard mice (Mac Mouse Fix is one). I'm writing a userspace driver for PTP to make my keyboard's built-in trackpad work properly.
Last I checked, high-resolution scroll reporting over USB is not based on pixels but on fractions of a detent, which is annoying to say the least. Apple probably also didn't want to translate multitouch to scroll in hardware, since scrolls are not reported the same in all contexts (e.g. applications can choose whether it locks to an axis; which axes it can lock to depends on the capabilities of the view; etc.)
> But...you can inject smooth scrolling events via Core Graphics.
Applications can choose to ignore synthetic events, IIRC. Probably not an issue for scrolling, but for instance Little Snitch can be configured to ignore synthetic inputs to its security settings.
> Last I checked, high-resolution scroll reporting over USB is not based on pixels but on fractions of a detent, which is annoying to say the least.
I'd just be happy if it let me use the multiplier; don't care if it's not exactly pixels.
> Apple probably also didn't want to translate multitouch to scroll in hardware,
That much doesn't seem unique to Apple; both Windows and Linux appear to prefer accepting raw multitouch data.
> since scrolls are not reported the same in all contexts (e.g. applications can choose whether it locks to an axis; which axes it can lock to depends on the capabilities of the view; etc.)
I don't think they're actually taking advantage of this. My MBP's built-in trackpad will lock into pinch/rotate gestures when the cursor's over say Zed or iTerm2. (Zed's a bad example actually, as it has no accessibility tree to speak of. But I think it will lock into pinch/rotate anywhere.)
And for my own app, as far as I know (I'd be very happy to be corrected) there's no way to inspect a view to know what kinds of gestures it supports. It certainly would be nice to eliminate the possibility of locking into pinch/zoom in a place where that's meaningless but I don't see a way to do it.
> Applications can choose to ignore synthetic events, IIRC. Probably not an issue for scrolling, but for instance Little Snitch can be configured to ignore synthetic inputs to its security settings.
Yuck. I'm doing everything this way, including cursor movement and taps. I hope I don't come across such an app/configuration.
Used to have a mouse that had a scroll wheel that would toggle if it did the clicking motion or a smoother scrolling motion, I loved that one. I use Trackbals now, so if I need to scroll drastically I use the sidebar. Source Code map sidebar is the best though.
It may feel even more shallow, but what keeps me on emacs are modus-themes. With luck, you can find a passable theme in your editor/ide of choice, but to find a good, high-contrast light theme is almost impossible.
Yeah unfortunately looks like the maintainer made their stuff private, but it still works, I may republish it if gets removed from the store it’s so good.
The fact that he's so anti-immigration as an immigrant himself is so odd. My rather negative interpretation is he doesn't consider himself to be an immigrant which screams white supremacy.
Oh wow. I tried zed, but I couldn't get the colour scheme to make the whole thing look like the classic "cobalt" from gedit/gtksourceview. I am legit willing to pay fair $ if someone wants to build such a theme for me.
I actually even tried to get the AI models to build such a theme, but they couldn't figure it out! They would just generate something wrong. When that works, I'm interested!
My biggest problem with Zed right now is the font rendering doesn't look that good on MacOS. To me Sublime Text always had the best font rendering on Mac. Electron slowly over the years has gotten better and decent now. Zed just doesn't do the font justice. It's too thin or something.
Was just using this to tweak a few settings in an existing theme. It was really helpful to finding out which theme token associates with which UI element.
Does Zed have "I work for corp where ie. only github copilot is allowed, I don't want free auto completions or anything that sends code to 3rd party" flag?
You can also download the same model and run it locally without data leaving your machine, the Zed tram released it as open weights: https://huggingface.co/zed-industries/zeta-2
That's all great (genuine), however my concern is less around "I can do X", more around "I can guarantee it cannot do Y" – ideally in one, global, obvious place.
At the moment it seems it's great for personal development and development in environments where concerns around IP are less of an issue.
It's not so clear how to use it in corporation context where you'd be in breach of employment contract accidentally because defaults mean sending confidential IP to 3rd parties.
call me a noob but would be nice to see which elements on the right panel are going to get affected when I hover over items on the left panel. right now now I have no clue what got changed :D for some of the elements.
A feature request of sorts. An option to reveal and highlight the element the color is for would be cool. There are so many colors and so many elements of the UI that it’s not immediately obvious where it is to properly see the changes I make.
Ha.. thats a very cool way of adjusting. themes. I hoped for being able to adjust a lot of things around markdown edit and markdown preview though. My biggest problem with Zed right now. Themes are actually ok to me. Maybe thats on their todo though who knows.
How come I see my own github avatar in the designed editor along with others? I assume people also visiting the builder? Not very cool if I may say so.
If Zed would have a remote development plugin that can attach to both containers, and Windows remote hosts, then it would be an awesome VSCode replacement one day.
This is super cool - Started using Zed a couple weeks ago. Is there also something like a Theme gallery? Where one can look at Themes other people created? I would imagine not everyone has the inspiration to build their own "form scratch" but would still love to customize.
Use the command palette to pick "agent: toggle" - that'll open the agent pane. Pick "Claude Agent" from the dropdown at the top if you see the Zed agent. Should be all you need.
Their ACP integration with Claude agent is extremely broken to the point of being almost unusable. It desyncs and breaks in other ways constantly requiring frequent IDE relaunch. I get that they want you to use their built-in agent but $200 Codex/CC plans are such a good deal it makes very little sense atm and the broken integration is just embarrassing...