Configuración del Editor y rust-analyzer
Configura VS Code (o Cursor) con rust-analyzer para una navegación rápida, expansión de macros y ejecuciones de pruebas en programas de Solana/Anchor.
Busca en todas las páginas de la documentación
Configura VS Code (o Cursor) con rust-analyzer para una navegación rápida, expansión de macros y ejecuciones de pruebas en programas de Solana/Anchor.
Tarjeta de receta de referencia rápida - lista para copiar y pegar.
rustup component add rust-analyzer
code --install-extension rust-lang.rust-analyzerEsenciales de .vscode/settings.json:
{
"rust-analyzer.cargo.extraEnv": {},
"rust-analyzer.check.command": "clippy",
"editor.formatOnSave": true
}Cuándo usar esto:
#[program] de Anchor.anchor build.cargo test para analizadores fuera de la cadena junto a los programas.# Fijar Rust en la raíz del repositorio
cat > rust-toolchain.toml <<'EOF'
[toolchain]
channel = "1.91.1"
components = ["rustfmt", "clippy", "rust-analyzer"]
EOF
rustup show active-toolchain
# Abrir espacio de trabajo de Anchor
cd my_anchor_program
code .
# En el editor: abrir programs/my_program/src/lib.rs
# rust-analyzer debería indexar después de que "cargo metadata" se completesettings.json del espacio de trabajo:
{
"rust-analyzer.linkedProjects": ["programs/my_program/Cargo.toml"],
"rust-analyzer.cargo.buildScripts.enable": true,
"[rust]": {
"editor.defaultFormatter": "rust-lang.rust-analyzer"
}
}Lo que esto demuestra:
rust-toolchain.toml fija la versión 1.91.1 para la paridad del analizador y la CLI.linkedProjects ayuda a los monorepos donde la raíz puede no ser un crate de Rust.buildScripts.enable resuelve el código generado por el script de compilación de anchor-syn.cargo check al guardar para obtener retroalimentación rápida.#[program], #[account]) requieren la salida del script de compilación.tests/ o clients/ pueden ser miembros separados del espacio de trabajo.rustfmt consistente con la CI de cargo fmt.| Extensión | Propósito |
|---|---|
| rust-analyzer | LSP para Rust |
| Even Better TOML | Edición de Anchor.toml |
| Error Lens | Diagnósticos en línea |
| crates | Sugerencias de versión para Cargo.toml |
# Reiniciar la caché del analizador cuando las macros fallan
rm -rf target/debug/incremental
cargo clean && anchor buildrust-toolchain.toml; recargar ventana.buildScripts; ejecutar anchor build una vez.programs/*. Solución: abrir la raíz del repositorio con Anchor.toml.target/ enorme para indexar - IDE lento. Solución: excluir target/ en la configuración del observador de archivos.| Alternativa | Usar Cuando | No Usar Cuando |
|---|---|---|
| IntelliJ Rust | Tienda JetBrains | Estándar de VS Code/Cursor |
vim + rust-analyzer | Centrado en terminal | Enseñar a nuevos empleados |
Editor zed | LSP ligero | Depuración de macros de Anchor inmadura |
Solo CLI cargo check | Minimalismo de CI | Desarrollo diario de funciones |
Ejecuta anchor build una vez para que se generen los artefactos de proc-macro; asegúrate de que linkedProjects apunte al crate del programa.
No, empareja la fijación estable 1.91.1 para la compatibilidad con programas de Solana.
Habilita editor.formatOnSave con rust-analyzer como formateador predeterminado de Rust.
Usa la terminal integrada para anchor test; el analizador se enfoca en la velocidad de cargo check.
Usa ESLint/servicio de lenguaje de TypeScript en app/ - separado de rust-analyzer.
Excluye target/, limita los miembros del espacio de trabajo, deshabilita características no utilizadas en Cargo.toml.
Se aplican la misma extensión rust-analyzer y configuración.
Usa registros msg! y pruebas LiteSVM; la depuración paso a paso nativa es limitada en comparación con Rust fuera de la cadena.
Opcional - check.command: clippy es más estricto pero más lento que check.
Confirma .vscode/settings.json y rust-toolchain.toml para la consistencia del equipo.
Versiones de la pila: Esta página fue escrita para Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, anchor-lang 0.32.1, Rust 1.91.1, @solana/kit 7.0.0, Surfpool 0.12.0, y LiteSVM 0.6.x.
Revisado por Chris St. John·Última actualización: 16 jul 2026