ScriptsGuia

Inteligência do editor

O editor de scripts conversa com um servidor de linguagem de verdade em todas as linguagens — o mesmo tipo que uma IDE de computador usa. Ele sugere nomes enquanto você digita, mostra a assinatura e a documentação de uma função ao passar o mouse, sublinha erros antes de você executar e salta para uma definição, até dentro de outro script do projeto. Os pacotes importados são instalados para o editor enquanto você digita, então os tipos e as sugestões aparecem na hora.

7 min de leituraAntes: Escrevendo códigoAbrir no Waiso
O que você vai aprender
  • Usar sugestões, cartões de hover e ir para a definição
  • Ler as marcas de erro antes de executar
  • Saber o que os indicadores de import e o selo do motor dizem

Um servidor de linguagem por linguagem

Quando você abre um script, o editor se conecta a um serviço de servidores de linguagem por WebSocket e mantém uma sessão privada para a sua aba. Cada linguagem tem o seu servidor:

LinguagemServidorBom em
Pythonpylsp (Jedi)Sugestões a partir de type hints e pacotes instalados, nomes indefinidos, imports sem uso
TypeScripttypescript-language-serverChecagem de tipos completa, tipos dos pacotes, sugestão de caminhos
JavaScripttypescript-language-serverTipos inferidos do código e do JSDoc
C / C++clangdSugestões e diagnósticos com os headers do gcc do worker e o waiso.h
report.pyPlatform SDKImportar biblioteca
1import yaml2 3def main(title: str = "Daily report"):4    heading = title.5    rows = [{"city": "Recife", "orders": 2}]6    return {"title": heading, "yaml": yaml.safe_dump(rows)}7 8 9 10 11 12 13 14 
Python 3.15LSP
capitalize()método
casefold()método
center(width, fillchar)método
count(sub, start, end)método
encode(encoding, errors)método
endswith(suffix, start, end)método
format(*args, **kwargs)método
capitalize() → str

Devolve uma versão capitalizada da string: o primeiro caractere em maiúscula, o resto em minúscula.

método · str
Digite um ponto depois de um nome e a lista mostra o que aquele objeto tem, com o tipo de cada item.

O SDK da plataforma também é conhecido: import waiso (ou from 'waiso') completa as funções dele, e as chamadas que executam outro script ou flow completam os caminhos dos scripts do projeto e os parâmetros deles.

Complete, passe o mouse, salte

  1. Complete

    Comece a digitar um nome, ou digite um . depois de um. Escolha com as setas e Enter; Esc fecha a lista.

  2. Passe o mouse

    Pare o mouse sobre uma função, variável ou pacote para ver um cartão com a assinatura, o tipo e a documentação.

  3. Vá para a definição

    F12 ou Ctrl/⌘+clique leva até onde um nome é definido. Quando a definição está em outro script do projeto — uma biblioteca que você importa — esse script abre no editor.

Marcas de erro

Os erros são sublinhados enquanto você digita — erros em vermelho, alertas em âmbar — e passar o mouse na marca mostra a mensagem. Cada marca também vira uma linha na aba Problemas embaixo do código. Um erro de digitação que o servidor pega antes de executar:

invoice_total.py
def main(items: list[float] = [10.0, 2.5]):
    total = sum(items)
    return {"total": totl}  # marked: undefined name 'totl'
Saída esperadaSucessoA linha da variante Python na aba Problemas: mensagem, origem, linha e coluna
undefined name 'totl'   pyflakes 3:22

Imports enquanto você digita

Em Python, TypeScript e JavaScript, cada linha de import de pacote tem um pequeno indicador no fim: instalando, instalado ou com erro. O editor instala o pacote na sua própria sessão do servidor de linguagem enquanto você digita — é isso que faz aparecerem os tipos, as sugestões e a documentação do pacote. Passe o mouse no indicador para ver a versão resolvida; clique para abrir um seletor de versão com o histórico de lançamentos (filtre em Filtrar versões…). waiso tem um indicador dizendo que já vem embutido — nada para instalar.

Imports do projeto são conferidos no servidor

Os imports dos seus scripts são conferidos pelo mesmo resolvedor que uma execução usa, e o editor recebe na sessão os scripts do projeto na mesma linguagem, então a sugestão conhece as funções deles. Um import que falharia fica sublinhado com as mesmas palavras com que a execução falharia — import "utils.mony": no script at utils/mony in this project — e aparece em Problemas com a origem imports.

O selo do motor

No rodapé do código, o selo do motor mostra o runtime e o estado do servidor de linguagem. Passe o mouse para ler o estado por extenso:

EstadoSignifica
Conectando ao language server…A sessão está começando; as sugestões chegam em instantes
Language server conectadoSugestões, hover e marcas estão funcionando
Language server desconectadoVocê ainda edita, salva e executa — só sem sugestões nem marcas
Language server não configuradoA instalação não tem o serviço de servidor de linguagem

O mesmo selo tem o seletor de versão do runtime — veja Versões do runtime.

Limites

  • O servidor de linguagem só lê o seu código; nunca o executa. Um editor sem marcas não garante uma execução sem erro — entradas, dados e pacotes ainda podem falhar.
  • C e C++ não têm indicadores de pacote: não instalam nada.
  • As mensagens vêm do servidor de cada linguagem e ficam em inglês.