Ferramentas do editor
Onze ferramentas abrem sobre o editor de código: um depurador de JavaScript, um executor de testes, painéis de Docker e de monitoramento, um catálogo de bibliotecas, geradores de backend e de IA, ações de código com IA, colaboração ao vivo na sua rede local e as visões Problemas e Esquema. Todas são gratuitas. Esta página diz o que cada uma realmente faz hoje no celular, inclusive as partes que só funcionam em parte.
Como as ferramentas abrem
Estas ferramentas só existem dentro do editor de código; não são páginas do pager principal. Abra antes um arquivo ou um projeto e use o botão de chave inglesa na parte de cima do editor.
- 1Toque no botão de chave inglesa (Mais opções) na barra superior do editor. Abre-se um painel com um campo de busca, Buscar ação….
- 2Escolha um chip de seção: Editar, Exibir, Ir para, Git, IA ou Ferramentas, ou digite no campo de busca para filtrar todas as ações de uma vez.
- 3Em Ferramentas as ações ficam agrupadas em Executar, Projeto, Colaborar, Utilidades e Ajuda e configurações. Depurar, Explorador de testes e Dependências ficam em Executar; Ferramentas Docker, Monitoramento e Geradores de backend em Projeto; Colaboração ao vivo em Colaborar.
- 4Problemas e Esquema ficam em Ir para. Os Geradores de IA e as ações de código com IA ficam em IA.
- 5A paleta de comandos (
Ctrl+Shift+Pcom teclado físico) lista exatamente as mesmas ações: o menu e a paleta compartilham um único registro.
Onde fica cada ferramenta
| Ferramenta | Onde | Como aparece |
|---|---|---|
| Depuração | Ferramentas › Executar › Depurar arquivo, ou o botão Depurar do painel de execução | Painel acoplado sob o editor, ao lado do painel de execução |
| Testes | Ferramentas › Executar › Explorador de testes | Painel inferior |
| Bibliotecas | Ferramentas › Executar › Dependências (só com um projeto aberto no disco), ou o botão de dependências do painel de execução | Painel inferior com o título Bibliotecas |
| Docker | Ferramentas › Projeto › Ferramentas Docker | Painel inferior |
| Monitoramento | Ferramentas › Projeto › Monitoramento | Painel inferior |
| Geradores de backend | Ferramentas › Projeto › Geradores de backend | Painel inferior |
| Geradores de IA | IA › Geradores de IA | Painel inferior |
| Ações de código com IA | Seção IA: IA: explicar seleção, IA: gerar testes, IA: refatorar código, Corrigir erros e as demais | Painel acoplado sob o editor, painel de refatoração ou painel inferior, conforme a ação |
| Colaboração ao vivo | Ferramentas › Colaborar › Colaboração ao vivo | Painel inferior |
| Problemas | Ir para › Problemas, ou o contador de problemas na barra de status | Diálogo em tela cheia |
| Esquema | Ir para › Esquema | Coluna à direita do editor |
Painel inferior, painel acoplado, diálogo ou coluna
Painel inferior
Testes, Docker, Monitoramento, Bibliotecas, os dois geradores e Colaboração ao vivo abrem como um painel inferior que cobre 87 % da altura da janela, com o tema do seu app. Ela não tem botão de fechar: deslize para baixo, aperte Voltar ou toque fora dela.
Painel acoplado
A depuração e o painel de execução ficam acoplados sob o editor (de 150 a 300 dp de altura). A depuração só abre quando você inicia Depurar arquivo e fecha com Voltar. Os resultados das ações de código com IA se acoplam do mesmo jeito.
Diálogo
Problemas é um diálogo que ocupa 95 % da largura, até 760 dp, e 85 % da altura, com cabeçalho próprio.
Coluna lateral
Esquema é uma coluna de 200 dp à direita do editor. Só aparece quando o editor encontrou regiões no arquivo.
Atalhos
| Teclas | O que fazem |
|---|---|
Shift+F5 | Depurar arquivo |
F9 | Alternar breakpoint na linha do cursor (não em arquivos abertos de fora do projeto, nem em uma visão de diff) |
F5 · F10 · F11 | Com uma sessão de depuração pausada: Depurar: continuar, Depurar: step over, Depurar: step into. Sem sessão pausada, F5 executa o arquivo e F11 é o modo Zen |
Ctrl+Shift+M | Problemas |
F8 · Shift+F8 | Próximo problema · Problema anterior |
Ctrl+I | Perguntar à IA sobre a seleção |
Mapa de telas
Todas as telas das ferramentas, com como chegar a elas e o que dá para fazer ali.
| Tela | Como chegar | O que você pode fazer |
|---|---|---|
| Menu Mais opções | Botão de chave inglesa na barra superior do editor | Buscar e executar todas as ações do editor; seções Editar, Exibir, Ir para, Git, IA, Ferramentas. |
| Painel de depuração | Ferramentas › Executar › Depurar arquivo; Shift+F5 | Abas Console, Variables, Call Stack e Breakpoints; continuar, avançar passo a passo, reiniciar, parar. Real só para JavaScript. |
| Editar breakpoint | Lápis em uma linha da aba Breakpoints | Definir uma Condição ou uma Mensagem de log (logpoint). |
| Explorador de testes | Ferramentas › Executar › Explorador de testes | Abas Explorador, Saída, Cobertura, Snapshots; Executar todos, Só falhados, modo watch. |
| Ferramentas Docker | Ferramentas › Projeto › Ferramentas Docker | Abas Contêineres, Imagens, Compose, Build, Dockerfile, Registro. Editar funciona sem Docker; executar exige um comando docker no aparelho. |
| Logs do contêiner | Ícone de logs de um contêiner | Últimas 200 linhas e um docker logs -f ao vivo. |
| Painel de monitoramento | Ferramentas › Projeto › Monitoramento | Abas Painel, Métricas, Alertas, Logs, Servidor. |
| Regra de alerta | Nova regra ou editar, em Alertas | Criar ou editar uma regra sobre uma métrica, com condição, limite e severidade. |
| Bibliotecas | Ferramentas › Executar › Dependências | Abas Declaradas e Catálogo; adicionar, atualizar e remover as quatro bibliotecas Kotlin incluídas. |
| Geradores de backend | Ferramentas › Projeto › Geradores de backend | Abas Modelo de API, Gerador CRUD, Migrações, OpenAPI / Swagger, Servidor simulado; Salvar no projeto. |
| Geradores de IA | IA › Geradores de IA | Abas API, Schema (modelos offline), Traduzir, Segurança, Desempenho (IA). |
| Painel de resultados da IA | IA: explicar seleção, IA: gerar testes, IA: gerar documentação, IA: gerar a partir de comentários | Ler a resposta; Inserir ou Aplicar. |
| Refatoração assistida por IA | IA: refatorar código | Escolher um dos nove tipos de refatoração ou escrever Instruções personalizadas. |
| Painel inferior de resultado da IA | Corrigir erros, Otimizar, Simplificar, Modernizar, Gerar | Ler a resposta e Aplicar depois de ver o diff. |
| Colaboração ao vivo | Ferramentas › Colaborar › Colaboração ao vivo | Hospedar ou entrar na mesma Wi-Fi; abas Sessão, Pessoas, Chat. |
| Alguém quer juntar-se | Aparece na tela do anfitrião | Deixar entrar ou Recusar. |
| Problemas | Ir para › Problemas; Ctrl+Shift+M; contador da barra de status; Analisar estilo (lint) | Filtrar por origem e severidade, ir a uma linha, Correções rápidas. |
| Esquema | Ir para › Esquema | Filtrar e ir a classes, funções, imports e seções // region. |
Depuração
A depuração executa o arquivo aberto com um depurador anexado e mostra o que o programa está fazendo em um painel acoplado sob o editor. O depurador é real só para JavaScript (.js, .mjs, .cjs, .jsx, executados no Node.js integrado). Para qualquer outra linguagem, Depurar arquivo apenas executa o arquivo.
Shift+F5), ou o botão Depurar do painel de execução. Ele abre o painel de execução e o painel de depuração juntos. O painel de depuração não tem botão próprio para abrir ou fechar: Voltar o fecha. Depurar arquivo só aparece quando o PocketCode tem um executor para o arquivo aberto.Breakpoints
- Toque no número de uma linha no editor para adicionar ou remover um breakpoint, ou aperte
F9na linha do cursor (Alternar breakpoint). Você pode defini-los antes de iniciar a sessão. - Os breakpoints vivem só na memória: ao fechar o app, eles são esquecidos.
- A aba Breakpoints lista todos os breakpoints, cada um com uma caixa de ligado/desligado. Toque em uma linha para ir à linha dela no arquivo atual, use o lápis para editá-lo, ✕ para removê-lo ou Limpar tudo. Lista vazia: “Nenhum breakpoint. Toque em um número de linha no editor para adicionar um.”
Iniciar e avançar passo a passo
O Node começa pausado na primeira linha (--inspect-brk), o painel se anexa (“Debugger attached on port N” aparece na saída da execução) e o libera, e o programa roda até atingir um breakpoint ou uma exceção não tratada, que também o pausa.
- Com uma sessão ativa, a barra de ferramentas oferece Continuar (ou Pausar enquanto roda), Passo por cima, Passo para dentro, Passo para fora, Reiniciar e Parar. Os botões de passo só ficam ativos enquanto o programa está pausado.
- Parar desanexa o depurador. O processo em si é parado pelo painel de execução.
- O botão da chama, Hot Reload: reiniciar a sessão ao salvar um arquivo do projeto, vem desligado por padrão.
As quatro abas
Os nomes das abas são sempre em inglês: o app não os traduz.
| Aba | O que mostra |
|---|---|
| Console | A saída do programa (console.* e erros) com seis níveis coloridos, um botão para limpá-la e mensagens da sessão como “Debug session started”. |
| Variables | As variáveis locais do quadro do topo da pilha de chamadas, em uma lista plana. Estados vazios: “Start debugging to inspect variables”, “No variables in current scope”. |
| Call Stack | Os quadros do programa pausado. Toque em um para ir à sua linha. |
| Breakpoints | Todos os breakpoints, como descrito acima. |
Condições e logpoints
O lápis de um breakpoint abre Editar breakpoint. Condição (“Pausar só quando esta expressão JavaScript for verdadeira”) faz com que ele pare só nesse caso. Mensagem de log (“Registra em vez de pausar. Use {expressão} para inserir valores”) o transforma em um logpoint que imprime a mensagem e não pausa. Com os dois, ele só imprime quando a condição é verdadeira. Esses dois campos são definidos aqui, não na margem do editor.
Você pode
- Depurar um arquivo JavaScript no Node.js integrado, com breakpoints de linha, condições e logpoints.
- Passo por cima, passo para dentro, passo para fora, continuar, pausar, reiniciar e parar; ver a pilha de chamadas e as variáveis locais do quadro do topo.
- Pausar automaticamente em uma exceção não tratada.
- Reiniciar a sessão cada vez que você salva um arquivo do projeto, se ligar o Hot Reload.
- Ir à linha de um quadro ou de um breakpoint.
Você não pode, e por quê
- Depurar TypeScript, Python, Java, Go ou qualquer linguagem que não seja JavaScript. Depurar arquivo executa o arquivo sem depurador e imprime “⚠ <runner> has no debugger support — running without it.”; os breakpoints não fazem nada.Ainda não
- Avaliar uma expressão: o campo Avaliar expressão… da aba Console sempre responde
undefinede não executa o que você digita.Ainda não - Inspecionar objetos aninhados ou as variáveis de outro quadro: Variables lista só as variáveis locais do quadro do topo, sem expansão; escolher outro quadro apenas move o cursor para a linha dele.Ainda não
- Adicionar breakpoints de exceção: a única pausa em erros é a automática para exceções não tratadas.Ainda não
- Manter seus breakpoints depois de fechar o app.Ainda não
Testes
O Explorador de testes encontra os testes do seu projeto, executa-os com o comando do próprio framework e lista os resultados. Ele não traz um executor de testes: roda o comando pelo shell do aparelho (sh -c) na pasta do projeto, então as ferramentas do framework precisam existir no aparelho.
Frameworks e detecção
Há suporte a doze frameworks: Jest, Mocha, Vitest, pytest, unittest, JUnit, Go Test, Cargo Test, PHPUnit, RSpec, Dart Test e Swift XCTest. O PocketCode escolhe um por projeto: o primeiro que encontra pelo arquivo de configuração (por exemplo jest.config.js, pytest.ini, build.gradle, go.mod, Cargo.toml, pubspec.yaml); se nenhum bater, lê o package.json em busca de Jest, Vitest ou Mocha. O unittest não tem arquivo de configuração, então nunca é escolhido sozinho. O subtítulo então mostra “<framework> · N testes em M ficheiros”.
As quatro abas
| Aba | O que faz |
|---|---|
| Explorador | Uma linha por arquivo de teste, com a contagem de aprovados. Procurar testes…, filtros ✓ Passaram, ✕ Falharam, ○ Ignorados e ▶ para executar uma suíte ou um teste individual. Um teste que falhou mostra Esperado e Recebido quando o executor os imprimiu, e Ir para a linha N. |
| Saída | A saída bruta do comando, colorida, com Limpar. Vazia: Não há saída dos testes. |
| Cobertura | Mostra Não há dados de cobertura (veja abaixo). |
| Snapshots | Só para Jest e Vitest. Lista o que encontra nos arquivos .snap, com Atualizar todos e Eliminar obsoletos (ele pergunta antes Eliminar os snapshots obsoletos?). |
Executar
- O rodapé tem Executar todos, Só falhados e, enquanto uma execução está em andamento, Parar.
- O cabeçalho tem ícones para Atualizar, Alternar modo watch e Executar com cobertura.
- A árvore de testes vem da leitura dos seus arquivos por padrões de nome (
*.test.*,test_*.py,*_test.go,*Test.kt…), até 200 arquivos, ignorandonode_modules,.git,build,dist,target,.gradle,__pycache__evenv. - O modo watch existe só para Jest, Mocha e Vitest, e apenas despeja a saída do comando em Saída.
Você pode
- Detectar o framework do projeto e listar seus arquivos de teste e seus testes.
- Executar todos os testes, só os que falharam, uma suíte ou um teste; parar uma execução.
- Ler a saída do comando ao vivo; ver Esperado e Recebido e ir à linha com falha quando o executor os informa.
- Iniciar o modo watch para Jest, Mocha ou Vitest.
Você não pode, e por quê
- Ter certeza de que os testes podem rodar. Cada execução é um
sh -ccom um comando comonpx jest --json,python -m pytest,go test,cargo test,./gradlew test,vendor/bin/phpunit,bundle exec rspec,dart testouswift test. O painel não instala nenhuma dessas ferramentas e não mexe no PATH; se alguma faltar, o erro aparece em Saída.Dispositivo - Ver um relatório de cobertura. Executar com cobertura roda o comando de cobertura do framework e imprime a saída dele, mas a aba Cobertura nunca recebe dados e a margem do editor não mostra cobertura. O unittest, o RSpec e o Swift não têm nenhum comando de cobertura (Coverage no disponible para <framework>).Ainda não
- Obter resultados exatos por teste. Passou ou falhou é deduzido do texto da saída (uma linha com ✓, PASS ou ok, ou com ✗, FAIL ou ✕, que contenha o nome do teste); um teste sem nenhum dos dois continua como não executado. Os arquivos JSON e JUnit que os comandos pedem não são lidos.Ainda não
- Obter snapshots úteis. A aba lista entradas
.snap, todas marcadas como aprovadas, então Atualizar todos e Eliminar obsoletos não têm nada significativo sobre o que agir.Ainda não - Usar o modo watch com pytest, Go, Cargo, JUnit ou os demais: eles mostram Watch mode no disponible para <framework>.Ainda não
- Listar mais de 200 arquivos de teste, um limite definido por desempenho no celular.De propósito
- Depurar testes. O menu descreve o Explorador de testes como capaz de “depurar testes com cobertura”; o painel não depura.Ainda não
Ferramentas Docker
As Ferramentas Docker são uma interface para a ferramenta de linha de comando docker que já está no seu aparelho. O PocketCode não inclui o Docker nem um daemon do Docker, e o painel não tem campo para um host remoto. Então, em um celular típico, as abas que precisam do Docker mostram O Docker não está disponível, enquanto os editores de Dockerfile e de Compose continuam funcionando.
Quando o Docker não está lá
Ao abrir, o painel executa docker --version. Se isso falhar, Contêineres, Imagens, Build e Registro mostram O Docker não está disponível: “O PocketCode executa o comando docker neste dispositivo e não o encontrou. Você ainda pode editar o Dockerfile e o arquivo Compose.” Ele acrescenta a causa real da falha e dois botões, Tentar de novo e Editar Dockerfile. O subtítulo diz Docker indisponível.
Dockerfile e .dockerignore
Esta aba funciona sem o Docker. Comece por um dos 14 modelos — Node.js App, Python App, Java App, Go App, Rust App, Static Site, React App, Next.js, FastAPI, Spring Boot, Django, Ruby on Rails, Laravel, Custom Multi-stage —, edite o texto e Salvar como Dockerfile no projeto. Para o .dockerignore você pode Gerar um arquivo e salvá-lo.
Compose
Nove modelos: Full-stack Node.js, Full-stack Python, Full-stack Java, LAMP Stack, MEAN Stack, Monitoring Stack, ELK Stack, WordPress e Dev Tools. Edite e Salvar o arquivo; ele é sempre salvo como docker-compose.yml, embora o painel leia docker-compose.yml, docker-compose.yaml, compose.yml ou compose.yaml. Com o Docker presente, Compose up, Compose down, Compose build e Compose logs executam docker compose up -d, down, build e logs --tail=100; ficam desativados até o projeto ter um arquivo Compose.
Com o Docker disponível
| Aba | O que faz |
|---|---|
| Contêineres | Lista docker ps -a --size em Em execução e Parados. Por contêiner: logs (as últimas 200 linhas, depois um docker logs -f ao vivo marcado como Ao vivo), iniciar ou parar, e um menu com Reiniciar e Remover (ele pergunta Remover o contêiner?). Os três primeiros contêineres que pararam com erro também mostram as últimas 20 linhas de log. |
| Imagens | Lista as imagens; Baixar uma imagem pelo nome (por exemplo nginx:alpine); excluir uma (ele pergunta Excluir a imagem?). |
| Build | Defina a Tag da imagem (padrão my-app:latest) e aperte Compilar imagem: executa docker build -t <tag> . no projeto com saída ao vivo e Cancelar build. Exige um Dockerfile (“Primeiro escreva ou escolha um Dockerfile.”). |
| Registro | Escolha Docker Hub, GitHub CR ou Google GCR e Enviar um name:tag (executa docker tag e docker push). |
Limites dos comandos
Cada comando pode rodar por no máximo 300 segundos. Nomes e tags são verificados antes de chegar ao Docker: letras, dígitos e _ : . / @ -, até 255 caracteres, sem começar com -.
Você pode
- Escrever e salvar um Dockerfile (14 modelos), um
.dockerignoree um arquivo Compose (9 modelos), com ou sem o Docker. - Repetir a verificação do Docker com Tentar de novo.
- Com um
dockerlocal funcionando: listar, iniciar, parar, reiniciar e remover contêineres; ler os logs deles ao vivo; baixar, listar e excluir imagens; compilar uma imagem; executar Compose up, down, build e logs; enviar para o Docker Hub, GitHub CR ou Google GCR.
Você não pode, e por quê
- Usar o Docker em um aparelho sem o comando
docker. O PocketCode não inclui um binário do Docker nem um daemon; o painel só executa a CLI que encontra no aparelho.Dispositivo - Conectar a um daemon do Docker remoto por SSH, com
DOCKER_HOSTou com um contexto: o painel não tem campo de host e todo comando roda neste aparelho.Ainda não - Fazer login em um registro: não existe etapa de login, então Enviar usa o que a CLI local do Docker já tiver configurado. Só três registros são oferecidos.Ainda não
Monitoramento
O Monitoramento mede o app em que você está e o aparelho em que ele roda, não um servidor. Ele coleta amostras a cada 2 segundos enquanto o painel está aberto e para quando você o fecha. Para ver o seu próprio servidor há uma aba Servidor separada.
As cinco abas
| Aba | O que mostra |
|---|---|
| Painel | Uma seção Saúde do sistema com quatro cartões: CPU app, Memória (o uso de memória do aparelho em %, não o do app), Bateria e armazenamento Livre em MB. Depois o Estado térmico (Android 10 e posterior) e os cinco alertas mais recentes, ou Nenhum alerta ativo. |
| Métricas | Uma série das últimas 60 amostras (dois minutos) com mínimo, média e máximo para oito métricas: CPU do app, Heap do app, Memória do dispositivo, Memória total (PSS), Bateria, Rede de entrada, Rede de saída e Armazenamento livre. Uma métrica que o aparelho não consegue informar mostra “—” e “Este dispositivo ainda não informou esta métrica.” |
| Alertas | Quatro regras já vêm incluídas: CPU alta (CPU acima de 80 %), Memória do dispositivo crítica (acima de 90 %), Armazenamento baixo (abaixo de 200 MB) e Bateria baixa (abaixo de 15 %). Nova regra cria as suas; você pode editar, desligar, excluir (ele pergunta Apagar esta regra de alerta?) e confirmar eventos. As regras sobrevivem a uma reinicialização. |
| Logs | O log do próprio app (logcat filtrado para este processo) em um buffer de 500 linhas atualizado até quatro vezes por segundo. Um chip Logs do sistema (desligado por padrão), chips de nível, Pesquisar nos logs…, Limpar, um contador de entradas e Ao vivo. |
| Servidor | Aponte o painel para o seu próprio servidor compatível com Prometheus. Veja abaixo. |
Regras de alerta
O formulário da regra tem Métrica, Condição (Maior que ou Menor que), Limite (verificado contra o intervalo da métrica), Sustentado durante (segundos) e Severidade (Crítica, Aviso, Info). Os eventos de alerta só são avaliados e mostrados enquanto o painel está aberto; os últimos 100 são mantidos, no máximo um por minuto por regra.
Servidor: o seu próprio Prometheus
Servidor funciona com Prometheus, VictoriaMetrics, Thanos, Mimir, Cortex ou um proxy do Grafana. Informe o Endereço, escolha a Autenticação (Nenhuma, Utilizador e palavra-passe ou Token bearer), defina a atualização (de 5 a 300 segundos, 15 por padrão) e adicione até 12 consultas; cada uma é uma consulta instantânea em PromQL que deve devolver um único valor. Testar ligação verifica a configuração. Enquanto você não o configurar, a aba mostra “Não há servidor configurado. Até configurares um, nada sai deste dispositivo.”
Você pode
- Acompanhar a CPU, o heap e a memória total do app, a bateria, o tráfego de rede do app e o armazenamento livre, além da memória e do estado térmico do aparelho.
- Ler o log do próprio app, pesquisá-lo, filtrá-lo por nível e limpá-lo.
- Criar, editar, desligar e excluir regras de alerta, e ver quando elas disparam enquanto o painel está aberto.
- Mostrar até 12 números do seu próprio servidor compatível com Prometheus.
Você não pode, e por quê
- Ver erros, uptime, APM ou traces. Essas abas foram removidas porque um celular não consegue medi-los para o serviço de outra pessoa. A descrição do Monitoramento no menu ainda diz “erros e disponibilidade”.De propósito
- Monitorar outro processo ou outra máquina com as quatro primeiras abas: elas medem só este app e este aparelho. Use Servidor para o seu.De propósito
- Receber uma notificação push, por e-mail ou Slack de um alerta: os eventos aparecem só no painel, e só enquanto ele está aberto.Ainda não
- Fazer Sustentado durante (segundos) contar: ele é salvo e mostrado, mas uma regra dispara assim que o valor atual cruza o limite.Ainda não
- Consultar um servidor por HTTP puro, a menos que seja
localhost,127.0.0.1ou10.0.2.2. O Android bloqueia tráfego sem criptografia, então um endereço comohttp://192.168.1.50:9090é recusado: usehttps://ou um túnel ou proxy TLS.Dispositivo - Usar consultas de intervalo, consultas que devolvem várias séries ou o Sentry. Só a API de consulta instantânea do Prometheus tem suporte.Terceiros
Bibliotecas
Bibliotecas (o menu a chama de Dependências) não é um gerenciador de pacotes. Ela lista as bibliotecas Kotlin/JVM que um projeto declara em .pocketcode/dependencies.json e permite escolher em um catálogo fechado de quatro bibliotecas que vêm dentro do app PocketCode. Só o executor Kotlin completo as usa.
.pocketcode/dependencies.json · N declaradas.Catálogo
A aba Catálogo lista as quatro bibliotecas que o PocketCode inclui: kotlinx.coroutines 1.10.2, kotlinx.serialization · JSON 1.7.3, kotlinx.serialization · core 1.7.3 e Okio 3.9.1. O ícone + de uma linha (Adicionar mais o nome da biblioteca) a adiciona ao projeto.
Declaradas
A aba Declaradas lista o que o JSON do projeto declara, com os filtros Todas, Desatualizadas e Não incluídas. Cada linha mostra group:artifact e se o PocketCode a inclui (“Incluída no PocketCode.”, ou “a → b” quando o projeto pede outra versão), com um ícone de atualizar e um de remover. Atualizar N no rodapé atualiza todas as bibliotecas desatualizadas, ou seja, define-as na versão que o PocketCode inclui. O ícone de atualizar do cabeçalho (Resolver agora) prepara as bibliotecas de novo, com os estados “Preparando as bibliotecas…” e “Pronto: as bibliotecas deste projeto estão preparadas.” Sem declarações, mostra Sem dependências.
Uma biblioteca que não está incluída
Se o JSON citar algo fora do catálogo, a linha diz que ela não vem com o PocketCode, “então este projeto roda em modo simples. Remova-a ou use uma das de cima.”
Você pode
- Ver quais bibliotecas um projeto declara e se cada uma está incluída.
- Adicionar qualquer uma das quatro bibliotecas incluídas, removê-la ou atualizá-la para a versão incluída.
- Preparar as bibliotecas sem rede: o jar é tirado do app e verificado com SHA-256.
Você não pode, e por quê
- Instalar bibliotecas da internet, do npm, pip, Maven, Gradle ou cargo. O Google Play não permite que um app baixe código executável (jar, dex) de fora do Play, então o catálogo é fechado, vem dentro do app e não usa rede.Google Play
- Adicionar uma coordenada arbitrária ou escolher uma versão: o PocketCode usa a versão que inclui, e o campo
repositoriesdo JSON é lido e ignorado.Google Play - Usar essas bibliotecas a partir de outras linguagens: a lista serve só ao executor Kotlin completo.De propósito
Geradores de backend
Os Geradores de backend escrevem código de servidor a partir de modelos guardados no app. Não é IA: as mesmas configurações sempre dão os mesmos arquivos (os botões Gerar apenas esperam um instante antes). Você lê o resultado no painel e, com um projeto aberto, o salva em backend/.
As abas
| Aba | O que faz |
|---|---|
| Modelo de API | Escolha um Framework (Express.js, FastAPI, Spring Boot, Django REST, Gin, Actix Web, NestJS, Fiber), um Banco de dados (PostgreSQL, MySQL, SQLite, MongoDB, Redis), a Autenticação (None, JWT, OAuth2, API Key, Session-based), as Opções (Docker, CORS, Limite de requisições, Swagger / OpenAPI, Testes, CI/CD), um Nome do projeto, a Porta e a URL base, e então Gerar modelo. O CI/CD adiciona .github/workflows/ci.yml com a etapa de configuração da linguagem do framework. |
| Gerador CRUD | Dê nome a um modelo e à sua tabela, adicione Campos (String, Integer, Float, Boolean, Date, DateTime, UUID, JSON, Text, Enum, Array, Binary, cada um obrigatório ou único), marque Validação, Paginação, Busca, Exclusão lógica, Campos de auditoria ou Testes, e então Gerar CRUD. Express e NestJS dão vários arquivos TypeScript, FastAPI e Django REST vários arquivos Python; Spring Boot, Gin, Actix Web e Fiber dão um único arquivo src/<model>.ts. |
| Migrações | Onze tipos: Create Table, Alter Table, Drop Table, Add Column, Drop Column, Add Index, Drop Index, Add Foreign Key, Rename Table, Rename Column e Seed Data. Adicione Colunas, aperte Gerar migração e leia o SQL da Migração de subida e da Migração de descida, além do Histórico. |
| OpenAPI / Swagger | Preencha o Título, a Versão, os endpoints e a Segurança (Bearer (JWT), Chave de API, Básica), escolha YAML ou JSON e aperte Gerar especificação OpenAPI. |
Salvar no projeto
Salvar no projeto grava os arquivos gerados em backend/ no projeto; as migrações viram backend/up.sql e backend/down.sql, e a especificação backend/openapi.yaml ou backend/openapi.json. Os caminhos não podem sair da pasta do projeto. Se alguns arquivos já existirem, ele pergunta Sobrescrever arquivos? (“N arquivo(s) já existem no projeto e serão sobrescritos.”). Em caso de sucesso diz “Salvos N arquivo(s) em backend/ no projeto”, e se a gravação falhar “Não foi possível salvar os arquivos gerados”. Exige um projeto aberto.
Você pode
- Gerar o modelo de API para oito frameworks, arquivos CRUD, migrações SQL (de subida e de descida) e uma especificação OpenAPI em YAML ou JSON, no aparelho e sem rede.
- Ler o código gerado em uma prévia e selecionar o texto dele.
- Salvar tudo em
backend/no projeto, com uma confirmação antes de sobrescrever.
Você não pode, e por quê
- Ter um servidor simulado funcionando. Na aba Servidor simulado, Arrancar só muda o status para Em execução depois de um segundo e então adiciona requisições inventadas (uma rota e uma latência aleatórias a cada poucos segundos) ao Registro de requisições. Não abre nenhuma porta.Ainda não
- Obter código diferente para NestJS ou Fiber: eles reutilizam os modelos do Express e do Gin.Ainda não
- Obter um CRUD completo para Spring Boot, Gin, Actix Web ou Fiber: só o arquivo TypeScript único de reserva.Ainda não
- Obter migrações específicas de MongoDB ou Redis: as migrações são SQL, e só o PostgreSQL tem tipos de coluna próprios.Ainda não
Geradores de IA
Os Geradores de IA têm cinco abas, mas só três usam IA. API e Schema são modelos offline que rodam no aparelho; Traduzir, Segurança e Desempenho enviam o código que você cola ao seu provedor de IA conectado.
As cinco abas
| Aba | O que faz |
|---|---|
| API · offline | Descreva a API, escolha um de 12 frameworks e aperte Gerar API. Só a primeira palavra significativa da sua descrição é usada, como nome do recurso; você sempre recebe cinco endpoints CRUD e o código. Os 12 frameworks compartilham sete modelos: NestJS e Hono usam o do Express, Flask e Django REST o do FastAPI, Fiber o do Gin. |
| Schema · offline | Escolha um motor (PostgreSQL, MySQL, SQLite, MongoDB, Redis, Firestore) e um formato de saída, e então Gerar esquema. Você sempre recebe uma tabela com o nome da primeira palavra da sua descrição, com id, name, email, status, created_at e updated_at. SQL, Prisma, TypeORM, Django e Mongoose têm gerador próprio; Sequelize, SQLAlchemy, Drizzle e Knex devolvem SQL DDL puro. |
| Traduzir · IA | Cole o código, escolha Origem e Destino entre 16 linguagens (JavaScript, TypeScript, Python, Java, Kotlin, Swift, Go, Rust, C++, C#, Ruby, PHP, Dart, Scala, Lua, R), troque-os com Trocar linguagens e aperte Traduzir código. Se os dois forem iguais, aparece “O idioma de origem e o de destino são o mesmo”. A resposta traz o código traduzido, notas e avisos. |
| Segurança · IA | Cole o código e aperte Procurar vulnerabilidades. O prompt pede uma revisão pelo OWASP Top 10, mapeada em CWE. Você recebe uma pontuação de Risco e achados com severidade (Critical, High, Medium, Low, Info), categoria, referências CWE e OWASP, linha, recomendação e código de correção. |
| Desempenho · IA | Cole o código e aperte Analisar o desempenho. Você recebe uma nota de 0 a 100, complexidade de tempo e de espaço, problemas e Recomendações. |
O que as abas de IA exigem
Um provedor de IA conectado e acesso à internet. Na primeira vez, um aviso pergunta Enviar para <provider>?; Enviar compartilha o código que você colou, Cancelar não compartilha nada. API e Schema não precisam de provedor nem de rede. Antes de gerar, a área de resultado diz “O resultado vai aparecer aqui assim que for gerado.”
Você pode
- Gerar um esqueleto de API REST e um esquema inicial offline.
- Traduzir código entre 16 linguagens, procurar vulnerabilidades nele e analisar seu desempenho, com o seu provedor de IA.
- Ler o resultado no painel e selecionar o texto dele.
Você não pode, e por quê
- Usar a seleção do editor: você cola o código no painel; não existe botão “usar seleção”.Ainda não
- Inserir ou aplicar o resultado no seu arquivo: o painel apenas o mostra.Ainda não
- Obter uma API ou um esquema personalizado a partir da sua descrição: API e Schema usam só a primeira palavra dela, e o resto não muda a saída.Ainda não
- Obter código de Sequelize, SQLAlchemy, Drizzle ou Knex: esses quatro formatos devolvem SQL DDL.Ainda não
- Usar Traduzir, Segurança ou Desempenho sem um provedor conectado ou sem internet.Precisa de rede
Ações de código com IA
A seção IA do menu tem ações que trabalham sobre o seu código: explicar, testes, documentação, código a partir de comentários, refatorar e cinco ações rápidas. Elas enviam o código ao seu provedor de IA conectado, depois de um aviso que você aceita, e mostram a resposta.
As ações
| Ação | O que acontece |
|---|---|
| IA: explicar seleção | Explica o código selecionado. A resposta aparece no painel acoplado como Explicação. |
| IA: gerar testes | Escreve testes para a função no cursor (Testes gerados). Inserir os coloca no cursor. |
| IA: gerar documentação | Escreve a documentação da função no cursor (Documentação). Aplicar coloca a resposta no lugar dessa função. |
| IA: gerar a partir de comentários | Encontra comentários como // TODO: …, // FIXME: …, // GENERATE: …, // AI: …, // IMPLEMENT: …, // STUB: …, # TODO: … ou /* TODO: … */ de pelo menos 10 caracteres e mostra até cinco em uma barra (“N comentário(s) com código gerável”). Toque em um para obter Código gerado, com Inserir. |
| IA: refatorar código | Abre a Refatoração assistida por IA: escolha um de nove tipos e aperte Refatorar. Sem seleção, refatora o arquivo inteiro. A resposta é Código refatorado, com Aplicar, que substitui o código enviado (a seleção, ou o arquivo inteiro se nada estava selecionado). Os nomes dos nove tipos são sempre em espanhol: Extraer y Simplificar, Mejorar Nomenclatura, Añadir Type Safety, Convertir Patrón, Optimizar Rendimiento, Revisión Seguridad, Mejorar Accesibilidad, Manejo de Errores e Personalizado (com Instruções personalizadas). |
| Corrigir erros, Otimizar, Simplificar, Modernizar | Trabalham sobre a seleção. A resposta abre em um painel inferior (“Fixed Code”, “Optimized Code”, “Simplified Code”, “Modernized Code”). Aplicar primeiro mostra uma prévia do diff em vermelho e verde, depois substitui a seleção (ou insere no cursor se a seleção sumiu). |
| Gerar | Trata a seleção como a descrição do que você quer, por exemplo um comentário (// função que retorne a soma de uma lista) ou uma frase simples, e pede o código ao seu provedor de IA. Um painel inferior chamado “Generated Code” mostra A IA está pensando… e depois o código; se o provedor não conseguir responder, o painel mostra o erro e para de carregar, e o ✕ o fecha. Aplicar primeiro mostra a prévia do diff em vermelho e verde, depois insere o código em uma linha nova abaixo da seleção, então a sua descrição fica. Copiar o copia. Na primeira vez, um aviso pergunta Enviar para <provedor>?. |
Perguntar à IA sobre a seleção (Ctrl+I) | Fecha o editor e abre o Chat de IA com a seleção como contexto. |
Aplicar e Inserir no painel acoplado
O painel acoplado tem no máximo 300 dp de altura e um ✕ para fechar. Inserir coloca a resposta no cursor. Aplicar substitui só o trecho de código que foi enviado à IA (a função em Gerar documentação; a seleção em Refatorar, ou o arquivo inteiro se nada estava selecionado) pela resposta, sem prévia e em um único passo de desfazer. Se você mudou esse código enquanto a IA respondia e ele não é mais encontrado, nada é alterado e o painel diz “O código mudou enquanto a IA respondia, por isso o resultado não foi aplicado. Copie-o em vez disso.” O Copiar, ao lado do código gerado, o copia para a área de transferência (“Copiado para a área de transferência”); o painel inferior tem o seu próprio Copiar para a resposta toda.
Você pode
- Explicar, escrever testes, documentar, refatorar, corrigir, otimizar, simplificar ou modernizar código com o seu provedor de IA.
- Transformar um comentário
TODOouGENERATEem código. - Descrever o que você quer em um comentário ou uma frase, selecioná-la e executar Gerar para que o código seja inserido logo abaixo.
- Aplicar a documentação gerada ou uma refatoração só sobre a função ou a seleção que foi enviada, e desfazer em um passo.
- Copiar o código gerado para a área de transferência com Copiar, no painel acoplado e no painel inferior.
- Revisar um diff antes de aplicar uma ação rápida.
- Passar uma seleção para o Chat de IA com Perguntar à IA sobre a seleção.
Você não pode, e por quê
- Executar IA: explicar seleção, Corrigir erros, Otimizar, Simplificar, Modernizar ou Gerar sem nada selecionado: não fazem nada.De propósito
- Ver os tipos de refatoração no seu idioma: os nomes deles são fixos em espanhol.Ainda não
Colaboração ao vivo
A Colaboração ao vivo permite que dois ou mais aparelhos editem um arquivo juntos na mesma rede Wi-Fi. É gratuita, não precisa de conta e não tem servidor: o celular do anfitrião escuta na sua rede local, os convidados o encontram, digitam um código de seis dígitos e o anfitrião os deixa entrar. Nada passa pela internet.
Hospedar uma sessão
- 1Em Hospedar neste dispositivo, digite um nome de sessão e toque em Começar a hospedar. A sessão compartilha o texto do arquivo que você tem aberto.
- 2Dê o Código de emparelhamento de seis dígitos a quem vai entrar (“Diz este código a quem se juntar”).
- 3Quando alguém digitar o código certo, seu aparelho pergunta Alguém quer juntar-se: “<name> escreveu o código correto. Se o deixares entrar, partilhas o ficheiro com o dispositivo dele.” Escolha Deixar entrar ou Recusar. Você tem até 90 segundos.
- 4Encerre com Encerrar sessão no cabeçalho.
Entrar em uma sessão
- 1Abra o painel na mesma Wi-Fi. Pares na sua rede escaneia a LAN (Escaneando a LAN…) e diz Nenhum par encontrado se ninguém estiver hospedando.
- 2Digite os seis dígitos do anfitrião em Código do anfitrião (“Sem ele ninguém entra. A sessão não sai da tua rede.”).
- 3Toque no anfitrião e espere que ele o deixe entrar (até 120 segundos). O conteúdo do arquivo que você tinha aberto é substituído pelo texto do anfitrião.
- 4Saia com Sair no cabeçalho.
Dentro de uma sessão
| Aba | O que mostra |
|---|---|
| Sessão | O Código de emparelhamento (só o anfitrião), o ID da sessão, o Host (o modelo do aparelho), a Porta, os Participantes como “n / 10”, o Chat, a lista de Conectados e a Atividade. |
| Pessoas | Cada participante com uma marca HOST ou (você), Online ou Offline e a “Linha l:c” do cursor. O anfitrião ganha um botão Remover para cada um dos demais. |
| Chat | Mensagens de texto (Digite uma mensagem…); uma mensagem que começa com três crases é mostrada como um trecho de código. |
O que é compartilhado
- O texto do arquivo ativo do anfitrião no momento em que a sessão começa. Uma sessão compartilha um buffer: não a árvore do projeto, nem outros arquivos.
- Depois disso, as edições de todos se mesclam (CRDT) e os cursores remotos aparecem no editor com um nome e uma cor.
- O anfitrião retransmite tudo: os convidados falam com o anfitrião, não entre si.
- Todo convidado que o anfitrião deixa entrar pode editar o texto compartilhado.
- Se a conexão de um convidado cair, o app tenta de novo até seis vezes (de 1 s crescendo até 15 s) e reconcilia o que foi digitado nesse meio-tempo.
Rede e permissão
A partir do Android 13, hospedar e entrar exigem a permissão de dispositivos próximos do Android (nas versões mais novas do Android é uma permissão de rede local). Quando você começa a hospedar, busca ou entra e ela falta, abre-se o diálogo de permissão do próprio Android: permita e toque de novo. Se você recusar, hospedar e entrar continuam recusados (a próxima tentativa mostra a explicação de novo) até que você a permita nas configurações do app no Android. A explicação da permissão e os erros de conexão aparecem no idioma do app.
Você pode
- Hospedar uma sessão que compartilha o arquivo aberto; aprovar ou recusar cada convidado; encerrar a sessão.
- Deixar todo convidado que você aceitar editar o texto compartilhado.
- Responder ao diálogo de permissão do Android no próprio painel, quando ela é necessária, e ler a explicação no idioma do app.
- Remover um convidado com Remover: a conexão dele é fechada e, se ele tentar entrar de novo, o anfitrião o recusa sem perguntar.
- Entrar em um anfitrião na mesma Wi-Fi com o código de seis dígitos.
- Editar o mesmo texto ao mesmo tempo, ver o cursor de todos e conversar no chat.
- Reconectar automaticamente depois de uma queda curta.
Você não pode, e por quê
- Colaborar entre redes diferentes ou pela internet: não há relay nem nuvem.De propósito
- Escolher o seu nome: todo participante, você inclusive, aparece como You, também na caixa de aprovação do anfitrião.Ainda não
- Confiar no limite “n / 10”: ele só é exibido, e o anfitrião não limita o número de convidados.Ainda não
- Compartilhar o terminal ou a depuração com um convidado: foi removido de propósito, porque entregaria um shell a outro aparelho.De propósito
- Compartilhar vários arquivos ou o projeto: uma sessão compartilha um buffer.De propósito
Problemas
Problemas é uma lista única de tudo o que o editor encontrou de errado em todas as abas abertas, agrupado por arquivo. É um diálogo em tela cheia, não um painel inferior.
Ctrl+Shift+M), o contador de problemas na barra de status do editor, ou Ir para › Analisar estilo (lint), que abre o mesmo diálogo com Estilo ligado.Filtros
Filtre por origem — Compilador/LSP, Marcadores e Estilo, cada um com a sua contagem — e por severidade — Erros, Avisos, Info e Dicas. Compilador/LSP e Marcadores vêm ligados por padrão. Estilo (as regras do linter) só é calculado quando você o liga, com “Analisando o estilo…”, e nada é calculado enquanto o diálogo está fechado.
Linhas
Os problemas são deduplicados e ordenados por severidade e depois por linha. Toque em uma linha para ir a “Linha N, Col M”. O grupo do arquivo ativo tem Correções rápidas, que abre o painel de correções rápidas. F8 e Shift+F8 saltam para o próximo ou o anterior erro, aviso ou marcador TODO sem abrir o diálogo. Sem nada para mostrar, aparece Sem problemas.
Você pode
- Ver erros, avisos, informações e dicas do servidor de linguagem, dos marcadores e das regras de estilo de todas as abas abertas em uma só lista.
- Filtrar por origem e por severidade, e ir a uma linha.
- Abrir Correções rápidas para os problemas do arquivo ativo.
Você não pode, e por quê
- Ver problemas de arquivos que não estão abertos em uma aba: só as abas abertas são lidas.De propósito
- Manter Estilo sempre ligado enquanto você digita: ele é calculado sob demanda cada vez que você o liga.De propósito
Esquema
O Esquema é uma coluna à direita do editor que lista as classes, interfaces, funções, blocos de import e seções // region do arquivo e permite ir até elas. Um parser simples o monta; ele não usa o servidor de linguagem.
O que ele reconhece
- Linhas que começam com
class,interface,object,enum class,funoususpend fune abrem um{— declarações no estilo Kotlin. - Blocos de três ou mais linhas consecutivas que começam com
import. - Regiões escritas como
// region Namee fechadas com// endregion. - Ele atualiza 0,8 segundo depois de você parar de digitar.
Como usar
Digite em Filtrar símbolos… (ele casa com parte do texto, não é aproximado) e toque em uma entrada para ir à linha dela. Sem símbolos aparece quando o filtro não casa com nada.
Você pode
- Ver a estrutura de um arquivo Kotlin e ir a qualquer classe, função, bloco de import ou região.
- Filtrar a lista digitando.
Você não pode, e por quê
- Listar declarações escritas como em outras linguagens: um
functionem JavaScript, umdefem Python ou umpublic classem Java não casam. Nesses arquivos você recebe principalmente blocos de import e marcadores// region.Ainda não - Usar o servidor de linguagem para símbolos: o Esquema não usa.Ainda não
Grátis e Pro
Todas as ferramentas desta página são gratuitas. Nenhuma tem limite de plano nem paywall.
| Ferramenta | Grátis | Pro |
|---|---|---|
| Depuração, Explorador de testes, Ferramentas Docker, Monitoramento, Bibliotecas, Geradores de backend | Incluído | Incluído |
| Geradores de IA e ações de código com IA | Incluído; usam o provedor de IA que você conecta | Incluído; o mesmo |
| Colaboração ao vivo | Incluído | Incluído |
| Problemas e Esquema | Incluído | Incluído |
Privacidade e segurança
O que sai do aparelho, ferramenta por ferramenta.
- Depuração, Explorador de testes, Ferramentas Docker, Bibliotecas, Geradores de backend, Problemas e Esquema não enviam seu código a lugar nenhum. Os comandos que executam (
npx,docker pull,docker push…) se comportam como em qualquer shell, com o uso de rede próprio de cada um. - As ações de IA, e as abas Traduzir, Segurança e Desempenho dos Geradores de IA, enviam o código que você seleciona ou cola, com instruções, ao seu provedor de IA pela internet. Antes, um aviso pergunta Enviar para <provider>?; Cancelar não envia nada. API e Schema não usam IA e não enviam nada. Perguntar à IA sobre a seleção abre o Chat de IA, que segue as próprias regras.
- O Monitoramento mede no aparelho e não envia nada. A aba Servidor consulta só o endereço que você informa, com as credenciais que você digita; uma senha ou um token é guardado criptografado com o Android Keystore. Enquanto você não o configurar, “Nada sai deste dispositivo”.
- A Colaboração ao vivo fica na sua rede local: sem servidor, relay nem conta. O tráfego é criptografado (uma troca de chaves ECDH P-256 e depois AES-128-GCM) e um convidado precisa do código de seis dígitos e da aprovação do anfitrião. O anfitrião fica visível para os outros aparelhos da mesma Wi-Fi por design, para que possam encontrá-lo.
- Essa criptografia não protege você de alguém que descubra os seis dígitos e a quem você deixe entrar: o código é curto de propósito para que as pessoas consigam digitá-lo. Depois de cinco tentativas falhas, o anfitrião encerra a sessão.
Limitações
O que as ferramentas não fazem hoje, e por quê.
- A depuração é real só para JavaScript; Avaliar expressão… responde
undefined.Ainda não - O Explorador de testes e as Ferramentas Docker executam comandos pelo aparelho e não trazem Node, Python, Go, Cargo, Gradle nem Docker.Dispositivo
- A aba Cobertura nunca mostra dados, e as ferramentas de snapshot não têm nada sobre o que agir.Ainda não
- Bibliotecas é um catálogo fechado de quatro bibliotecas Kotlin: o Google Play não permite baixar código executável.Google Play
- A aba Servidor simulado é uma maquete com requisições inventadas; NestJS e Fiber reutilizam os modelos do Express e do Gin.Ainda não
- Nos Geradores de IA, API e Schema são modelos offline, não IA.Ainda não
- As abas e ações de IA precisam de um provedor conectado e de internet.Precisa de rede
- A Colaboração ao vivo funciona em uma única rede local, sem relay nem nuvem.De propósito
- O Monitoramento não tem alertas por push, e-mail ou Slack e não alcança um servidor por HTTP puro, a menos que seja local.Dispositivo
- O Esquema só entende declarações no estilo Kotlin.Ainda não
- Alguns textos não são traduzidos: os nomes das abas de depuração estão em inglês, os nove tipos de refatoração em espanhol, e algumas mensagens de erro em espanhol (Explorador de testes) ou em inglês (geradores).Ainda não
Solução de problemas
O Docker não está disponível
O aparelho não tem um comando docker que o PocketCode consiga executar. Instale um onde puder, ou continue usando as abas Dockerfile e Compose, que funcionam sem ele, e execute os comandos em algum lugar com Docker. Tentar de novo repete a verificação.
Nenhum projeto aberto
As Ferramentas Docker trabalham sobre uma pasta de projeto. Abra um projeto e abra a ferramenta de novo.
Nenhuma framework de testes detetada
O projeto não tem um arquivo de configuração que o PocketCode reconheça (jest.config.js, pytest.ini, go.mod, Cargo.toml, phpunit.xml, pubspec.yaml, Package.swift…), e o package.json não menciona Jest, Vitest nem Mocha. O unittest nunca é escolhido automaticamente.
Error ejecutando tests: …
Não foi possível iniciar o comando de teste ou ele foi interrompido por um erro; o texto depois dos dois-pontos é a causa. Se a ferramenta de que o comando precisa (npx, python, go, cargo, ./gradlew…) estiver faltando, o shell avisa em Saída e os testes continuam sem executar. A mensagem está em espanhol, qualquer que seja o seu idioma.
Coverage no disponible para <framework>
O unittest, o RSpec e o Swift XCTest não têm comando de cobertura. Para os outros, o comando roda, mas a aba Cobertura continua vazia.
Watch mode no disponible para <framework>
O modo watch só existe para Jest, Mocha e Vitest.
⚠ <runner> has no debugger support — running without it.
Só arquivos JavaScript (.js, .mjs, .cjs, .jsx) são depurados. Qualquer outro, TypeScript inclusive, apenas executa.
⚠ Could not attach the debugger on port N — the process stays paused.
O painel não conseguiu se conectar ao inspetor do Node. Pare a execução no painel de execução e inicie Depurar arquivo de novo.
Breakpoint not set at <file>:<line> — <cause>
O depurador recusou esse breakpoint; ele aparece como aviso na aba Console e a causa vem depois do travessão. Tente uma linha executável do arquivo que está rodando.
Android blocks unencrypted HTTP to <host>…
Monitoramento › Servidor recusa HTTP puro, a menos que o host seja localhost, 127.0.0.1 ou 10.0.2.2. Use um endereço https:// ou coloque um túnel ou um proxy TLS na frente do servidor.
Couldn’t start reading this app’s log. The system may not allow it on this device.
Monitoramento › Logs lê o logcat deste app; alguns aparelhos não deixam um app fazer isso. As outras abas não são afetadas.
Nenhum serviço de IA conectado. Conecte um provedor nas Configurações para usar os recursos de IA.
As ações de IA e as três abas de IA precisam de um provedor. Adicione uma chave ou entre em Configurações e tente de novo. Veja AI providers, models & keys.
Translation failed: … · Scan failed: … · Analysis failed: …
O provedor respondeu com um erro ou não pôde ser alcançado; o texto depois dos dois-pontos é a causa. As mensagens próprias dos geradores estão em inglês.
O PocketCode precisa de permissão para usar a rede local e encontrar dispositivos próximos… · Falta a permissão de rede local…
A Colaboração ao vivo precisa da permissão de dispositivos próximos (rede local) do Android. O painel a pede com o diálogo do Android quando você hospeda, busca ou entra; se você recusou, permita-a nas configurações do Android para o PocketCode e tente de novo. Até lá, hospedar e entrar são recusados, com este aviso no idioma do app.
Sem resposta. O anfitrião pode ter saído, vocês podem estar em redes diferentes, ou o Android pode estar bloqueando a rede local.
Confira se o anfitrião ainda está com a sessão aberta, se os dois aparelhos estão na mesma Wi-Fi (um roteador que isola os aparelhos entre si vai bloquear) e se a permissão acima foi concedida.
Nenhum par encontrado
Ninguém está hospedando na sua rede agora, ou os aparelhos não estão na mesma Wi-Fi. Peça ao anfitrião que abra Colaboração ao vivo e toque em Começar a hospedar.
Não foi possível entrar em <anfitrião>: … · Não foi possível começar a hospedar: …
O texto depois dos dois-pontos diz o motivo, no idioma do app: Não foi possível entrar na sessão. (código errado ou o anfitrião recusou; o app diz isso do mesmo jeito para qualquer causa, de propósito, para que um código errado não se distinga de uma recusa), Sem resposta… (acima), O outro dispositivo não respondeu como o PocketCode, ou usa uma versão incompatível. Confirme que escolheu a sessão certa e tente de novo. ou, para todo o resto, Não foi possível conectar ao anfitrião.
Muitas tentativas falhadas de entrar. A sessão foi encerrada; crie uma nova para obter outro código.
Depois de cinco tentativas falhas (código errado, recusa ou falha de conexão), o anfitrião encerra a sessão. Comece a hospedar de novo para obter um código novo.
Digite o código de 6 dígitos mostrado pelo anfitrião.
Digite os seis dígitos mostrados em Código de emparelhamento na tela do anfitrião antes de tocar no anfitrião.
O anfitrião encerrou a sessão. Seu arquivo continua aberto exatamente como está.
O anfitrião encerrou a sessão, ou a reconexão falhou depois de seis tentativas (“Não foi possível reconectar ao anfitrião…”). Seu arquivo continua aberto com tudo o que você escreveu, inclusive o que digitou depois da queda.
Sem símbolos
O filtro do Esquema não casa com nada. Limpe o campo. Em arquivos JavaScript, Python ou Java, o Esquema costuma listar só blocos de import e marcadores // region.