LSP server with uv and vim

I have a Mojo repository with uv: GitHub - gonsolo/mojo_gpu_raytracer

To edit: “uv run vim file.mojo”

In ~/.vimrc:

if executable(‘uv’)
au User lsp_setup call lsp#register_server({
\ ‘name’: ‘Mojo Language Server’,
\ ‘cmd’: {server_info → [‘uv’, ‘run’, ‘–’, ‘.venv/lib/python3.13/site-packages/max/bin/mojo-lsp-server’, ‘-I’, ‘.venv/lib/python3.13/site-packages/max/lib/mojo’]},
\ ‘whitelist’: [‘mojo’],
\ })
endif
autocmd FileType mojo nnoremap <C-]> :LspDefinition
autocmd FileType mojo setlocal omnifunc=lsp#complete

1 Like

Thanks for sharing! :slight_smile:

Update for 25.6.:

let g:mojo_venv_path = ‘.venv/lib/python3.13/site-packages/modular’

if executable(‘uv’)
au User lsp_setup call lsp#register_server({
\ ‘name’: ‘Mojo Language Server’,
\ ‘cmd’: {server_info → [
\ ‘uv’, ‘run’, ‘–’,
\ g:mojo_venv_path . ‘/bin/mojo-lsp-server’,
\ ‘-I’, g:mojo_venv_path . ‘/lib/mojo’
\ ]},
\ ‘whitelist’: [‘mojo’],
\ })
endif

1 Like