Documentação / O IDE

Servidores de linguagem e build

Os servidores de linguagem que o Yuli instala e mantém por você, sem npm nem Node do sistema, e os adaptadores de build para Python, Go, .NET, sbt, Bazel e Node.

Para cada linguagem, o Yuli usa o servidor de linguagem (LSP) de referência e o gerencia por você: baixa-o com a sua permissão, verifica-o e o mantém fora dos seus projetos. O Java tem o seu próprio motor nativo, e CSS, SCSS e LESS são resolvidos pelo editor.

Servidores gerenciados

Linguagem Servidor É instalado a partir de
TypeScript e JavaScript typescript-language-server com typescript (o tsserver real) Registro npm
Python Pyright Registro npm
Go gopls go install
Kotlin kotlin-language-server Zip do GitHub
C# csharp-ls dotnet tool
PHP Intelephense Registro npm
Ruby ruby-lsp gem
C e C++ clangd 19.1.2 Zip do GitHub
Bash bash-language-server Registro npm
Dockerfile dockerfile-language-server-nodejs Registro npm
Rust rust-analyzer Binário do GitHub

Sem npm nem Node no seu computador

  • Os pacotes são baixados diretamente do registro npm e verificados contra a soma SHA-512 publicada pelo registro.
  • Não são executados scripts de instalação nem dependências opcionais.
  • Eles rodam sobre o próprio Electron do Yuli em modo Node, ou sobre um Node que o Yuli baixa. Você não precisa ter npm nem Node instalados.
  • São guardados em <runtimes>/<servidor>/<versão>/.
  • Um download só é interrompido se deixar de chegar informação durante 60 segundos; um download lento, mas ativo, não é interrompido.

A pasta de runtimes do Yuli (<runtimes>) depende do sistema:

%LOCALAPPDATA%\.yulicode\runtimes

Com a sua permissão

Se faltar o servidor de uma linguagem, o editor mostra «Sem servidor de linguagem para…» com estas opções:

Opção O que faz
Autorizar download / Autorizar instalação O Yuli o instala e o inicia
Agora não Não pergunta mais durante esta sessão
Não perguntar novamente Lembra a sua decisão para esse servidor

Nada será baixado nem executado sem a sua autorização. As decisões são salvas em lsp-install-consent.json, junto à sua configuração, por servidor e por destino (este computador ou um host remoto).

Em Opções globais → Servidores de linguagem, você pode indicar o caminho de um servidor que já tenha ou uma URL ou espelho de confiança.

Adaptadores de build

O Yuli detecta como cada projeto é construído pelos seus arquivos, sem executar nada para descobrir, e usa essas ferramentas para compilar, executar, testar e mostrar resultados no painel Testes.

  • Gerenciadores: pip (requirements*.txt, setup.py ou um pyproject.toml simples), Poetry, uv, Pipenv e Hatch.
  • Ambiente: usa o ambiente virtual do projeto (.venv/venv, as pastas do Poetry e do Pipenv ou a do Hatch). Sem ambiente, usa o run do gerenciador e, caso contrário, o Python do sistema.
  • Testes: pytest se o projeto o configura ou depende dele; caso contrário, unittest.
  • O mesmo ambiente é passado ao Pyright, assim o autocompletar enxerga as suas dependências.

Maven, Gradle, Ant e Cargo continuam como sempre; veja Executar e depurar.

▶ na margem

Ao lado do código aparece um ▶ para executar ou depurar o que está à sua frente. Ele só é exibido quando o projeto é realmente desse tipo.

Linguagem Executar Depurar
Python if __name__ == "__main__": e testes de pytest ou unittest if __name__ == "__main__":
Go func main e func TestX func main e func TestX
C# Testes de xUnit, NUnit e MSTest static void Main(

Além disso, em um package.json cada script tem o seu ▶ (executado com o gerenciador do projeto), e no Java há ▶ para classes com main, testes e tarefas do Maven e do Gradle.

Veja Depuração para as sessões de depuração e Editor e linguagens para o restante do editor.