The core app itself is 100% Rust, but it supports integration via Microsoft's Language Server Protocol[0][1]. In practice, this means you will be running daemons locally for each language, which may be written in any language. Often these daemons are written in NodeJS since the reference implementation[2] is in NodeJS.
[0] https://zed.dev/docs/adding-new-languages#lsp
[1] https://microsoft.github.io/language-server-protocol/
[2] https://github.com/Microsoft/vscode-languageserver-node