Rextio
Surfaces Rextio’s native-vs-fallback analysis directly in the editor: which functions go native (or plugin / shim / fallback / Numba), diagnostics with promotion guidance, and a status-bar summary—so you can see route and status while you type without leaving VS Code.
Requirements
A project with a rextio.toml at the workspace root (or under a workspace folder). The extension activates only when that file is present.
Install the analysis stack into the project’s virtual environment:
pip install rextio rextio-lsp
The extension discovers .venv and venv automatically (and falls back to PATH).
Packages and source:
The language server is not bundled with this extension. Keeping rextio-lsp in the project environment keeps analysis in lock-step with the project’s Rextio version and enabled plugins. The extension coexists with Pylance, pyright, and ruff; it does no general Python linting of its own.
Features
| Feature |
What you get |
| Diagnostics |
Rextio findings with source: "rextio" and RXT / RXTP codes, plus promotion guidance in the message. |
| Hover |
Route and status info for analysed functions (native / plugin / shim / fallback / Numba). |
| Code lenses |
Rextio: <route> lenses above analysed functions (toggle with rextio.codeLens.enable). |
| Quick fix |
Apply @rextio.exempt when a diagnostic offers that code action. |
| Status bar |
Left-side Rextio item: server state plus a summary of Rextio diagnostics (W: warnings, i: info/hints). Click to restart. |
| Server install prompt |
If rextio-lsp is missing, a non-modal prompt offers three choices (when applicable): Install into .venv (Recommended), Install into system Python (Not recommended), or Skip. |
Settings
| Setting |
Type |
Default |
Description |
rextio.enable |
boolean |
true |
Enable the Rextio language client. |
rextio.server.path |
string |
"" |
Absolute path to the rextio-lsp executable. When empty, the extension discovers it from the workspace virtual environment (.venv / venv) or from PATH. |
rextio.server.args |
string[] |
[] |
Additional command-line arguments passed to the rextio-lsp server. |
rextio.codeLens.enable |
boolean |
true |
Show Rextio route-info code lenses above analysed functions. Sent to the server as initialization options. |
rextio.interpreter.path |
string |
"" |
Path to the Python interpreter the server should analyse against. When empty, the server chooses its own interpreter. |
rextio.trace.server |
off | messages | verbose |
off |
Trace communication between VS Code and the Rextio language server (visible in the output channel). |
Changing a launch-time setting (rextio.enable, rextio.server.path, rextio.server.args, rextio.codeLens.enable, or rextio.interpreter.path) restarts the language client. Changing rextio.trace.server does not restart the client; the trace level is applied live.
Commands
- Rextio: Restart Server — stop and relaunch the language server. Also bound to clicking the status bar item. Clears a remembered Skip on the install prompt so the prompt can appear again if the server is still missing.
Troubleshooting
Server not found
If the status bar shows a warning and the install prompt appears:
- Prefer Install into .venv (Recommended) when the workspace has a
.venv or venv.
- Or install yourself:
pip install rextio-lsp into the project environment, then click the status bar (or run Rextio: Restart Server).
- Or set
rextio.server.path to the absolute path of your rextio-lsp executable (or a Python interpreter plus rextio.server.args such as ["-m", "rextio_lsp"]).
Install progress and pip output stream to the Rextio output channel. On failure (for example PEP 668 system Python, or package not yet published), that channel is shown and the status-bar warning remains.
Where is the Rextio output channel?
View → Output, then choose Rextio in the dropdown. Use it for discovery logs, install/pip output, LSP trace (rextio.trace.server), and route-info notices from code lenses.
Contributing
Build, test, and packaging instructions live in DEVELOPMENT.md.
License
MIT