A very simple language server for smali with definition support & auto-completion.
| Code completion | Docs |
|---|---|
![]() |
![]() |
Installation
pip
From source
pip install -U git+https://github.com/AbhiTheModder/smalisp.git
Extensions & Setup
Zed Extension
Prerequisites: Zed editor installed.
- Extension path:
extensions/zed.
Option 1: Install from Zed Extensions
- Open the Extensions page in Zed.
- Search for "smalisp".
- Click Install.
Option 2: Local Development
- Open the Extensions page in Zed.
- Click the "Install Dev Extension" button (or run the
zed: Install Dev Extensioncommand). - Select the directory containing your Zed extension (the folder that contains the manifest and source).
Reference: https://zed.dev/docs/extensions/developing-extensions#developing-an-extension-locally
VSCode Extension
Prerequisites: VSCode installed.
- Extension path:
extensions/vscode. - Marketplace
Option 1: Install from Marketplace
- Open VSCode Extensions view (Ctrl+Shift+X)
- Search for "smalisp"
- Click Install
OR,
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
ext install qbtaumai.smalisp
Alternatively, run code --install-extension qbtaumai.smalisp from the terminal.
Option 2: Local Development
- Build or obtain the VSIX package for the extension from the releases page of this repository.
- In VSCode, go to Extensions view, click the three-dot menu, choose Install from VSIX..., and select the downloaded
.vsixfile. - Alternatively, run
code --install-extension path/to/extension.vsixfrom the terminal.
Helix
- Prerequisites: Helix installed.
Install/ensure smalisp is installed in your Python environment (e.g. pip install -U smalisp). For older Helix versions, edit ~/.config/helix/languages.toml and add the following:
[language-server.smalisp] command = "smalisp" # Or path to smalisp binary [[language]] name = "smali" language-servers = [ "smalisp" ]
- The PR has been merged and Smalisp is now supported directly by Helix if installed from source or in upcoming Helix versions.
Vim/NeoVim
- Associate smali filetype with file extensions:
autocmd BufNewFile,BufRead *.smali setlocal filetype=smali
- In order to install syntax highlighting declare it with your plugin manager (for example vim-plug):
Plug 'Snape3058/vim-smali'Plug 'neoclide/coc.nvim', {'branch': 'release'}
{
"languageserver": {
"smalisp": {
"command": "smalisp",
"filetypes": ["smali"]
}
}
}Plug 'prabirshrestha/vim-lsp' autocmd User lsp_setup call lsp#register_server({ \ 'name': 'smalisp', \ 'cmd': {server_info->['smalisp']}, \ 'whitelist': ['smali'], })
Emacs (lsp-mode)
- Prerequisites: Emacs with lsp-mode and eglot options.
- Setup: enable lsp for
smali-modeand configure the server to runsmalisp. - See lsp-mode docs for exact config syntax.

