Sobre o projeto
RustOwl é uma ferramenta para desenvolvedores Rust que visualiza o movimento de propriedade e os tempos de vida das variáveis, com o objetivo de depuração e otimização. Quando você salva o código-fonte Rust, ele é analisado, e passar o cursor sobre uma variável ou chamada de função exibe informações de propriedade e tempo de vida.
A visualização usa sublinhados coloridos:
- Verde: tempo de vida da variável. Contínuo significa definitivamente ativo (comprovadamente inicializado em todos os caminhos que chegam a este ponto); ondulado significa talvez ativo (inicializado em alguns caminhos, mas possivelmente movido, descartado ou não inicializado em outros).
- Azul: empréstimo imutável.
- Roxo: empréstimo mutável.
- Laranja: valor movido / chamada de função.
- Vermelho: erro de tempo de vida, como uma diferença entre o tempo de vida real e o esperado, ou uma sobreposição inválida de referências mutáveis e compartilhadas.
O suporte a editores inclui uma extensão para VS Code (também disponível no Open VSX para Vscodium), um plugin para Neovim e um pacote para Emacs. Nesses editores, mover o cursor sobre uma variável ou chamada de função e esperar cerca de dois segundos aciona a visualização. O projeto implementa um servidor LSP com um protocolo estendido, para que outros editores possam criar clientes com base em sua especificação. Existem integrações de terceiros para as IDEs RustRover/IntelliJ e para o Sublime Text.
As opções de instalação incluem crates.io, o Arch User Repository (rustowl-bin) e o WinGet. A extensão do VS Code instala o RustOwl automaticamente quando ativada. Para Neovim e Emacs, o servidor LSP deve ser instalado manualmente. Após a configuração, a extensão executa o RustOwl ao salvar qualquer programa Rust em um workspace cargo; a primeira análise pode demorar, mas execuções posteriores usam cache de compilação para reduzir o tempo de análise.
Os pré-requisitos são cargo (instalável via rustup) e um editor compatível. O projeto afirma suporte às cinco versões mais recentes do Rust em regime de melhor esforço. Limitações conhecidas: devido às especificações de decoração do VS Code, caracteres com descendentes, como g ou parênteses, podem ocasionalmente não exibir sublinhados corretamente, e a macro println! às vezes produz saída extra sem afetar significativamente a usabilidade. Um playground hospedado está disponível em play.rustowl.rs.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.