Zed extension for Mojo: how to package mojo-lsp-server?

I’ve developed a Zed extension for Mojo (available here: GitHub - BenWibking/zed_mojo · GitHub), and I’d like to publish it. However, it only works when Zed is launched from within a pixi shell that has Mojo installed, which means it probably won’t be accepted into the community extension repo.

Is mojo-lsp-server packaged in a standalone form that the plugin can download and install itself? Does the Apache 2.0 + LLVM exceptions license apply to the pre-built binaries?

Thanks!

Hey!

Currently we have two packages

  • mojo-compiler (the minimum to compile and run a mojo program)
  • mojo (the toolkit, includes extra developer tools including the LSP)

In theory we could part things out but it hasn’t been a priority right now… is there a specific reason not to download the whole package as a workaround right now? :slightly_smiling_face:

I can do that for now.

The issue is that it requires downloading 162 MB to get both the LSP server and the shared libraries it loads, and then I have to add both a tar extractor and zstd decompressor to the extension to get it out of the .conda archive. This is a lot of gymnastics to write a language extension, although it does appear possible to vibe code this fairly quickly.

To encourage users to write their own tooling for IDE X, Y, or Z, I think the ideal solution would really be a static muscl mojo-lsp-server directly available from an https URL.

Also, are you able to clarify the binary licensing situation for these components?

Totally understand the desire! I’ve filed an internal issue for this but can’t provide any guarantees on timelines. @ahajha wrangles our packaging efforts heroically but is (unfortunately for us!) just one person who wears many hats :slight_smile:

I’ll need to get some clarity on the licensing situation myself, thanks for your patience in the interim!

Understood, thanks!