I really want to like Zed because they've clearly put so much work into it, but so far I've been sticking with Sublime. I have several large PHP projects that were started in the 2010-2020 era, and Zed will highlight and complain about all sorts of minor things that were standard PHP fare at the time: functions without return types, for example. My code (which works fine) looks like an ocean of red when I view it with Zed, and turning all those warnings off is not trivial.
For each kind of warning, I wish there was a button that said "don't warn me again about issues like this one in this project." Then I could keep the interesting warnings (like undeclared variable) and ditch the ridiculous ones.
I love Sublime, but I don't want to pay to upgrade from 3 to whatever version it is now, Zed is everything I wanted Sublime to be. Honestly, I wanted VS Code but fully native, and I feel like that's what I'm getting from Zed.
I feel like some people will be put off by all the "AI" mentioned by Zed, but you're sleeping on a top tier editor where you can just ignore the AI stuff if you don't want it. It's very high quality, and probably the reason I wont be renewing next year for JetBrains, unless JetBrains does something impressive, I thought by now they'd have a more native feeling IDE that handles most / any language instead of so many separate ones.
VS Code has gotten so bloated over the years. The gold standard of ST has spoiled me with simpler editors. Zed is the first time I felt like someone finally built an editor that is modern and has a rich set of features.
I'm also sticking with Sublime for many years, and at this point it feels like it is some kind of old man stubbornness (like George R.R. Martin using WordStar 4.0 type thing). I don't know why its ergonomics for me have been just unbeatable. I gave others (VSCode and Zed) good weeks and months of configuring them to my liking and using them exlusively, and always returned to Sublime. All the AI stuff just runs on the side in the terminal (iTerm2 for me, but checking in on Ghostty sometimes too, waiting on them to figure out their minimal text brightness feature).
Interesting! I tried Zed too, and not knowing Sublime, I switched to it instead after a while…
I’m not sure why though. I do not have the issue you do, but Sublime feels better.
Had the same experience with a rails project, it injected an LSP+linter we don't use in our project and it has really annoying to figure out how to disable it in a settings. Having to debug an editor's settings JSON the first time you use it is not a good UX, it should be optional to enable it instead of assuming we want aggressive on-save linting/autoformatting (that the repo doesn't even have configuration files).
You should be able to just turn off the language server. Go to the lightning bolt icon in the bottom bar, "Stop all servers" or just the PHP one lighting up your source code.
I love Zed, but I hear you. It's a very fast and capable editor with lots of IDE features, but it's lacking comfortable ways of tuning it for specific projects. (This is a problem with every general purpose, everything-to-everyone kind of IDE versus stack "native" IDEs that are geared toward the one true way of developing for particular target.) The configuration file structure is arcane, and it certainly not clear what the boundaries are between language feature configuration, LSPs, built-in and third-party code quality tools, etc.
I eat the cost of configuring it manually when I start up something new because it's just not that big of deal, even when you're like me, working across myriad languages and frameworks and organization with varying standards. It's not ideal, but it's not deal-breaker.
I do wish that there was a better way to definitively set it up a particular way and know that it is doing what you want it to do. I want something like presets/profiles. If I'm working with typescript, I want to be able to set it up to use a specific version of tsc, eslint, prettier; I also want to be able to create a different one with biome; I want it to work correctly whether I have my source in the project root or in a sub directory or in a monorepo tree.
Fairness to Zed: it is difficult to support all of these permutations, but I do think that they ought to be able to do something better to abstract these things and make the reusable.
Sidenote: Sublime remembers all tabs even those unsaved. (Software update deletes this memory.)
This is just a language server problem. I'm sure you can configure whatever language server PHP is using to disable specific warnings, etc.
I've worked with mostly PHP from this era, or at least developers that are from this era. The code still runs fine, and not having things like return types don't make the code less able to run (just not as easy to catch bugs).
I haven't used Zed, but can you choose the PHP version, or point to a PHP executable for warnings/errors? I know in VS Code, you point to the PHP executable for the version you are using, to catch errors. I haven't created a new PHP project in quite some time, but I did work on many older PHP projects, and never had this issue with VS Code. I suspect even if you don't go about it this way, there has to be configuration to specify what is and isn't an error vs. warning.
We use intelphense with vscode and it's only mildly red (zf1 mutant project). It also understands stubs from phpstorm. Default lsp for Zed is phpactor and it was just an inferior experience compared to intelephense (free) in vs code last time I tried. Now there's even a guide for adding intelephense to zed, but I'm yet to try it out.
I was using JetBrains for more than a decade. Then I got into Python as well and so was juggling between WebStorm, PyCharm, CLion and Intellij Idea. Zed has replaced the first three completely. Put the appropriate config file in project root for whichever LSP/linter/tool is running, and most of these warnings disappear.
Writing C in Zed is a wonderful experience. The LSPs surface errors in an manner that is very easy to view and edit.
My main issues with Zed are:
- Word-wrap: I prefer on-demand, and I haven't been able to figure out which setting triggers that. Of if it is even possible.
- Support for Devanagari and other scripts: I use it as a markdown editor to proofread old texts and it is inadequate for that purpose. Kate/Featherpad offers a superior experience for this, including the ability to zoom to see those visually difficult to parse conjunct consonants.
It just doesn’t play bice with PHP, I always wanted to uniform my stack before with vscode, now with zed. But PHPStorm always win.
It really there is no realy good ide or tools for php
Same, I really want to like Zed but LazyVim covers my every need
Zed felt it had the right to download, install, and run node.js without any permission just to run some LSP (which I don't even use). When I mentioned it here, the devs said that they felt that was fine because their priority was to make things seamless for users such that they don't have to install the LSP manually. Sublime Text, on the other hand, has never installed anything I haven't explicitly asked it to.
I'm sticking with Sublime Text, as its developers actually respect boundaries on my computer.
I still stick with Sublime because when I give them money they haven’t given me reason to believe they’re going to waste that money putting in AI slop features I don’t want.
If you're using zed, couldn't you use AI to fix something like that? Those copy and paste type changes over a code base is something AI assistants are really good at.
> My code (which works fine) looks like an ocean of red when I view it with Zed, and turning all those warnings off is not trivial.
Isn't it just the default configuration of whatever LSP zed defaults to for PHP?
So you should be able to either configure the LSP to avoid that or disable the LSP server entirely.