(As a new user I can apparently only include two links per post, so I’m breaking it up into several)
Alrighty, been playing with MMMAudio for about a week now, and it’s been great! I have little experience in Python projects (and no experience with Mojo) and I’m not a VSCode user…so I thought I would share my experience getting up and running in Neovim. This is by no means a definitive guide, but some of the info here should be more updated than what I could find on the Modular forum.
I’m on MacOS 15.7, running nvim 0.12.2 in Ghostty
1. pixi add nvim
After cloning or downloading the repository, call pixi install in the MMMAudio directory as per the Getting Started guide . We then need to call pixi add nvim, which adds Neovim as a package to the project, allowing us to access the Mojo LSP, pixi venv, etc.
2. Setup LSP, other plugins
If you don’t already have a Python LSP, there exist several well documented options. Less documented is the Mojo LSP, which is not yet available via Mason, but is instead included in the Mojo package that gets imported via pixi. To enable the LSP, we can add these blocks to our config (these paths make sense for me, your config may differ):
-- ~/.config/nvim/lsp/mojo.lua
return {
cmd = { "mojo-lsp-server" },
filetypes = { "mojo" },
root_markers = { ".git" },
}
-- ~/.config/nvim/init.lua
vim.lsp.enable({ "mojo" })
…and for formatting (I’m using conform.nvim):
-- ~/.config/nvim/plugin/format.lua
require("conform").setup({
formatters_by_ft = {
mojo = { "mojo" },
},
formatters = {
mojo = {
command = "mojo",
args = { "format", "-" },
stdin = true,
},
},
})
NB!
I have experienced some weirdness with the LSP now and again (and the formatter is very slow), but I’m assuming that’s because of the large mess that will hopefully be addressed now that Mojo 1.0 is out…it hasn’t been a serious hinderance however.
There exists a tree-sitter grammar for Mojo as well, though I haven’t gotten around to installing it yet; I have a feeling the LSP is helping out with highlighting, which has been enough for me.