Configuração de Editor e rust-analyzer
Configure VS Code (ou Cursor) com rust-analyzer para navegação rápida, expansão de macro e execução de testes em programas Solana/Anchor.
Busque em todas as páginas da documentação
Configure VS Code (ou Cursor) com rust-analyzer para navegação rápida, expansão de macro e execução de testes em programas Solana/Anchor.
Card de receita de referência rápida - pronto para copiar e colar.
rustup component add rust-analyzer
code --install-extension rust-lang.rust-analyzerEssenciais em .vscode/settings.json:
{
"rust-analyzer.cargo.extraEnv": {},
"rust-analyzer.check.command": "clippy",
"editor.formatOnSave": true
}Quando usar:
#[program] Anchor.anchor build.cargo test para parsers off-chain ao lado de programas.# Fixe Rust na raiz do repo
cat > rust-toolchain.toml <<'EOF'
[toolchain]
channel = "1.91.1"
components = ["rustfmt", "clippy", "rust-analyzer"]
EOF
rustup show active-toolchain
# Abra workspace Anchor
cd my_anchor_program
code .
# No editor: abra programs/my_program/src/lib.rs
# rust-analyzer deve indexar após "cargo metadata" completarsettings.json do workspace:
{
"rust-analyzer.linkedProjects": ["programs/my_program/Cargo.toml"],
"rust-analyzer.cargo.buildScripts.enable": true,
"[rust]": {
"editor.defaultFormatter": "rust-lang.rust-analyzer"
}
}O que isso demonstra:
rust-toolchain.toml fixa 1.91.1 para paridade analyzer e CLI.linkedProjects ajuda monorepos onde raiz pode não ser crate Rust.buildScripts.enable resolve código gerado por build script anchor-syn.cargo check ao salvar para feedback rápido.#[program], #[account]) exigem saída de build script.tests/ ou clients/ podem ser membros workspace separados.rustfmt consistente com CI cargo fmt.| Extensão | Propósito |
|---|---|
| rust-analyzer | LSP para Rust |
| Even Better TOML | Edição Anchor.toml |
| Error Lens | Diagnósticos inline |
| crates | Dicas de versão Cargo.toml |
# Reinicie cache analyzer quando macros quebrarem
rm -rf target/debug/incremental
cargo clean && anchor buildrust-toolchain.toml; recarregue janela.buildScripts; execute anchor build uma vez.programs/*. Correção: abra raiz repo com Anchor.toml.target/ em configurações file watcher.| Alternativa | Use quando | Não use quando |
|---|---|---|
| IntelliJ Rust | Loja JetBrains | Padrão VS Code/Cursor |
vim + rust-analyzer | Centrado em terminal | Ensinar novos contratados |
Editor zed | LSP leve | Depuração macro Anchor imatura |
Apenas CLI cargo check | Minimalismo CI | Desenvolvimento diário de features |
Execute anchor build uma vez para artefatos proc-macro gerarem; garanta linkedProjects apontando para crate de programa.
Não - corresponda pin stable 1.91.1 para compatibilidade programa Solana.
Habilite editor.formatOnSave com rust-analyzer como formatador Rust padrão.
Use terminal integrado para anchor test; analyzer foca em velocidade cargo check.
Use ESLint/serviço linguagem TypeScript em app/ - separado de rust-analyzer.
Exclua target/, limite membros workspace, desabilite features não usadas em Cargo.toml.
Mesma extensão rust-analyzer e settings se aplicam.
Use logs msg! e testes LiteSVM; step-debugging nativo é limitado vs Rust off-chain.
Opcional - check.command: clippy é mais rigoroso mas mais lento que check.
Commite .vscode/settings.json e rust-toolchain.toml para consistência do time.
Versões da stack: Esta página foi 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 e LiteSVM 0.6.x.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026