Get the top HN stories in your inbox every day.
Octoth0rpe
benreesman
I’m really picky about my tools in general and latency in particular, and I give Zed a spin from time to time, it’s sweet. Clean, minimal design aesthetic, tree-sitter, tight code, it’s a nice bit of work and I dig it a lot.
But emacs 29 with the right flags and a tuned GC (no one does this! it’s got a heap-size from the 80s!) is just as snappy and has more amazing packages than VSCode.
There’s a market for people who want something snappier than VSCode but less labor-intensive to set up than emacs, and I wish them luck: I think it’s a front runner there. But I can’t imagine switching my main axe up with a holy shit moment a lot crazier than tree-sitter in 2024 and not having the render loop be in JS.
darthrupert
People are asking what settings would be useful to tweak. Check out the following:
- gcmh -package and gcmh-mode and/or gc-cons-threshold variable (former should take over the latter)
- read-process-output-max
- jit-lock-defer-time
- package-native-compile
Doom Emacs sets gcmh in its initialization so tweaking that might not be needed there. You may still want to touch gcmh-high-cons-threshold and gcmh-idle-delay-factor. Here are mine currently:
(setq gc-cons-threshold (* 1024 1024 1024))
(setq gcmh-high-cons-threshold (* 1024 1024 1024))
(setq gcmh-idle-delay-factor 20)
(setq jit-lock-defer-time 0.05)
(setq read-process-output-max (* 1024 1024))
(setq package-native-compile t)
I've done nothing scientific to check out if these help at all, though, so take them with salt. With and without these, emacs seems quite sluggish at least on a Macbook, in certain modes. On Linux things seem to be a bit better.natrys
The thing about gc-cons-threshold is that, too low a value and it will collect garbage too frequently. While a high value will drastically reduce frequency, but then GC pause will be big and you will likely feel whole system freeze and stutter when it happens. For me, 1GB is too high because I sorta notice the pause, I set it to 32MB but completely disable GC when minibuffer is active:
(defun my-minibuffer-setup-hook ()
(setq gc-cons-threshold most-positive-fixnum))
(defun my-minibuffer-exit-hook ()
(setq gc-cons-threshold (* 32 1024 1024)))
(add-hook 'minibuffer-setup-hook #'my-minibuffer-setup-hook)
(add-hook 'minibuffer-exit-hook #'my-minibuffer-exit-hook)
Eli Zaretskii (current Emacs maintainer) also thinks 1GB is too high, though for somewhat different reason:https://old.reddit.com/r/emacs/comments/bg85qm/garbage_colle...
Here is an interesting optimisation that was merged in master, but didn't make the cut for 29 in time. I thought it improved snappiness:
https://tdodge.consulting/blog/living-the-emacs-garbage-coll...
---
Anyway, I also have these in my init (I nicked these from Doom which I don't use but they have done a lot of work to dive deep into these things, mostly around what improves start up but the following might help in general):
;; if you don't use RTL ever, this could improve perf
(setq-default bidi-display-reordering 'left-to-right
bidi-paragraph-direction 'left-to-right
bidi-inhibit-bpa t)
;; improves terminal emulator (vterm/eat) throughput
(setq read-process-output-max (* 2 1024 1024)
process-adaptive-read-buffering nil)
(setq fast-but-imprecise-scrolling t
redisplay-skip-fontification-on-input t
inhibit-compacting-font-caches t)
(setq idle-update-delay 1.0)jitl
How do you get a reasonably fancy Emacs to start up/open files quickly? Every time I try to get into EMacs after adding a few packages it becomes painfully slow to open a file for editing. Then I try to understand Emacs server, then I fail / give up and go back to vim.
ideasman42
I've been using emacs as my main editor for years now and don't find the startup speed to be an issue - to the point I've never bothered with emacsclient:
It starts up with ~77 packages in half a second.
This is my config.
https://gitlab.com/ideasman42/dotfiles/-/tree/main/.config/e...
mkesper
Use doomemacs for a start. It really optimizes startup time and offers vast included modules as well as great package management. https://github.com/doomemacs/doomemacs/blob/master/docs/gett... Oh and for Windows, WSL2 seems to be the fastest: https://github.com/doomemacs/doomemacs/blob/master/docs/gett...
AlexCoventry
Emacs server is quite straightforward. M-x server-start in a running emacs, then emacsclient <filename>. emacsclient -c if you want to open the file in a new window, or emacsclient -t if you want to open it in your current terminal. C-x # when you're done editing the file.
willdr
Open it at 8am, close it at 8pm
cyruseuros
The way the other guy said. Then it breaks enough times, you give up, and switch to Helix. Nothing snappier out there (vanilla Vim included) and it comes with all the goodies you'd install 100 packages for (DAP, LSP, treesitter, sane default configs for dozens of languages)
To each their own, but for a hardcore Emacs user (wrote a number od my own plugins) that actually tried and couldn't seriously adopt VSCode for more than a few months, Helix was such a nice surprise + change of pace. Worth giving it a shot if you're caught in that gap.
benreesman
1.4 seconds for 100 packages, half of which are on probation? My (and soon `HYPER//MODERN`'s) package set is under heavy construction, I'll be sad if I don't get it under 300ms including loading and rendering a logo at 6k from a cold disk which that was.
Rust is a perfectly good language for writing tight code, but those `emacs` inner loops have been tuned by hard-ass pros for 30+ years in straight C, which is plenty fast too. Even the best Rust code doesn't have that kind of tuning in.
`emacs` is fucking fast.
lynx23
I was about to answer "Use emacsclient", but then I realized you can't be bothered to configure it. For me, putting "(server-start)" into .emacs was always enough, but YMMV.
PH95VuimJjqBqy
yeah, I can't deal with the emacs startup.
I mean, it's not slow per se, but compared to vim it's noticeably slower so I can't deal with it.
da39a3ee
> But I can’t imagine switching my main axe up with a holy shit moment a lot crazier than tree-sitter in 2024 and not having the render loop be in JS.
Congratulations for winning HN sentence of the year before the end of January.
benreesman
I’m glad I made a funny but it’s a lot of year to come :) And this one looks to be every bit as interesting as the last one was over-hyped.
conartist6
It is a great sentence, and that holy shit moment is coming: when JS gains all the expressivity of tree-sitter and uses it to render code more beautifully than it has ever been rendered before.
(Spoiler: https://github.com/bablr-lang/)
shanusmagnus
> But I can’t imagine switching my main axe up with a holy shit moment a lot crazier than tree-sitter in 2024 and not having the render loop be in JS.
I can't parse this sentence -- could you unpack it? Not being a dick, I really want to know what you mean.
oblio
> (no one does this! it’s got a heap-size from the 80s!)
Shouldn't the devs do this? We're in 2024, embedded systems have more RAM, IO, etc than anything from the 80s.
benreesman
The, uh, GNU folks, are a little conservative in some ways that surprise the mainstream developers. But there are always flags for it. Well, except stupid-ass dynamic-linking of `glibc`.
ungamedplayer
> But emacs 29 with the right flags and a tuned GC (no one does this!
Please share how.
benreesman
Both @darthrupert and @natyrys on the thread have said most of what I know. It's a little machine dependent to get the true sweet spot, but raising it from the like, megabyte (slight hyperbole) or whatever that it defaults to is the 80/20.
pja
Ripped from my .emacs:
(setq gc-cons-threshold (\* 100 1024 1024) ;; GC sometime after allocating 100Mb
read-process-output-max (\* 1024 1024)
company-idle-delay 0.0 ;; company completions should be fast
company-minimum-prefix-length 1
lsp-idle-delay 0.1) ;; clangd is fast
(run-with-idle-timer 2 t (lambda () (garbage-collect))) ;; Trigger a GC after 5s of idle time
This is something of a hack of course, but it works & memory is cheap. You might want to push the GC threshold back down after emacs startup - a GC that fires early is a GC that does less work per invocation & is therefore less likely to cause perceptible stutter.dilap
i got annoyed by emacs gc pauses and just disabled the gc completely (i think). haven't noticed any downsides so far. i'm in emacs all day...
;; don't garbage collect based on cons count
(setq gc-cons-threshold 10000000000)
(defun garbage-collect (&rest args)
(message "trying to garbage collect. probably you want to quit emacs."))
something i love about emacs is everything is implemented in the same abstraction (of a "buffer of text"). so i can manipulate and move around an embedded terminal in the same way as a normal file, etc.playing briefly with Zed it seemed like the terminal was a totally different "thing" than a normal file; i couldn't run the same text selection operations, couldn't split the window vertically or horizontally, etc. to me that loses a ton of the benefit of having a terminal in the editor in the first place.
still, it's a very interesting project. i have a very love/hate relationship with emacs, so i'm always interested in alternatives...
nccnm
Can you share more about your Emacs 29 setup? Thanks
benreesman
I mentioned it above but I’m flattered by your interest (and remember your username as someone serious): my old dots were ok and are floating around but we’re putting together a multi-editor curated setup for good defaults and an emphasis on good, available-weight models as first-class citizens.
It’s a 404 until I get to an RC, but aiming for March 1st on “hyper-modern.ai” for all MIT on emacs, nvim, and vscode.
sooheon
Emacs still blocks input on simple things like package updates though.
benreesman
Give straight.el (among others) a shot. Combined with use-package you don’t have to worry about that these days.
bergheim
Elpaca [1] does not do this. I use it and it works a treat.
appplication
VSCode has always felt incredibly slow to me, even compared to e.g. pycharm. , which I have always assumed of be otherwise roughly comparable. VSC’s lag in basic code inspection and linting became so annoying I had to switch off it. We’re not talking seconds, but maybe tenths of second lag, for everything at all times. I understand plenty of people love VSC, but honestly I have never been able to share that enthusiasm.
ahmedfromtunis
Yep. For some reason, suddenly, vscode became painfully slow on my decently spec'd machine; 3 to 7 seconds per keystroke just to analyse the file to show intellisense tooltips.
Yes, that was in seconds per keystroke.
The irony is that I moved from neovim to vscode because setting up intellisense in (neo)vim was always a hassle and never worked quite well. Pylance seemed too attractive not to give it a spin.
Now the lag has as mysteriously diminished, but still vscode is very far from being as snappy as (n)vim.
McBeige
Ive been wanting a syntax-tree-viewer for months, to help me learn functional languages where figuring out what is even going on syntax-wise in the exmaples provided by tutorials keeps being an issue for me. Does anyone know of a way to see a syntax tree for any given snippet of code for any given language? I'd try Zed, but I'll have to wait for Linux support.
natrys
I am not sure what debug syntax tree mode does in Zed, but if it's about tree-sitter generated syntax tree, you can see that in Neovim or Emacs (assuming you have major-mode/grammar loaded):
1) In Neovim, do `:TSPlaygroundToggle`
2) In Emacs, do `M-x treesit-explore-mode`
flexagoon
> older editors that are doing syntax highlighting via regex.
I mean, Emacs, which can probably be considered the oldest code editor at this point, got built-in tree-sitter (which is what Zed uses under the hood) support in the last release. So it's not really related to editors being new or old
dnsco
It's not just tree-sitter that makes zed feel snappy.
If you're using a reasonably fast language-server, which rust-analyzer apparently is (I didn't know this using vscode), the autocomplete & intentions feel instantaneous.
I think the team has learned a lot from previous editor implementations (they were the core team of atom that was notoriously slow), and so they've had an opportunity to do a lot of stuff right.
FWIW they also are the team that originally wrote tree-sitter.
The quickness feels more like it's in the core of the editor. I was shocked how much it impacted the editing experience when I tried it in early beta.
FridgeSeal
> If you're using a reasonably fast language-server, which rust-analyzer apparently is (I didn't know this using vscode)
Some more anecdata to back this up: initial workspace load in VScode I can watch RA tick through its progress. Clean and boot up Zed and the same process is so fast that it’s almost unbelievable.
widdershins
I've been impressed with the C++ clangd language server snappiness in Zed compared to both CLion (my old favorite) and Emacs (apple of my eye for 2.5 yrs).
I always thought the major slowness was coming from clangd itself, so I'm surprised and impressed to see that Zed appears to be quicker on this front. I might be using Zed as a 'second opinion' editor because of this.
However, now I'm used to the infinite customizability and coziness of Emacs, it's going to be hard for me to move across to Zed permanently.
The_Colonel
As I understand, tree-sitter implementation in Emacs is currently more like a foundation for development / adoption by plugins, it's not really usable as-is today.
epcoa
Your understanding is outdated/incorrect. Already a number of major modes have corresponding ts modes and I use them daily. This includes C++, Rust, Python, yaml, toml, json, Java, typescript, dockerfile and cmake. True not every major mode has treesitter in the official release but I’d hardly call the above “not usable”
nequo
Emacs already had tree-sitter before 29, just not built in. You can do syntax highlighting[1] and structured editing with it.[2] What is missing for it to be usable in your view?
[1] https://emacs-tree-sitter.github.io/syntax-highlighting/
chlorion
There are multiple tree-sitter based major modes that are usable right now!
I use python-ts-mode, rust-ts-mode, c++-ts-mode, bash-ts-mode and a few more right now and they work well.
You can write your own modes with it also, but I have not yet looked too deeply into this.
It's definitely usable today in emacs-29, but not every language has a tree-sitter mode yet.
Whoops my tab was outdated and I didn't see that others already replied.
sswezey
As a note, the zed editor team were the creators of the tree-sitter project
thrwwycbr
It's ironic that you say that, even though the people building zed were the ones building the tree sitter in the first place.
jasonjmcghee
Re Ollama in Zed
It’s very early, but I’ve been building a “trigger command/script and have it output anywhere” project that you could use as a bandaid solution.
I added Ollama support (you can specify model in settings)
https://github.com/jasonjmcghee/plock
It works wherever you are
kamaal
>>I have reasonably fast machines, so we're not talking about the difference between 5ms typing lag and 500ms, but it's still pretty surprising.
I really envy people who can sense passage of time between intervals of 5 milliseconds and 500 milliseconds.
My sensibility begins over a second. And to be honest even that is least of my issues. Same with start up time, I restart the IDE only once in a few days. I thinking spending a second or two extra for it is any where in the ball park of what I would call wasting time.
mjaniczek
Now I wonder what's the typing lag of 10xeditor, compared to Zed...
akam4n4n
how to you use ollama with vscode? some links/ details would help me a lot!
Octoth0rpe
I use this extension: https://continue.dev/ their docs are pretty good, but it's also evolving pretty rapidly. For example, you no longer need to run the continue server yourself, it's entirely self contained in the vs code extension. I believe the docs still refer to how to run it manually.
I work for a pretty conservative company re: GAI, and the ollama + continue combo made it through legal.
tiffanyh
> GPL for the editor, AGPL for server-side components). GPUI, the UI framework that powers Zed, will be distributed under the Apache 2 license, so that you can use it to build high-performance desktop applications and distribute them under any license you choose
Interesting choice on licenses.
—-
I’m been super happy with Zed, my main requests (and I’ve sent in this feedback to them or contributed to existing GitHub Issues)
a. Window Size & Position doesn’t persist after closing Zed.
b. I constantly run into Language Server errors
c. Alabaster use to work as a theme, doesn’t anymore. Would be great if you could import VSCode themes into Zed
All above has tickets open.
----
Hope these small things get addressed because I truly love the elegant UI design of Zed
For those who haven't used Zed, it's the first GUI editor I've used in 25-years of development that wasn't distracting.
It's hard to describe how much more focused I am when not distracted with a Christmas tree scene of icons, menus, colors, etc. like you see in other editors.
Zed is very calming, due to its focus on not having distractions. Give it a try if you haven't.
mcdonje
The licensing choice is smart. "Permissive" licenses permit closing off something built largely on the work of the open source community.
Zed is made by the Atom guy and the Tree Sitter guy. Atom was MIT licensed. I wouldn't be surprised if he's thinking the MIT license is the path to VS-Zed.
theappsecguy
I literally tried it out for first time today and none of autocompletions worked for TS or Ruby. I hope they sort it out.
I love jetbrains because it’s so feature rich and helps me a ton but god damn it’s slow.
agrippanux
This tripped me up as well, you need to set up the language servers in your settings json. There are examples in the Configuring Zed section of the Docs area on the site.
kefabean
I do agree it's very zen using zed.
As you say the interface is elegant and distraction free by default, no twiddling required to get a happy place.
So far I've only used it for my personal projects and don't yet have full muscle memory, but weirdly even the keyboard shortcuts seem more intuitive.
bschwindHN
Funny you mention that because I felt Zed had _too many_ buttons & icons for things compared to Sublime Text. I feel they could do without the dedicated stuff for GPT/Copilot and others, and sweep them away to the command palette.
mixmastamyk
Which GUI editors don't allow you to hide toolbars and widgets? Or is it the defaults that appeal to you?
philsnow
I opened a random python project on my machine in Zed and it automatically loaded up an LSP for python. It looks like it's using the same one as my emacs uses (pyright), but it presents completion choices in a not particularly useful order. Typing `os.p` gives me for instance as completion choices:
pwritev
pwrite
putenv
popen
pipe
path
P_ALL
P_PID
pread
pardir
P_PGID
P_WAIT
... but then I type 'a' and then backspace and it gives some of the same choices, but in a different order P_ALL
path
pread
pardir
P_WAIT
[etc]
here's a gif of it, I'm just typing and backspacing through "os.path" and watching the completions be in an unguessable order: https://snap.philsnow.io/2024-01-24T13-57-09.q7pyi8re104uqhn...Is pyright just giving Zed all the possibilities and it's up to Zed to rank them? I don't know the details of editor/LSP integration. lsp-whatever in emacs ranks these choices in a reasonable order.
thearrow
I’m also curious about the answer to this! I noticed similar behavior when opening a Typescript project. Enjoy the low latency, but I’d also appreciate accurate/helpful autocomplete suggestions.
MrJohz
Yeah, I noticed while writing Typescript that it was suggesting `String` above `string`. In Javascript and Typescript, there are almost no situations where `String` is the correct thing to use, so this choice surprised me.
I tried it out today, and in all fairness it is a very attractive and pleasant-to-use editor, but it felt like it was missing a lot of the little details. Things like suggestion order, or being able to open terminals side-by-side, or showing quickly where all the type errors are in my project or even a single file.
The collaboration tools sounds really neat, but unless I can convince colleagues to use it with me, I don't have anyone to collaborate with! For that, the little details are hugely important.
That said, it looks and feels wonderful, it's a very elegant tool.
dr_kiszonka
Interesting. I sometimes have the same issue with pyright (via pylance) in VS Code on Win.
packetlost
I hope this leads to Zed being ported to other platforms (Linux, please!)
misternugget
Hey! Engineer at Zed here. Linux port is on our roadmap. Hopefully we'll get it done this year!
bryango
Hey! Thank you for this cool editor! However, has it been written with cross-platform support in mind? Otherwise, porting from mac to linux could be rather painful and time-consuming... Will there be an ETA for us linux users? I saw it on the roadmap [0] but without an ETA.
jhasse
> However, has it been written with cross-platform support in mind?
Nope, it's using Apple's proprietary Metal API.
shortrounddev2
What about Windows?
misternugget
I think that is on the roadmap too, but possibly further down.
kvark
How are you planning to tackle the GPU API differences?
1propionyl
(Not OP)
These days that's a lot less of a concern than it used to be. It is a lot of up-front work to facade e.g. Metal, Vulkan (and even D3D12) but it's much much much easier than back in OpenGL vs D3D9/10 days.
Most of the general concepts are more or less the same across them all these days. The "shapes" of the APIs are very similar.
A texture is a texture is a texture. Same for a vertex/index/uniform buffer, vertex/fragment/compute shaders (notably not geometry, but you can just use compute), etc.
gtirloni
What kind of help do you need to make this happen?
mdaniel
I was curious myself what the hurdle is and so I checked out the latest tag and followed along with https://github.com/zed-industries/zed/blob/v0.119.18/.github... and it went ok except for building https://github.com/zed-industries/zed/tree/v0.119.18/crates/... which puked because https://github.com/zed-industries/zed/blob/v0.119.18/crates/... is the only one
so, my strong suspicion is that porting gpui is the long pole, since it is apparently just going to do its own gui toolkit
awill
Excellent. A big reason I use Sublime is because it's cross platform (Mac at work, Linux at home).
cpuguy83
Since you are here I'll hijack the thread :) What about remote support ala vscode-server over SSH.
c-c-c-c-c
Please not ala vscode-server over SSH.
Do it proper like emacs tramp so it will connect to any platforms/architectures.
madeofpalk
I'm really keen for Windows support, but only if it means WSL. I hope their architecture allows for it.
LoganDark
Is there any way to make it compatible with macOS 10.14? Your minimum macOS requirement is literally just one release away from what I have!
hav
I'm running it just fine on 10.14.
WillAdams
Will you be using GNUstep for the port?
Klonoar
Nobody wants to use GNUStep in 2024.
Their UI framework is also rendering via the GPU, so it's more likely they'd wrap it in a GTK/Qt/whatever window and then just render accordingly. You don't need GNUStep for it since there's little "mac"-isms you need to cover.
ufo
Speaking of Linux, are there any other editors we can use today? I tried to look for one recently but couldn't find anything. (edit: I mean collaborative editors)
SCdF
Collaborative editors I presume you mean? Because 99% of popular editors have linux builds.
Anyway, the VSCode plugin ecosystem is probably your best bet there: https://code.visualstudio.com/learn/collaboration/live-share
ufo
Precisely, I'm looking for collaborative editors. Thanks for the suggestion, I hadn't seen this one.
Unfortunately, it seems that this plugin only shares the editor window and does not keep a local copy of the files. I was wishing for something that would let both sides run & compile the code during the editing session, without having to stop for git push. https://github.com/MicrosoftDocs/live-share/issues/3524
CodeCompost
You're joking, right?
ufo
Looking for collaborative editors in particular. Two people editing at once, on different computers. Each person has their own copy of the file, on disk.
iruoy
All JetBrains IDEs work on Linux and all electron apps of course. Lapce seems like Zed and is already available on Linux. So is Sublime Text.
There's a whole list here: https://wiki.archlinux.org/title/List_of_applications/Docume...
starkparker
Gobby is mostly dead but still works. Win/Linux; macOS builds have gotten harder now that it's been about 3 years since the last release: https://gobby.github.io/
EDIT: It's apparently on Macports as of quite recently, though the port health for recent macOS releases looks bad.
msephton
It's Mac but SubEthaEdit is collaborative.
politelemon
nano, pico, vim, VS Code, Brackets, Notepadqq, Gedit, Kate, Leafpad, Geany
cstrahan
Helix is another interesting option:
ufo
I was particularly looking for collaborative editing; two people editing the same file at once and each has a local copy of the file so they can run the code. Perhaps one could use a normal editor for this if there were some underlying command-line tool and/or plugin to do the actual file synchronization. Do you know of any?
greyw
emacs.
starkparker
As much as I hope for that, I also hope this leads to Zed compatibility with other collaborative editing/CRDT clients, like SubEthaEdit and Etherpad.
gloosx
AI helpers, Chats and Calls??? Microsoft log-in, Commercial plans, Telemetry? Seems like an overload of everything for an editor - more distractions not a new way to code. Def sticking with good old nvim for some longer time, no better editing experience engineered yet
globalnode
yeah i noticed that too, whats so hard to just get a simple editor that gets the job done without so much wasted energy and code.
jeremyjh
Why is another one of those needed? Personally I'm excited about the idea of a feature-rich editor that is still blazing fast.
gloosx
It is not really needed, but this one is definitely here for the sake of announced commercial plans. Maybe it is faster than vscode, but it is still not fast enough like most of based terminal editors. I just made my benchmarks with 500MB of dev/urandom bytes to open on clean nvim and zed. Nvim opens it in 20 seconds while it takes 30 for zed, so I can say there is at least something inside the core engine which works 50% slower that of my champion's. Non of the landing page benchmarks at zed features a fair competition with really fast and great editors.
Editor's main purpose is to edit, and i don't think that stuffing anything else in the basic box without user asking for it is necessary. You can always pick a plugin if you need AI or collaboration or suddenly hundred species of messenger is not enough and it MUST be inside you editor instead of a usual swipe to an adjacent screen.
robin_reala
Really nice and fast (which is the reason I’m still using Sublime instead of VS Code). I’ve only found one piece of functionality that’s dramatically slow compared to Sublime so far: selecting all of the current highlight. In my current file I have 2,396 occurrences of `<span>`. Selecting all of them in Sublime (with ctrl + cmd + g) is certainly less than 200ms. Doing the same in Zed (with cmd + shift + l) beachballs my machine for around 5 secs.
For most code work that’s probably not a situation to optimise for, but I often work on large markup documents.
porsager
Did you make an issue for that? (I'm sad about that too)
robin_reala
robin_reala
For people following along at home, this was fixed with a 250x speed up (!) in https://github.com/zed-industries/zed/pull/6700
koenbok
Zed developers, if you read this, please get inspired by Cursors "Fix it" button that you can click on any error. It simply starts a new chat with the code context and error message, suggesting possible fixes.
I'm currently learning Rust and this is such a powerup that I honestly wouldn't know how to learn anything without.
ethanwillis
Zed developers, please don't. I don't want my core editor potentially sending out my code to who knows where or wasting cycles analyzing it.
If people want this just let it be a plugin.
glennpratt
> Zed supports GitHub Copilot out of the box, and you can use GPT-4 generate or refactor code by pressing ctrl-enter and typing a natural language prompt. https://zed.dev/
Seems like that ship has sailed. Maybe it's a plugin already or could be in the future, but that's not on GP's suggestion.
toastercat
I'm already picturing a "Zedium" fork for the FOSS/Privacy enthusiasts.
smodo
I’d say the ship is in port but ready to sail. Before this does anything you have to provide your own API key. So it’s off by default. It’s just the button that is there.
Alifatisk
I’d much more prefer keeping all these Ai tools as plugins to keep the editor light.
zamadatix
Beyond "is it on by default" (due to data privacy concerns) whether something belongs in a "core" editor or in a plugin is a whole separate can of worms - moreso if the core editor starts shipping plugins. There is someone who reads that agreeing it means the editor should be just a plugin store and if you want font hinting, syntax coloring, tabs, terminals, smooth scrolling, and so on then download them yourself. At the same time there is someone who reads that agreeing it means the editor should have anything possible related to working with text but if you want to play a video while you code the plugin system should allow you to do that in a pane. Neither are really right or wrong about what should be a plugin, it's really a matter of what the tool wants to optimize for out of the box.
ra1231963
It seems inevitable we’ll also be able to run LLMs locally, which would make this type of feature more appealing.
undefined
dario_od
[flagged]
rmdashrfv
I've been following Zed for quite some time now and happy to see them follow through with the OSS move.
I personally don't like for my editor to send out any kind of external requests at all, and this is actually what keeps me on vim as my main editor. I also don't like limited login options
It would be cool to have a version that's just a stripped down Zed, and if need be you can install the extra stuff as plugins.
WalterBright
Zed was the name of the Zortech C++ IDE back in the day!
It disappeared, though, because the author (Phil Murray) disappeared and we didn't have a license to continue with it when Zortech was bought by Symantec.
It's too bad, it was a nice editor. I never was able to find out what happened to Phil. He was an excellent programmer, and an all around pleasure to work with.
silcoon
Great idea having a Rust editor fully open-source, and I also saw the GPUI crate in the codebase. Happy to try it!
P.S. For the first 5 minutes I thought Zed was developed by Meta... please change that blue :D
P.S.S: it's incredibly fast, and already has rust-analyzer included.
itishappy
Heard of Helix? It's a bit more Vim to Zed's VSCode, but it's open source and Rust too! It also comes with rust-analyzer and tree-sitter included.
slowtec
Helix is awesome, fast, elegant and works everywhere. I wonder what unique selling points Zed has that could motivate me to switch?
srid
Helix doesn't have a plugin system:
resonious
Personally I love the no plugins. It keeps the core editor competitive and easy to set up.
bartekpacia
Just like Zed?
archseer
Yet.
L0Wigh
Unfortunately Helix is movement first while Vim is command first. This makes a big difference if you are used to Vim binding
briantakita
I had the pleasure of working with Nathan Sobo when he joined Pivotal Labs ~2008. He had a burning desire to create a transformative text edior/ide back then. He is bright, not only in an intellectual & talent sense, but also in an energetic sense. He is also compassionate & genuine person. I'm very happy & inspired every time I see his endeavors progress.
Knowing Nathan has been one of the major catalysts for me to improve the art of software craftsmanship. Sometimes you meet amazing people in life & I count Nathan as Amazing in many ways.
nathansobo
Wow Brian, nice to hear from you. Thanks very much for your words! I remember you setting a new standard of speed for me when we worked together!
briantakita
I credit Nathan Wilmes for showing me how to speed up my development techniques & decision making...Mainly by observing him work during our pairing sessions. It's interesting how one can learn effective practices that are difficult codify with conscious thought & written or spoken language...Yet the human observational systems & nervous system are effective in working with these complexities. It's almost like how a GPU frees the CPU from processing graphics or linear equations.
mxstbr
Here is a direct link to the repo: https://github.com/zed-industries/zed
Get the top HN stories in your inbox every day.
I'm generally a big fan of zed and have been using it for 60%ish of my dev time for 6 months or so. A couple of nice things to note:
- It really is remarkably responsive,and makes one really notice how UNresponsive everything else is. I have reasonably fast machines, so we're not talking about the difference between 5ms typing lag and 500ms, but it's still pretty surprising. VSCode never felt slow on my macs until I started using Zed.
- They seem reasonably responsive to feedback. There was some contention around how search/replace was initially implemented, and the current builds have something much more usable IMO. I'm not sure how much that was driven by community feedback, but the changes were great.
- The debug syntax tree mode is a really neat feature that I think demonstrates how much more advanced zed is under the hood than older editors that are doing syntax highlighting via regex.
There are a few downsides that I'm hoping get addressed soon:
- The collaboration workflow/security isn't very clear to me. You sign in via github (no other option???), there are 'contacts' (I guess these are github usernames?), and 'channels' (where do these live? on zed's servers?). I would really like to know if I can self-host the chat server and use a company oauth provider rather than github. If the diffs being passed around are going through zed's servers, that may be a showstopper for the company I work for as well. If they're p2p and encrypted, maybe not.
- I would love to see ollama integration. This + continue is the only reason why I spend any amount of time in vscode now. There's an issue for it here: https://github.com/zed-industries/zed/issues/4424