Comment by the__alchemist

1 day ago

I am posting this because I want to like and use Zed because it's so fast and responsive (Especially on my tablet, which JB turns into a space heater), and has neat functionality like being able to switch to whatever set of hotkeys you use. And I greatly respect the small binary/download size and fast install. From experimenting in Python and rust:

  - Doesn't highlight typos in variable, functions, class/struct names etc. Doesn't highlight rust borrow-check, invalid method etc errors.
  - Doesn't seem to understand either language beyond superficial syntax
  - "Go to definition" (Ctrl + B) Doesn't do anything
  - Doesn't show which versions are valid in Cargo.toml and pyproject.toml
  - No ability to move functions/classes/structs etc to different modules
  - Doesn't seem to understand rust feature gates
  - Doesn't seem to understand what fields a struct has, or params a function has, let a lone what types are valid in them.
  - Rename seems naive

Overall: It is taking a superficial view of the code base, and treating it more as text than a cohesive structure.

edit: Thank you very much for those who have pointed out I needed to disable restricted mode. This has added some introspection and in-line error handling. Some of my concerns are partially-mitigated. It seems when introspection and in-line editing/complete/data appears is inconsistent (But working in many cases), and I do not yet know what rules define this. Refactoring tools like moving are still absent. I will continue to use Zed on my tablet with the LSPs enabled, and observe.

I suspect you may be operating in "Restricted mode," aka it doesn't know if it can trust the directory. In that mode, the main tools like Rust analyzer are quite restricted. All of your complaints should be resolved once Rust Analyzer/basedpyrite are up and running.

I do think they should have a more obvious warning that the current directory is untrusted, right now the little green warning in the corner is way too unobtrusive and will result in many people having the same issue as you.

I thought Zed was using tree-sitter: https://zed.dev/blog/syntax-aware-editing? Shouldn't it address all of these issues? Does tree-sitter not understand Python (basically the most popular language out there) and Rust "beyond superficial syntax"? I thought its whole point was that it understands everything about a language's syntax because it builds a concrete syntax tree?

  • TreeSitter is an amazing tool but is (purposefully) quite limited compared to an IDE--it doesn't even cross file boundaries, so go to definition is a non-starter. Zed uses LSPs like Rust Analyzer to fill that role.

Did you market the project as trusted? Récent update (à few month) requises the trust to reenable the analyses feature It took me a while to understand lol At Somme point I though that the parker were broken in my codebase xD

> And I greatly respect the small binary/download size

The latest x86_64 Linux build is 136MB. (https://zed.dev/docs/linux#downloading-manually)

As for your list of grievances, they all seem to boil down to the respective LSPs not doing their job? Does Ctrl-Alt-l (lowercase L, not Shift+i) include the language's server in the context menu, and are there any errors reported for it if it does?

It sounds like LSP isn’t working for you for some reason. Have you installed the extensions for those languages? These things are definitely supported via LSP

> Overall: It is taking a superficial view of the code base, and treating it more as text than a cohesive structure.

That is the part that makes the space heater