NovaLang0.2 alpha

Solução de problemas

Python não foi encontrado

Isso é emitido pela extensão de marketplace novalang.novalang de Martin Maboya, não pela toolchain deste repositório. A NovaLang oficial executa nova lsp e não depende de Python.

  1. Desabilite/desinstale a extensão conflitante.
  2. Instale o VSIX novalang-project.novalang-toolchain.
  3. Confirme nova lsp --help.
  4. Recarregue a janela do VS Code.

Instalar Python apenas mascara a causa e inicia um servidor de outro projeto.

nova não é reconhecido

Feche e reabra terminal e VS Code. No PowerShell:

Test-Path "$env:USERPROFILE\.cargo\bin\nova.exe"
& "$env:USERPROFILE\.cargo\bin\nova.exe" --version
Get-Command nova -All

Se o executável direto funcionar, corrija o Path ou configure novalang.server.path com o caminho absoluto.

Acesso negado. (os error 5) em nova fmt . ou nova lint .

Versões antigas tratavam . como arquivo e tentavam abrir o diretório. A CLI atual expande diretórios recursivamente. Atualize/reinstale e confirme qual executável está sendo usado:

Get-Command nova -All
nova --version
cargo install --path crates/novacli --locked --force
nova fmt . --check
nova lint .

Se persistir, tente um arquivo específico. Um erro só nesse arquivo indica permissão, bloqueio por antivírus/sincronização ou atributo do sistema:

nova fmt .\main.nova --check
Get-Item .\main.nova | Format-List FullName,Attributes

Não execute como administrador antes de identificar o caminho bloqueado.

thread 'main' has overflowed its stack

Atualize para a versão atual, que contém correções de regressão no pipeline. Depois elimine cache antigo e compare os backends:

nova clean .
nova run . --no-cache
nova run . --backend interp

Se apenas um backend falhar, preserve o menor programa que reproduz o erro, rode com --no-cache e abra um issue informando versão, sistema, comando, fonte e saída. Não aumente RUST_MIN_STACK como correção permanente: isso pode apenas esconder recursão infinita.

O LSP fecha ou não aparece em Problems

  1. Confirme a extensão correta e o modo de linguagem NovaLang.
  2. Execute NovaLang: Show Language Server Command.
  3. Copie o comando mostrado e rode nova lsp --help no terminal.
  4. Configure caminho absoluto para nova.exe.
  5. Execute NovaLang: Restart Language Server e Reload Window.
  6. Veja Output → NovaLang.

Mensagens como Pending response rejected since connection got disposed normalmente são consequência de o processo servidor ter encerrado; procure a primeira mensagem anterior no log.

Se aparecer this.outputChannel.error is not a function ou this.traceOutputChannel.onDidChangeLogLevel is not a function, há incompatibilidade entre a versão do VS Code e a biblioteca cliente empacotada, ou um VSIX antigo ainda está ativo. Instale o VSIX corrigido mais recente, confirme VS Code 1.85 ou superior, desinstale versões duplicadas e recarregue a janela.

O build não substitui target/debug/nova.exe

O processo LSP pode manter o arquivo aberto no Windows. Reinicie/desabilite a extensão ou use outro diretório:

$env:CARGO_TARGET_DIR = Join-Path $env:TEMP "novalang-build"
cargo build -p novacli

Para instalar, use cargo install, que grava em .cargo\bin.

Cache suspeito

nova run . --no-cache
nova build . --no-cache -o target/app.novabc
nova clean .

nova clean . --deps também remove dependências instaladas e exige novo nova install.

Relatório útil

Inclua:

  • nova version;
  • sistema operacional e versão do VS Code;
  • saída de nova <comando> --help;
  • comando exato e menor fonte que reproduz;
  • primeiro erro do log, não apenas as mensagens de reinício;
  • indicação de backend VM ou interpretador.