Pular para o conteúdo
Início
Docs/Editor de código

Editor de código

O editor abre em tela cheia sobre o app e mantém suas abas quando você o fecha. Ele destaca a sintaxe de 39 linguagens, oferece um servidor de linguagem com um toque para 19 delas, executa código no dispositivo com 17 runners locais e traz paleta de comandos, pré-visualizações, snippets e pequenas ferramentas. Esta página trata do editor em si; o Git e os painéis têm páginas próprias.

PocketCode editor on a tablet with hello.py open: the explorer docked on the left with the open tabs and the TaskCLI project tree, the tab strip, Python code, the symbol bar and the status bar
O editor em um tablet: explorador fixo à esquerda, abas, código, barra de símbolos e barra de status.

O que é e como abrir

O editor é uma camada em tela cheia sobre o app, não uma das cinco páginas do pager. Fechá-lo não fecha suas abas: elas continuam lá quando você o abre de novo.

Formas de abrir

  • Pelo pager. Toque em um arquivo na página Explorador de arquivos: ele abre na página Editor, a quarta do pager. Lá, Abrir no editor o leva para a tela cheia.
  • Pela navegação. Ir para a definição, os resultados de busca, a IA e os workflows abrem um arquivo na linha certa, em uma aba de pré-visualização.
  • Por outro app. Abra ou edite um arquivo de texto com o PocketCode e ele abre como uma aba No dispositivo. Nada é salvo, executado ou trocado até você fazer isso.
  • De dentro do editor. Abrir arquivo do dispositivo… (menu ou paleta) abre o seletor de arquivos do Android.
  • Para sair. Use o gesto de voltar. Com alterações não salvas, aparece Alterações não salvas com Salvar, Descartar e Cancelar; com o salvamento automático desligado, ele avisa que nada foi gravado.
The Editor page of the pager with hello.py open as a tab and the Open in editor button at the bottom
A página Editor do pager, com a própria aba e o botão Abrir no editor, que leva o arquivo para a tela cheia.
Full-screen editor on a phone with hello.py open: top bar, tab, Python code, symbol bar, status bar and the Run panel showing the output and exit 0
O editor em um celular com o painel Executar aberto: barra superior, aba, código, barra de símbolos, barra de status e a saída de hello.py.

Celular, tablet e teclado

OndeO que muda
Menos de 840 dp de largura (celulares, tablets pequenos)O explorador é uma gaveta. Abra-a com Explorador ou com o ▾ no fim da barra de abas.
840 dp de largura ou mais (tablets)O explorador fica fixo à esquerda. O mesmo comando o mostra ou o esconde, e você pode arrastar a borda dele para redimensioná-lo.
Teclado abertoA barra de status se esconde. Em paisagem, a barra superior e a barra de abas também se escondem, para dar espaço ao código.
Modo zenEsconde as barras e as barras do sistema do Android. Veja A tela do editor.
Atalhos como Ctrl+P só funcionam com um teclado físico. No celular, use a tecla de comandos da barra de símbolos, o menu Mais opções ou a paleta: eles executam os mesmos comandos.

Mapa de telas

Uma linha por tela e por painel do editor. Os painéis que têm página própria estão em Git e os outros painéis.

TelaComo chegarO que você pode fazer
Editor (tela cheia)Abrir no editor na página Editor, ou um arquivo aberto por outro appEditar, salvar e executar arquivos. Tudo o que vem abaixo parte daqui.
Barra superiorSempre no topo, exceto no modo zenNome e caminho do arquivo; DevBrowser, Executar, Salvar arquivo e Mais opções. Em Markdown, o botão de pré-visualização substitui os dois primeiros.
Barra de abasSob a barra superiorTrocar, reordenar, fixar e fechar abas; abas de pré-visualização; abrir em tela dividida.
Trilha de navegaçãoConfigurações → Trilha de navegação (desligada por padrão)Caminho e símbolo atual; toque para ir até eles.
Área de código—Realce de sintaxe, multicursor, seleção em coluna, marcadores, snippets, pinça para dar zoom.
Barra de símbolosAcima do tecladoTeclas de símbolos por linguagem, desfazer e refazer, e a tecla de comandos com seu pad de cursor.
Barra de statusParte de baixo da telaLinha e coluna, linguagem, codificação, fins de linha, branch do Git, servidor de linguagem e Problemas.
Modo zenF11 ou Alternar modo zenEsconde as barras; um botão flutuante as traz de volta.
ExploradorExplorador, o ▾ na barra de abas ou Ctrl+Shift+EAbas abertas e árvore do projeto: criar, renomear, excluir, filtrar, marcas do Git.
Menu Mais opçõesA chave inglesa na barra superiorTodos os comandos em seis seções, com busca e acesso rápido.
Paleta de comandos e Quick OpenCtrl+P, Ctrl+Shift+P ou a tecla de comandosAbrir arquivos, executar comandos, ir a uma linha ou a um símbolo.
Localizar e substituirCtrl+F ou Ctrl+HBuscar no arquivo aberto com opções de maiúsculas, palavra inteira, regex e preservar maiúsculas.
Buscar em arquivosCtrl+Shift+FBuscar texto ou uma regex no projeto todo e abrir um resultado.
Diálogos de ir para e refatorarMenu ou paletaIr para linha, Ir para símbolo, definição, espiar, referências, Renomear símbolo, Importação automática, extrair, Correções rápidas, Seletor de cor.
Pré-visualizaçõesBarra superior (Markdown) ou a seção ExibirMarkdown, imagem, visualização em árvore (JSON, YAML) e em tabela (CSV, TSV).
Tela divididaCtrl+\ ou Abrir em tela divididaUm segundo painel somente leitura.
Linguagem, codificação e fins de linhaToque neles na barra de statusEscolher a linguagem de um arquivo, o rótulo da codificação e LF, CRLF ou CR.
Servidores de linguagemO item LSP da barra de status, ou o comandoInstalar, atualizar e remover servidores de um toque; ver qual deles atende este arquivo.
Painel ExecutarExecutar ou F5Saída, parar, stdin, filtrar, copiar e ir até o erro.
Executar com argumentosCtrl+F5 ou o painel ExecutarArgumentos, execuções recentes e rede para os motores WASM.
Tarefas e configurações de execuçãoNo painel ExecutarTarefas do projeto e configurações de execução salvas.
Gerenciador de complementosConfigurações → Compiladores e runtimesInstalar ou remover os runtimes de Lua, Go e Rhai.
Biblioteca de snippetsSeção Editar do menu, ou a paletaSnippets integrados, os seus e os da Vitrine.
Utilitários de desenvolvimentoSeção FerramentasOnze utilitários no dispositivo, que atuam sobre a seleção ou a área de transferência.
Rascunho, Timer Pomodoro, Painel TODOSeção FerramentasUma nota, um timer de trabalho e os comentários TODO/FIXME do projeto.
Atalhos de teclado, NovidadesSeção FerramentasUma lista pesquisável de atalhos e o changelog.
Meus temasSeção Exibir (Pro)Importar, criar e editar temas do editor.
Aparência do editorConfigurações → Aparência → Aparência do editorEscolher o tema, a fonte, o tamanho e o papel de parede do editor.

A tela do editor

De cima para baixo: barra superior, barra de abas, trilha de navegação (se você a ligar), o código, o painel Executar enquanto estiver aberto, a barra de símbolos e a barra de status. Em um tablet, o explorador fica à esquerda.

Barra superior

O que você pode fazer

  • Ler o nome do arquivo e, embaixo dele, a pasta (ou o nome do projeto).
  • Tocar em DevBrowser para abrir o arquivo no navegador integrado, a partir do servidor local do projeto.
  • Tocar em Executar, marcado como experimental, para executar o arquivo (veja Executar código).
  • Tocar em Salvar arquivo. Ele só fica ativo enquanto há alterações não salvas.
  • Em um arquivo Markdown, usar Alternar pré-visualização de Markdown para alternar entre o texto e a página renderizada.
  • Tocar em Mais opções para abrir o menu.

O que você não pode fazer, e por quê

  • Usar DevBrowser e Executar em arquivos abertos por outro app (abas No dispositivo) ou em arquivos Markdown, onde o botão de pré-visualização toma o lugar deles.De propósito
  • Executar um arquivo que não tem runner: Executar fica esmaecido (por exemplo Perl, C++ ou Swift, que ainda não podem ser instalados).Ainda não

Barra de status

Quase todo item é um botão. Desligue a barra inteira em Configurações (Barra de status).

ItemO que faz
Linha e coluna (Ln 12, Col 4)Toque para abrir Ir para linha.
Sel 24Aparece enquanto há texto selecionado e mostra quantos caracteres.
LinguagemAbre o seletor de linguagem deste arquivo.
Codificação (UTF-8)Abre o seletor, mas só o rótulo muda: os arquivos sempre são lidos e gravados em UTF-8.
Fins de linha (LF)Abre o seletor. Escolher um converte o texto, e você pode desfazer.
Branch do GitAbre o Controle de código-fonte.
LSPEstado do servidor de linguagem deste arquivo: pronto, conectando, erro, nenhum, instalando ou não instalado (um ícone de download: toque para instalar). Abre Servidores de linguagem.
ProblemasConta os erros e avisos dos arquivos abertos e abre o painel Problemas.
Guardado / Não guardadoSe o arquivo tem alterações que não estão no disco.

Modo zen

Alternar modo zen (F11 ou o menu) esconde a barra superior, a barra de abas, a trilha de navegação e a barra de status, e também as barras do sistema do próprio Android; a barra de símbolos só aparece com o teclado aberto. Um botão flutuante Sair do modo zen some depois de três segundos, e voltar também sai do modo zen.

Trilha de navegação

Ligue Trilha de navegação em Configurações (vem desligada). Ela mostra o caminho e o símbolo onde está o cursor. Toque em uma pasta para listar as irmãs dela, no arquivo para abrir o esquema, ou em um símbolo para ir até ele.

Motor de edição

O editor é construído sobre o Sora Editor 0.24.6 com gramáticas TextMate.

O que você pode fazer

  • Ver o código enquanto você digita. O realce roda em tempo real, com números de linha, guias de indentação, rolagem fixa, uma lupa ao manter pressionado e zoom por pinça.
  • Ajustar a visão em Configurações (Editor · escrita e Editor · vista). Números de linha e amostras de cor vêm ligados; quebra de linha, minimapa, caracteres invisíveis, uma guia de coluna (na 80), inlay hints e ligaduras de fonte vêm desligados.
  • Editar em vários lugares ao mesmo tempo. Adicionar cursores em todas as ocorrências (Ctrl+Shift+L) coloca um cursor em cada ocorrência da palavra sob o cursor: digite uma vez e vale para todos, toque em ✕ para limpá-los. Funciona com o teclado na tela. Seleção por colunas seleciona um bloco retangular.
  • Desfazer e refazer até 200 passos por aba, compartilhados por Ctrl+Z, pela barra de símbolos e pelo menu. Uma aba que o Android descarrega da memória só mantém o histórico se o arquivo tiver 128.000 caracteres ou menos, e só para 8 abas.
  • Completar e formatar. O autocompletar vem do motor próprio do editor e, quando conectado, do servidor de linguagem. Formatar documento (Shift+Alt+F, exige Formatador de código ligado em Configurações) tenta primeiro o servidor de linguagem e recorre a um formatador integrado para 24 linguagens: Kotlin, Java, JavaScript, TypeScript, C, C++, C#, Dart, Go, Swift, Rust, PHP, Scala, Gradle, Python, XML, HTML, JSON, YAML, CSS, SCSS, Less, SQL e Markdown.
  • Marcar linhas. Alternar marcador (Ctrl+Alt+K), próximo (Ctrl+Alt+L), anterior (Ctrl+Alt+J) e limpar todos. Os marcadores vivem com a aba aberta: fechar a aba ou o app os descarta.
  • Expandir Emmet. Expandir abreviação Emmet (menu ou paleta, sem atalho; a tecla Tab não o dispara) trata tags, .class, #id, >, +, *n, {text}, [attrs], apelidos como ! ou html:5 e atalhos de CSS como m10 ou df. É um subconjunto: não há ^ nem numeração com $.
  • Salvar sem pensar. O salvamento automático vem ligado e grava de forma atômica (veja Arquivos grandes, codificação e salvamento).

O que você não pode fazer, e por quê

  • Dobrar código. Não existe dobra de código porque o Sora Editor 0.24.6 não tem esse recurso; a estrutura só alimenta a trilha de navegação e o esquema.Terceiros

Arquivos grandes, codificação e salvamento

Antes de abrir um arquivo, o editor olha o tamanho e o conteúdo dele. Um arquivo grande ou incomum desliga recursos, ou nem é carregado, para não derrubar o app.

Como um arquivo abre

ArquivoComo abreO que muda
Binário: um byte NUL, ou mais de 30 % de bytes que não são texto nos primeiros 8 KBUm cartão dizendo que o arquivo é binárioVer imagem para imagens, ou Abrir como texto (somente leitura).
80 MB ou maisNão abre: Muito grande para abrir aquiSó Abrir com outro app (ou fechar).
20 MB ou maisSomente leitura, em modo leveVocê pode ler e buscar, mas não editar.
512 KB ou mais, 10.000 linhas ou mais, ou uma linha de 2.000 caracteres ou maisModo leveRealce, minimapa, servidor de linguagem, sugestões de IA, autocompletar, quebra de linha, rolagem fixa, lint, amostras de cor e inlay hints são desligados. Ativar realce mesmo assim traz o realce de volta.
Qualquer outroNormalTudo ligado.
Esses limites são ajustes do próprio editor, para evitar falta de memória: o de 512 KB vem de um caso medido em um único celular, e os de 20 MB e 80 MB não foram medidos de novo. Cada um conta o número exato, então um arquivo de 512 KB já está em modo leve.

Arquivos fora dos seus projetos

  • Abrir arquivo do dispositivo… e Abrir com o PocketCode em outros apps usam o seletor de arquivos do Android, sem permissão de armazenamento. A aba diz No dispositivo.
  • Só abre texto UTF-8 válido de até 20 MB. Um arquivo com bytes NUL é recusado como binário, e um arquivo que não é UTF-8 é recusado para não ser danificado.
  • Se o outro app não permitiu gravação, a aba diz No dispositivo · somente leitura: você pode editar e depois usar Salvar como….
  • Salvar como… (Ctrl+Shift+S) grava a aba em qualquer local, e a aba passa a apontar para esse documento.

Salvamento

TópicoO que acontece
Salvamento automáticoLigado por padrão, a cada 2 segundos. Em Configurações, Intervalo de salvamento automático: Off, 1 s, 2 s, 5 s ou 10 s. As gravações são atômicas.
Fins de linhaLF, CRLF ou CR. Ao salvar, grava-se o estilo da própria aba; um arquivo com fins de linha mistos mantém o de cada linha.
BOMUma marca de ordem de bytes UTF-8 é mantida e gravada de volta.
.editorconfigO da raiz do projeto é lido. indent_style, indent_size, tab_width, end_of_line e max_line_length (a guia de coluna) são aplicados. trim_trailing_whitespace e insert_final_newline são lidos mas não aplicados, e charset só renomeia o rótulo da codificação.
CodificaçãoA barra de status mostra UTF-8. O seletor oferece UTF-8, UTF-16LE, UTF-16BE, ISO-8859-1 e ASCII, mas só o rótulo muda: o PocketCode lê e grava apenas UTF-8. O comando Alterar codificação da paleta, em vez disso, alterna entre sete rótulos (UTF-8, ISO-8859-1, US-ASCII, UTF-16, UTF-16BE, UTF-16LE e Windows-1252), com o mesmo efeito.
Espaços no fim da linhaCada salvamento remove os espaços em branco no fim de todas as linhas. Não há chave para desligar isso, e o .editorconfig também não pode. Em Markdown, isso inclui os dois espaços finais usados para uma quebra de linha forçada.
Mudou no discoSe o arquivo muda no disco enquanto você tem edições não salvas, um aviso diz Mudou no disco e você tem alterações não salvas. com Comparar, Recarregar e Manter o meu.

O que você não pode fazer, e por quê

  • Abrir aqui um arquivo de 80 MB ou mais, nem editar um de 20 MB ou mais.Dispositivo
  • Ler ou gravar outras codificações: o editor só trata texto UTF-8, e o seletor de codificação é um rótulo.Ainda não
  • Manter os espaços no fim da linha ao salvar: eles sempre são removidos.De propósito
  • Abrir um arquivo de outro app que não seja texto UTF-8, tenha bytes NUL ou passe de 20 MB.De propósito

Abas

A barra sob a barra superior fica visível com qualquer número de abas, exceto no modo zen e em paisagem com o teclado aberto.

O que você pode fazer

  • Ver o estado de cada aba. A ativa fica sublinhada, ● marca alterações não salvas, ✕ fecha a ativa, um indicador de carregamento aparece enquanto ela carrega e ⚠ marca um erro de leitura ou uma mudança no disco.
  • Usar abas de pré-visualização. Arquivos abertos pela navegação reaproveitam uma aba em itálico. Ela vira uma aba normal quando você a edita, a salva, toca duas vezes nela ou escolhe Manter aberta. Desligue o comportamento em Configurações (Abrir em pré-visualização ao navegar). Uma aba restaurada nunca volta como pré-visualização.
  • Reordenar. Mantenha pressionado e arraste; ou use Mover para a esquerda e Mover para a direita no menu da aba.
  • Fixar. Fixar e Desafixar no menu da aba. As abas fixadas ficam separadas das outras e os fechamentos em massa nunca as fecham.
  • Fechar em massa. Fechar, Fechar as outras, Fechar as da direita, Fechar as salvas e Fechar todas. Reabrir aba fechada (Ctrl+Shift+T) traz de volta até 20 abas fechadas.
  • Copiar caminhos e dividir. Copiar caminho, Copiar caminho relativo e Abrir em tela dividida estão no menu da aba.
  • Voltar de onde você parou. Abas (inclusive as fixadas), cursor, seleção e rolagem são restaurados por projeto quando você o reabre. Uma aba restaurada só carrega quando você a abre. A página Editor do pager guarda isso.

O que você não pode fazer, e por quê

  • Manter mais de 20 abas: abrir a 21ª fecha a aba menos usada recentemente que não tenha alterações não salvas e mostra … foi fechada (limite de 20 abas) com um desfazer. Se todas as abas têm alterações ou estão fixadas, ela abre mesmo assim, acima do limite.Dispositivo
  • Manter o texto de todas as abas na memória: só 4, 6 ou 10 abas, conforme a memória do celular, ficam carregadas; as outras recarregam quando você troca para elas.Dispositivo

Menu, paleta de comandos e Quick Open

A paleta é um painel fixo no topo, como a do VS Code. Tem quatro modos — Tudo, Comandos, Arquivos e Símbolos — escolhidos pelo primeiro caractere que você digita ou pela forma como a abriu.

Prefixos

Você digitaVocê obtém
Nada (Ctrl+P)Quick Open: arquivos do projeto, com correspondência aproximada por segmentos do caminho e os trechos encontrados em destaque, arquivos recentes primeiro, até 50 resultados.
> (Ctrl+Shift+P)Comandos, comparados com o título, a seção e a descrição. Sem texto, você vê primeiro Frequentes e depois as seções.
: e um númeroIr para essa linha. Só funciona dentro do editor.
@Símbolos do arquivo ativo.
A tecla de comandos (modo Tudo)Arquivos, comandos e símbolos de uma vez.

O Quick Open indexa até 50.000 arquivos. Ele pula pastas ocultas, pastas de build e de dependências, e o que o .gitignore do projeto ignora. Na primeira vez que você abre a paleta, uma dica diz Use > para comandos, : para ir a uma linha, @ para símbolos.

O menu Mais opções

  • A chave inglesa na barra superior abre uma folha com um campo de busca (Buscar ação…) e uma linha de Acessos rápidos: Formatar, Localizar, Ir para símbolo, Controle de código-fonte e Executar no começo, e depois seus comandos Frequentes, quando quatro deles tiverem sido usados pelo menos duas vezes.
  • Seis seções: Editar, Exibir, Ir para, Git, IA e Ferramentas. Ferramentas é desenhada como cartões por grupo: Executar, Projeto, Colaborar, Utilidades e Ajuda e configurações.
  • O menu, a paleta e a folha de atalhos leem de uma única lista de 103 comandos, então concordam entre si. Um comando que não se aplica fica oculto: Executar arquivo sem runner, Dependências ou Implantar projeto sem projeto, marcador seguinte e anterior sem marcadores.
  • Codificação, fins de linha, linguagem e os comandos de aba não estão no menu: use a barra de status, a paleta ou o teclado.

O que cada seção contém

SeçãoComandos
Editar · 28Desfazer, refazer, salvar, Salvar como…, Salvar tudo, formatar, Emmet, localizar e substituir, renomear, extrair método e variável, organizar imports, Correções rápidas, Importação automática, multicursor, seleção por colunas, Biblioteca de snippets, Seletor de cor, mover, duplicar e excluir linha, comentar, ordenar linhas, MAIÚSCULAS e minúsculas.
Exibir · 13Modo zen, editor dividido, caracteres invisíveis, as pré-visualizações de Markdown, imagem, árvore e tabela, Comparar com…, codificação, fins de linha, linguagem, Explorador e Meus temas.
Ir para · 23Abrir arquivo…, Abrir arquivo do dispositivo…, a paleta, Buscar em arquivos, símbolo, esquema, linha, definição, espiar, referências, marcadores, problema seguinte e anterior, Problemas, Analisar estilo (lint) e os comandos de aba.
Git · 3Controle de código-fonte, PRs e issues do GitHub e Histórico local…. Estão descritos em Git e os outros painéis.
IA · 12Perguntar à IA sobre a seleção (Ctrl+I), explicar, gerar testes, documentação ou código a partir de comentários, refatorar, Geradores de IA, corrigir erros, otimizar, simplificar, modernizar e gerar.
Ferramentas · 24Executar, depurar e pontos de interrupção, Executar com argumentos…, Nova configuração de execução, Dependências, Explorador de testes, Abrir no DevBrowser, Ferramentas Docker, Monitoramento, Geradores de backend, Implantar projeto, Colaboração ao vivo, Utilitários de desenvolvimento, Servidores de linguagem, Rascunho, Painel TODO, Timer Pomodoro, Atalhos de teclado, Novidades e Configurações do editor.
A lista completa de atalhos e os presets de teclas estão em Configurações: Configurações · Atalhos de teclado

Buscar em um arquivo, buscar no projeto e se mover pelo código são três ferramentas diferentes.

Localizar e substituir no arquivo

  • Ctrl+F abre Localizar e Ctrl+H abre Localizar e substituir; os dois também estão na seção Editar.
  • Quatro chips de opção: Aa (diferenciar maiúsculas), Palavra inteira, .* (expressões regulares) e AB (preservar maiúsculas ao substituir). Anterior e Próximo percorrem as correspondências; Substituir e Substituir tudo atuam neste arquivo.

Buscar em arquivos

  • Ctrl+Shift+F, ou Buscar em arquivos na seção Ir para, abre uma busca em tela cheia. Digite pelo menos dois caracteres. Ela mostra N correspondências em M arquivos, e tocar em um resultado abre o arquivo naquela linha.
  • Opções: expressão regular, maiúsculas e palavra inteira.
  • Ela percorre o projeto sem node_modules, .git, build, dist, target, out, venv e pastas parecidas, lê só uma lista fixa de extensões de código e texto, pula arquivos de 512 KB ou mais e para em 500 resultados.

Ir para

ComandoO que faz
Ir para linha (Ctrl+G, ou : na paleta)Um número de 1 até a última linha.
Ir para símbolo (@ na paleta)Busca aproximada de funções, classes, interfaces, métodos e outros símbolos do arquivo atual, não do projeto todo.
Ir para definição (F12)Usa o servidor de linguagem e, quando não há nenhum, padrões da linguagem.
Espiar definição (Alt+F12)Mostra a definição com algumas linhas de contexto em um pop-up, sem sair do arquivo.
Localizar referências (Shift+F12)Com servidor de linguagem, as referências que ele encontra, possivelmente em outros arquivos. Sem um, uma busca de texto só no arquivo atual.
Próximo problema e Problema anterior (F8, Shift+F8)Pulam entre os erros e avisos do arquivo.

Refatoração

ComandoO que faz
Renomear símbolo (F2)Mostra uma prévia que separa as Ocorrências no código das Ocorrências em comentários/strings, que não serão renomeadas. Renomear tudo aplica. Com servidor de linguagem, pode editar outros arquivos: os que não estão abertos são gravados no disco e os abertos ganham um passo de desfazer cada. Sem um, renomeia no arquivo atual com um padrão de texto.
Importação automáticaSugere um import para símbolos que ainda não foram importados, a partir de uma tabela integrada de símbolos conhecidos de Kotlin, Java, Python, JavaScript e TypeScript, Go e Rust. Não procura os símbolos do seu próprio projeto. Organizar imports (Ctrl+Shift+O) é um comando separado.
Extrair método, Extrair variávelGerados por linguagem, sem atalho.
Correções rápidas (Ctrl+.)Correções de um toque para os diagnósticos. O editor tem correções próprias para JavaScript e TypeScript, Kotlin, Java, Python, CSS, SCSS e Less, Go e Rust.
Seletor de corAbas Hex, Paleta e Sliders. Inserir coloca #RRGGBB (ou #AARRGGBB) no cursor ou substitui a cor que está sob ele.

O que você não pode fazer, e por quê

  • Substituir entre arquivos, preservar maiúsculas ou manter um histórico de buscas em Buscar em arquivos: ela só busca.Ainda não
  • Buscar em arquivos maiores que 512 KB, obter mais de 500 resultados ou procurar tipos de arquivo fora da lista fixa.De propósito
  • Obter referências do projeto todo sem um servidor de linguagem: ele recorre ao arquivo atual.Ainda não

Linguagens e servidores de linguagem

O realce funciona para 39 linguagens e formatos; 19 deles também têm um servidor de linguagem que você instala com um toque.

Realce de sintaxe

Gramáticas TextMate para C, C++, C#, Kotlin, Java, JavaScript, TypeScript, TypeScript React, Vue, Svelte, Astro, GraphQL, Prisma, Python, Go, Swift, PHP, Ruby, Rust, Dart, XML, HTML, CSS, SCSS, Less, JSON, YAML, Markdown, MDX, SQL, Gradle, Shell, PowerShell, R, Scala, TOML, INI, Properties e Dockerfile. O Gradle compartilha a gramática do Kotlin e o Properties compartilha a do INI, então são 37 gramáticas distintas. O editor reconhece arquivos .gitignore, mas não tem gramática para eles, e um Makefile abre como texto simples. Toque na linguagem na barra de status para defini-la à mão para aquele arquivo (realce, análise e servidor de linguagem a seguem).

Servidores de linguagem de um toque

Um servidor de linguagem dá autocompletar, erros e ir para a definição. O PocketCode os instala de graça, pela folha Servidores de linguagem.

  1. 1Abra um arquivo de uma linguagem compatível e toque no item LSP da barra de status (um ícone de download significa que não está instalado).
  2. 2Em Servidores de linguagem, encontre o servidor do seu arquivo. A folha diz o que ele baixa, de onde, qual o tamanho e a licença.
  3. 3Toque em Instalar. Quando terminar, a barra de status diz que o servidor está pronto.
  4. 4Depois, Atualizar aparece se o app fixa uma versão mais nova e Desinstalar o remove. A folha mostra o total como Instalados: N servidores · ~X no dispositivo.

Cada servidor é um conjunto de pacotes JavaScript do registro público do npm (registry.npmjs.org), fixado em uma versão exata e em uma soma SHA-512 dentro do app. Nenhum servidor do PocketCode participa, e um pacote com código nativo é recusado. Eles rodam no Node.js que acompanha o PocketCode, a partir do armazenamento privado do app. Um servidor que esteja no node_modules do próprio projeto sempre tem preferência.

ServidorPacote · o que atendeDownload · no dispositivo
TypeScript / JavaScripttypescript-language-server 6.0.1 + TypeScript 6.0.3 · TypeScript, TSX, JavaScript5.0 MB · 26.8 MB
PythonPyright 1.1.414 · Python4.2 MB · 19.5 MB
HTML / CSS / JSONvscode-langservers-extracted 4.10.0 · HTML, CSS, SCSS, Less, JSON13.7 MB · 80.5 MB
Markdownvscode-markdown-languageserver 0.5.0 · Markdown1.7 MB · 8.0 MB
Dockerfiledockerfile-language-server-nodejs 0.15.0 · Dockerfile0.4 MB · 2.5 MB
Bash / Shellbash-language-server 5.8.1, sem ShellCheck · Shell3.8 MB · 21.8 MB
YAMLyaml-language-server 1.24.0 · YAML4.2 MB · 19.2 MB
Vue@vue/language-server 3.3.11 · Vue (instala também o servidor de TypeScript)4.0 MB · 23.6 MB
Sveltesvelte-language-server 0.18.4 · Svelte (precisa do servidor de TypeScript)5.5 MB · 27.7 MB
Astro@astrojs/language-server 2.17.1 · Astro (precisa do servidor de TypeScript)7.2 MB · 38.0 MB
GraphQLgraphql-language-service-cli 3.5.0 · GraphQL, só com um arquivo graphql-config19.5 MB · 96.6 MB
MDX@mdx-js/language-server 0.6.4 · MDX (precisa do servidor de TypeScript)2.4 MB · 10.6 MB
Prisma@prisma/language-server 31.12.10 · Prisma6.7 MB · 36.6 MB
Emmet (auxiliar)@olrtg/emmet-language-server 2.8.0 · HTML, CSS, SCSS, Less5.5 MB · 15.1 MB
CSS variables (auxiliar)css-variables-language-server 2.8.4 · CSS, SCSS, Less4.5 MB · 20.0 MB
CSS Modules (auxiliar)cssmodules-language-server 1.5.2 · JavaScript e TypeScript com *.module.css0.7 MB · 3.9 MB
SCSS (Some Sass) (auxiliar)some-sass-language-server 2.3.8 · SCSS0.6 MB · 2.8 MB
Stylelint (auxiliar)stylelint-lsp 2.0.1 + stylelint 15.11 · CSS, quando o projeto configura o Stylelint e o tem em node_modules2.5 MB · 10.6 MB
UnoCSS (auxiliar)unocss-language-server 0.1.9 · projetos com um arquivo uno.config.*2.4 MB · 9.9 MB
Docker Compose (auxiliar)@microsoft/compose-language-service 1.0.0 · Compose YAML0.4 MB · 2.2 MB
GitHub Actions (auxiliar)@actions/languageserver 0.3.61 · .github/workflows/*.yml0.3 MB · 2.0 MB
Angular (auxiliar)@angular/language-server 22.2.0 · HTML e *.component.ts em projetos com angular.json (precisa do servidor de TypeScript)5.0 MB · 28.4 MB

São 22 pacotes: 13 servidores principais e 9 auxiliares. Instalar todos dá cerca de 100 MB para baixar e 506 MB no dispositivo. As 19 linguagens com servidor de um toque são TypeScript, TSX, JavaScript, Python, HTML, CSS, SCSS, Less, JSON, YAML, Shell, Vue, Svelte, Astro, GraphQL, Prisma, MDX, Markdown e Dockerfile.

Bom saber

  • Os auxiliares rodam ao lado do servidor principal, até 2 por vez: cada um é mais um processo Node, então o editor limita o número.
  • O YAML nunca carrega esquemas remotos; o PocketCode não os baixa.
  • O GraphQL não inicia sem um arquivo graphql-config na raiz do projeto.
  • O Tailwind CSS, e o PHP via intelephense, só funcionam quando o projeto os traz no próprio node_modules.
  • Os servidores precisam do Node.js que acompanha o PocketCode para rodar, e de rede apenas para instalar.

O que você não pode fazer, e por quê

  • Instalar servidores para Go, Rust, C e C++, Lua, Swift ou Zig. Os servidores deles são programas nativos, e o Google Play não permite que apps baixem código nativo.Google Play
  • Instalar servidores para Java, Kotlin, Ruby ou Dart. Eles precisam de um ambiente de execução que o PocketCode não inclui.Google Play

Executar código

Tudo roda no seu dispositivo: não há sandbox remota. O app registra 24 runners, mas 17 podem rodar hoje (14 vêm com o app, 3 são downloads opcionais) e cobrem 16 linguagens e tipos de arquivo. Outros seis aparecem no gerenciador de complementos como em breve.

LinguagemRoda comEstado
JavaScript (.js, .mjs, .cjs, .jsx)Node.js v25.3.0Incluído
TypeScript (.ts, .tsx)O mesmo Node.js, que remove os tipos. Não há verificação de tipos nem tsc.Incluído
Python (.py)CPython compilado para WebAssemblyIncluído
Ruby (.rb)Ruby em WebAssemblyIncluído
PHP (.php)PHP em WebAssemblyIncluído
C (.c)TCC 0.9.27, no mesmo processo. Só .cIncluído
Kotlin (.kt, .kts)kotlinc 2.3.21 no dispositivo. Se o projeto declara uma biblioteca que o app não inclui, recorre a um modo de script mais simples, que pode falhar.Incluído
Java (.java)BeanShell 2.0b6, um interpretador em estilo Java, não o javac. Experimental e limitado: sem processamento de anotações, parte da reflexão se comporta de forma diferente e a maior parte do código orientado a objetos não roda.Incluído, experimental
Shell (.sh, .bash, .zsh)O /system/bin/sh do Android (toybox) para os três. Uma ferramenta que ele não traz termina com exit 127.Incluído, limitado
SQL (.sql)O SQLite do Android em um banco temporário por nome de arquivo. Uma primeira linha -- @reset o limpa. Não é o motor do módulo Database.Incluído
HTML (.html)Não renderiza: verifica a estrutura, imprime o caminho file:// e oferece Abrir no DevBrowser, que abre a página a partir do servidor local do projeto.Incluído
Markdown (.md, .markdown, .mdx)Abre a pré-visualização.Incluído
JSON (.json)Valida o arquivo. Não executa nada.Incluído
Lua (.lua)Lua 5.4 em WebAssembly. O editor não tem realce de Lua: os arquivos .lua abrem como texto simples.Download opcional, 0.59 MB
Go (.go)Yaegi 0.16 em WebAssembly: só a biblioteca padrão, um arquivo, sem go get e sem projetos com go.mod.Download opcional, 37.96 MB
Rust (.rs, .rhai)Rhai, uma linguagem de script em estilo Rust. Não é o rustc: sem traits avançados, lifetimes, async nem crates, e um .rs com um Cargo.toml por perto não roda.Download opcional, 1.36 MB
Perl, C++, C#, Zig, Dart, Swift—Ainda não instalável

O painel Executar

  • Toque em Executar (marcado como experimental) ou pressione F5. O painel mostra o estado, o nome da configuração e um selo saída N · Mms quando termina.
  • A saída mantém as cores ANSI e distingue stdout de stderr. Você tem Parar, Deslocamento automático, Filtrar a saída, Copiar a saída e Limpar. Depurar existe para JavaScript no Node; veja Git e os outros painéis.
  • Digite em entrada por stdin… e toque em Enviar para responder a um programa que lê entrada.
  • Quando uma execução falha em uma linha, Ir para o erro (linha N) leva você até ela.
  • O painel guarda as últimas 5.000 linhas e descarta o décimo mais antigo quando estoura.

Executar com argumentos (Ctrl+F5)

  • Digite os argumentos separados por espaços; aspas duplas agrupam e uma barra invertida faz o escape. Não há expansão de variáveis.
  • Recente guarda suas últimas 20 execuções (argumentos, código de saída, tempo) para você poder iniciar uma de novo.
  • Permitir rede nos motores WASM vem desligado: os módulos WebAssembly (Python, Ruby, PHP, Lua, Go, Rhai) não conseguem abrir conexões de rede até você ligá-lo. Node, C e o shell não são afetados.

Tarefas e configurações de execução

  • As Configurações de execução funcionam como um launch.json: nome, runtime, comando, argumentos, diretório de trabalho, variáveis de ambiente (KEY=VALUE) e um comando de pré-execução. Uma delas pode ser a padrão. Ficam guardadas no dispositivo, e Nova configuração de execução só aparece quando o projeto está no disco.
  • Tarefas do projeto lista o que o editor detecta: scripts do package.json, alvos do Makefile, Gradle e Cargo.toml.

Runtimes opcionais (gerenciador de complementos)

  1. 1Abra Configurações e vá à seção Compiladores e runtimes, linha Runtimes de linguagem adicionais.
  2. 2No Gerenciador de complementos (cabeçalho Compiladores opcionais), toque em Instalar em Rhai, Lua 5.4 ou Go (Yaegi WASI). Cancelar interrompe um download e Desinstalar o remove. Abrir a tela não faz nenhuma requisição de rede.
  3. 3Sem conexão, Instalar … a partir de um arquivo… instala um arquivo de complemento que você já tem; o SHA-256 dele também é verificado.

O que você não pode fazer, e por quê

  • Executar Perl, C++, C#, Zig, Dart ou Swift. Eles aparecem no gerenciador de complementos como Em breve: o app não inclui a soma de verificação de que precisa para instalá-los.Ainda não
  • Executar Java com o compilador de verdade: o editor registra um runner de Java completo, mas o compilador dele não está empacotado, então o Java roda no interpretador BeanShell.Ainda não
  • Declarar suas próprias classes com construtores, campos de instância, herança ou interfaces: no Android o BeanShell as compila para bytecode da JVM que o celular não consegue carregar ("can't load this type of class file"). Generics, lambdas, enums, records e printf também não rodam.Dispositivo
  • Executar código em um servidor remoto: toda a execução é local.De propósito
  • Instalar compiladores nativos ou adicionar bibliotecas Maven. Os complementos são arquivos WebAssembly com um SHA-256 fixado no app, porque o Google Play não permite baixar código nativo; as bibliotecas do Kotlin se limitam às incluídas (coroutines, serialization e Okio).Google Play
  • Contar com npm, make, gradle ou cargo nas tarefas do projeto: as tarefas rodam pelo shell do sistema, e o Android não traz essas ferramentas.Dispositivo
  • Ter acesso à rede dentro de programas WebAssembly, a menos que você ligue Permitir rede nos motores WASM.De propósito

Temas e fontes

O tema, a fonte e o tamanho do editor não são definidos dentro do editor: ficam em Configurações.

Onde alterá-los

  1. 1Abra Configurações → Aparência → Aparência do editor. Um exemplo de código ao vivo mostra o tema que você escolheu.
  2. 2Escolha um tema na galeria Temas (filtros Todos, Escuros, Claros e Incluídos), uma Fonte e um tamanho (S, M, L ou XL). A mesma folha define o papel de parede do editor e a opacidade dele.

Os 23 temas integrados

GrupoTemas
Padrão: Igual ao appO editor segue o tema claro ou escuro do app. Não é um tema em si, e por isso a galeria conta 24 temas · 5 incluídos: 23 temas mais esta entrada, sendo esta entrada e os quatro temas gratuitos os cinco incluídos.
Free (4)PocketCode Dark, PocketCode Light, VS Code Dark+, GitHub Light.
Pro (19)Monokai, Dracula, Solarized Dark, Nord, One Dark, Night Owl, GitHub Dark, Catppuccin Mocha, Ayu Mirage, Solarized Light, Gruvbox Dark, Gruvbox Light, Tokyo Night, Material Palenight, Synthwave '84, Cobalt2, Horizon, Panda Syntax e Rosé Pine.

Fontes

Default é a fonte monoespaçada do sistema e é gratuita. As outras sete são Pro: JetBrains Mono, Fira Code, Source Code Pro, Cascadia Code, Roboto Mono, Ubuntu Mono e Inconsolata. A mesma restrição vale para a fonte do terminal. As Ligaduras da fonte (desligadas por padrão) funcionam nas fontes que as têm (Fira Code, JetBrains Mono, Cascadia Code), e o espaçamento entre linhas (1, 1.15, 1.3 ou 1.5) fica ao lado, em Editor · vista.

Meus temas (Pro)

  • Meus temas, na seção Exibir do menu, lista os seus temas: Usar, Editar tema, Renomear e excluir (com confirmação).
  • Importar tema… lê um .tmTheme (plist) ou um tema do VS Code em .json ou .jsonc de até 1 MB. Exige pelo menos as cores de fundo e de texto.
  • Novo tema começa do zero. O Editor de tema tem uma prévia ao vivo, as cores do editor (fundo, texto, cursor, seleção, linha atual, números de linha) e 8 cores de token: palavras-chave, strings, comentários, funções, números, tipos, operadores e anotações.
  • Se o contraste entre texto e fundo ficar abaixo de 4,5:1 (WCAG AA), você recebe um aviso, e um tema importado também o diz: Importado — mas o contraste texto/fundo está abaixo do mínimo recomendado (4,5:1).
  • No Free, o comando mostra a tela Temas importáveis (importar arquivos, um editor básico com prévia ao vivo, uma verificação de contraste) com Fazer upgrade.

O que você não pode fazer, e por quê

  • Usar os 19 temas Pro, as sete fontes Pro ou Meus temas no Free: eles abrem a tela do Pro.Pro
  • Manter mais de 50 temas importados: ao salvar um além do 50º, o mais antigo é descartado em silêncio.De propósito
  • Importar um arquivo de tema com mais de 1 MB, ou que não seja .tmTheme nem JSON do VS Code.De propósito
  • Compartilhar seus temas entre dispositivos: eles ficam guardados só no dispositivo.De propósito

Pré-visualizações e tela dividida

As pré-visualizações abrem pela barra superior ou pela seção Exibir do menu.

Pré-visualizaçãoO que você obtém
Markdown (.md, .markdown, ou um arquivo que você definiu como Markdown)Alternar pré-visualização de Markdown na barra superior. O conversor do próprio editor renderiza títulos, negrito, itálico e tachado, listas e listas de tarefas, citações, links, imagens, tabelas básicas e blocos de código em uma WebView com JavaScript desligado. Os blocos de código são caixas simples sem cores de sintaxe. O MDX não tem pré-visualização.
Imagens (.png, .jpg, .gif, .webp, .bmp, .svg)Pré-visualizar imagem: zoom, deslocamento e uma folha de informações. Arquivos .ico são recusados como tipo não compatível.
JSON e YAMLVisualização em árvore: uma árvore recolhível com filtro de chave e valor e expandir tudo. O JSON precisa começar com { ou [, então comentários não são aceitos. O YAML é lido por um parser mínimo, então âncoras, estilo de fluxo e valores complexos de várias linhas podem não aparecer.
CSV e TSVVisualização em tabela: o delimitador é detectado na primeira linha (, ; tabulação |) e você pode mudá-lo. Busque nas linhas; o subtítulo diz N linhas × M cols.
HTMLExecutar não o renderiza: verifica a estrutura e imprime o caminho file://. O botão de globo na barra superior e o chip Abrir no DevBrowser do painel Executar abrem o arquivo no DevBrowser integrado, a partir do servidor local do projeto.
Tela dividida (Ctrl+\)Alternar divisão do editor mostra um segundo painel: um visualizador somente leitura que espelha o arquivo, ou outro arquivo, com números de linha e toque para ir até a linha. Não é um segundo editor. Abrir em tela dividida está no menu da aba.

Barra de símbolos e toque

A linha acima do teclado foi feita para o celular.

O que você pode fazer

  • Usar um perfil por linguagem. Cada um dos 41 modos de linguagem tem as próprias teclas de símbolos, mais Tab e as setas ↑ ↓.
  • Personalizar. Mais ações (⋯) → Personalizar teclas… permite adicionar, remover e reordenar teclas. Ações extras que você pode adicionar: Tab, ← ↑ ↓ →, mover linha para cima ou para baixo, comentar, comentário de bloco, duplicar linha, ir para linha, ordenar linhas e MAIÚSCULAS ou minúsculas. Cada linguagem mantém seu perfil, e Restaurar padrões traz de volta o de fábrica.
  • Usar a tecla de comandos, na ponta esquerda. Toque nela para abrir a paleta no modo Tudo (Abrir comandos e arquivos). Arraste para mover o cursor com precisão, ou mantenha pressionado e depois arraste para selecionar. O Pad de cursor pode ser desligado no menu ⋯.
  • Desfazer e refazer ficam na ponta direita, ao lado do menu ⋯ com mover linha, duplicar, comentar, comentário de bloco, ir para linha, ordenar e maiúsculas/minúsculas.
  • Aprender fazendo. Cinco dicas de primeiro uso (tecla de comandos, prefixos da paleta, multicursor, zen e a seta do explorador) aparecem uma vez, no máximo uma por sessão. Reiniciar dicas do editor em Configurações as traz de volta.

O que você não pode fazer, e por quê

  • Sincronizar os perfis da barra de símbolos entre dispositivos: eles ficam nas preferências locais do dispositivo.De propósito
  • Ver a barra no modo zen, a menos que o teclado esteja aberto.De propósito

Snippets

A Biblioteca de snippets, na seção Editar, tem duas abas: Locais e Vitrine.

O que você pode fazer

  • Usar os 78 snippets integrados de 17 linguagens (Kotlin 10, JavaScript 10, Python 8, Java 5, Rust 5, TypeScript 4, HTML 4, CSS 4, Go 4, Swift 4, SQL 4, Shell 4, Dart 4, C 2, C++ 2, Ruby 2, PHP 2). Eles são filtrados pela linguagem do arquivo, têm busca e passam entre os campos $1…$0 com Tab.
  • Criar e editar os seus com Adicionar fragmento: nome, prefixo de gatilho, descrição opcional e corpo.
  • Importar e exportar como texto JSON: você cola ou copia, não há arquivo. A importação respeita o mesmo limite de 5 snippets próprios no Free: os que cabem são adicionados e, se algum ficar de fora, aparece o aviso de limite.
  • Explorar a Vitrine, uma lista selecionada do Marketplace do PocketCode, guardada em cache no dispositivo para funcionar offline depois de baixada. Mostra o autor real, os downloads e a avaliação. Para instalar é preciso entrar na conta (explorar não exige) e a instalação passa pelo fluxo normal do Marketplace; o que você instala vai para Locais.

O que você não pode fazer, e por quê

  • Criar, instalar ou importar um sexto snippet próprio no Free: Seu plano permite 5 snippets próprios. Apague algum ou assine o Pro para instalar mais.Pro
  • Instalar no Free um snippet da Vitrine marcado como Pro: Este snippet faz parte do Pro.Pro
  • Sincronizar snippets entre dispositivos: eles ficam nas preferências locais do dispositivo.De propósito

Notas, timer, TODO e utilitários

Pequenos painéis na seção Ferramentas do menu. Eles abrem como folhas sobre o editor.

Rascunho

Uma nota para o app inteiro, não uma por projeto. Salva com Salvar e ao fechar o painel, mostra a contagem de caracteres e pode ser limpa. Fica guardada no dispositivo. O comando se chama Rascunho e o painel tem o título Bloco de notas.

Timer Pomodoro

25 minutos de Foco, 5 de Pausa curta e, depois de quatro rodadas de foco, uma Pausa longa de 15 minutos. Iniciar, Pausar, Reiniciar e Pular; conta as rodadas concluídas e apita quando uma fase termina. O timer pertence ao painel: o PocketCode não roda nenhum serviço e não envia notificação, então mantenha o painel aberto.

Painel TODO

Varre o projeto inteiro em busca de TODO, FIXME, HACK, NOTE, BUG, XXX e WARN em comentários (//, #, /*, <!--, --, %, ;). Filtre por tipo, agrupe por arquivo ou use uma lista simples, e toque para ir até lá. Lê uma lista fixa de extensões de código e texto e pula arquivos de 512.000 bytes ou mais, além de pastas ocultas e de build.

Utilitários de desenvolvimento

Onze ferramentas no dispositivo: Formatador de JSON/XML, Codificar/decodificar Base64, Codificar/decodificar URL, Gerador de UUID, Gerador de hashes (MD5, SHA-1, SHA-256, SHA-512), Conversor de data/hora, Conversor de cor, Gerador de Lorem Ipsum, Testador de regex, Decodificador JWT e Diff. Atuam sobre a sua seleção ou, se não houver, sobre a área de transferência. O resultado tem Copiar, Inserir ou Substituir seleção.

Atalhos de teclado

Uma lista pesquisável (Ctrl+Shift+/) gerada a partir dos comandos reais, com as teclas do seu mapa de teclas.

Novidades

O changelog, sob o subtítulo Changelog & atualizações.

O explorador do editor

O editor tem o próprio explorador, que não é a página Explorador de arquivos do pager. É um painel no estilo do VS Code: uma gaveta nos celulares e fixo à esquerda em telas de 840 dp de largura ou mais. Abra-o com Explorador (Ctrl+Shift+E), com o ▾ na barra de abas ou, em um tablet, com o mesmo comando para mostrar ou esconder.

O que você pode fazer

  • Trocar de aba. A seção Abertas lista as abas abertas, com Salvar tudo e Fechar todas.
  • Navegar pela árvore do projeto, carregada pasta por pasta. Primeiro as pastas, depois os nomes sem diferenciar maiúsculas. .git e .pocketcode nunca são listados; as entradas ignoradas (pelo .gitignore ou por pastas de build e de dependências) aparecem esmaecidas, mas visíveis.
  • Criar. Novo arquivo e Nova pasta; uma / no nome também cria subpastas.
  • Renomear, excluir e copiar. Renomear, Excluir (pergunta antes: O arquivo é excluído do dispositivo. O histórico local dele é mantido., e avisa sobre abas abertas com alterações), Copiar caminho e Copiar caminho relativo.
  • Se orientar. Atualizar, Recolher tudo, Mostrar o arquivo ativo e Filtrar por nome, que usa o índice do Quick Open.
  • Ver o estado do Git. Marcas M modificado, A adicionado, U não rastreado, D excluído e R renomeado, um ponto nas pastas que Contém alterações e um rodapé com a branch, os commits a enviar ou receber e o número de alterações.
  • Redimensionar o painel fixo arrastando a borda: no mínimo 200 dp e no máximo 45 % da janela. A largura é lembrada.

O que você não pode fazer, e por quê

  • Copiar, recortar, colar, duplicar ou selecionar vários arquivos aqui. Isso pertence à página Explorador de arquivos.De propósito
  • Escolher uma ordem de classificação ou ocultar arquivos que começam com ponto: a ordem é fixa e só .git e .pocketcode ficam ocultos.De propósito
  • Ver uma marca de conflito ou de ignorado com letra própria: são cinco marcas, e as entradas ignoradas aparecem esmaecidas.De propósito
  • Navegar pelos arquivos sem um projeto aberto: só aparecem as abas e uma mensagem (Nenhum projeto aberto. Abra um para ver os arquivos dele aqui.).De propósito
The File Explorer page of the pager on a tablet showing the TaskCLI project with 3 folders and 4 files and the icon rail on the left
A página Explorador de arquivos do pager, não o explorador do editor: é outra árvore, com menu próprio.

Estas ferramentas abrem pelo mesmo menu, mas têm páginas próprias.

O quêOnde está descrito
Controle de código-fonte (mostra uma mensagem depois de cada commit, push, pull, merge e stash, e resolve conflitos de merge), PRs e issues do GitHub, blame, histórico de arquivo, comparação de branches, rebase, cherry-pick, stage por hunk, Histórico local… e Comparar com…Git e GitHub
Depuração, Explorador de testes, Ferramentas Docker, Monitoramento, Dependências, Geradores de backend, Geradores de IA e as ações de código com IA, Colaboração ao vivo, Problemas e EsquemaFerramentas do editor
Sua seleção na IA: Perguntar à IA sobre a seleção (Ctrl+I), explicar, testes, documentação, refatorarUsam os provedores que você configura e pedem seu consentimento antes. Aplicar substitui só o código enviado (a função ou a seleção) e avisa se ele mudou nesse meio-tempo; Copiar coloca o resultado na área de transferência. Veja Ferramentas do editor.

Free e Pro

Quase tudo no editor é igual no Free e no Pro. As diferenças, segundo a tabela de planos do app:

RecursoFreePro
Edição, abas, busca, navegação, pré-visualizações, explorador, snippets integrados, rascunho, TODO, utilitários de desenvolvimentoIncluídoIncluído
Realce (39 linguagens) e servidores de linguagem (22 pacotes)IncluídoIncluído
Executar código (17 runners) e os runtimes opcionaisIncluídoIncluído
Git, histórico local e IA com sua própria chaveIncluídoIncluído
Temas do editor4 temas e Igual ao app (o padrão)Todos os 23 temas
Meus temas: importar .tmTheme e JSON do VS Code, criar e editar com verificação de contrasteNãoSim
Fontes do editor e do terminalDefault (monoespaçada do sistema)Default e mais 7
Snippets próprios5Sem limite do plano
Snippets da Vitrine marcados como ProNãoSim
Se um plano Pro termina, um tema Pro do editor (integrado ou importado) volta para Igual ao app, e também os gratuitos PocketCode Dark e PocketCode Light (só Igual ao app, VS Code Dark+ e GitHub Light são mantidos); qualquer fonte do editor diferente de Default volta para Default; nada mais no editor muda, e a fonte e o tema do terminal não são redefinidos. A tabela de planos do app inteiro está em Planos e preços

Atalhos de teclado

Essas teclas só funcionam com um teclado físico (Ctrl, ou Cmd quando o teclado o tem). No celular, use a tecla de comandos, o menu ou a paleta. Ctrl+P e Ctrl+Shift+P seguem o mapa de teclas que você escolhe em Configurações; as demais são as teclas abaixo.

TeclasAção
Ctrl+P · Ctrl+Shift+PQuick Open · Paleta de comandos
Ctrl+S · Ctrl+Shift+S · Ctrl+Alt+SSalvar · Salvar como… · Salvar tudo
Ctrl+Z · Ctrl+Shift+Z (ou Ctrl+Y)Desfazer · Refazer
Ctrl+F · Ctrl+H · Ctrl+Shift+FLocalizar · Localizar e substituir · Buscar em arquivos
Ctrl+G · F12 · Alt+F12 · Shift+F12Ir para linha · Definição · Espiar · Referências
F2 · Ctrl+. · Ctrl+Shift+ORenomear símbolo · Correções rápidas · Organizar imports
Ctrl+Shift+LAdicionar cursores em todas as ocorrências
Ctrl+D · Ctrl+Shift+K · Ctrl+/Duplicar linha · Excluir linha · Alternar comentário
Ctrl+Shift+↑ · Ctrl+Shift+↓Mover linha para cima · Mover linha para baixo
Ctrl+] · Ctrl+[Aumentar o recuo da seleção · Diminuir o recuo da seleção
Shift+Alt+FFormatar documento
Ctrl+Shift+E · Ctrl+\ · F11Explorador · Editor dividido · Modo zen
Ctrl+Tab · Ctrl+Shift+Tab · Ctrl+W · Ctrl+Shift+TAba seguinte · Aba anterior · Fechar aba · Reabrir aba fechada
Ctrl+Alt+MMudar o modo de linguagem…
Ctrl+Alt+K · Ctrl+Alt+L · Ctrl+Alt+JAlternar marcador · marcador seguinte · marcador anterior
F8 · Shift+F8 · Ctrl+Shift+MPróximo problema · Problema anterior · Problemas
F5 · Ctrl+F5 · Shift+F5Executar arquivo · Executar com argumentos… · Depurar arquivo
Ctrl+I · Ctrl+Shift+GPerguntar à IA sobre a seleção · Controle de código-fonte
Ctrl+Shift+/ · Ctrl+,Atalhos de teclado · Configurações do editor

Privacidade e segurança

  • Seu código fica no dispositivo. Editar, executar, realçar, pré-visualizar e usar as pequenas ferramentas não exige conexão. Só instalar servidores de linguagem, complementos e snippets da Vitrine exige.
  • O que é baixado é fixado. Os servidores de linguagem vêm do registro público do npm (registry.npmjs.org) e os complementos do repositório público do GitHub Pocket-Code-App/pocketcode-plugins. O PocketCode não opera nenhum servidor no meio. Cada arquivo é conferido com uma soma de verificação fixada dentro do app (SHA-512 para servidores, SHA-256 para complementos) e é recusado se não bater.
  • Executar é local. Não há sandbox remota, e os programas WebAssembly não têm rede até você ligar Permitir rede nos motores WASM.
  • Suas notas e os dados do editor ficam no dispositivo. O rascunho, os snippets próprios, os perfis da barra de símbolos, o histórico de execuções, as configurações de execução, os temas importados e a linguagem escolhida por arquivo ficam nas preferências locais do app e não são sincronizados entre dispositivos.
  • Arquivos de outros apps abrem pelo seletor de arquivos do Android, sem permissão de armazenamento: o PocketCode só acessa o arquivo que você escolhe ou compartilha.
  • As ações de IA perguntam antes. Elas enviam o código que você seleciona ao provedor que você configurou, com a sua própria chave, e cada provedor pede seu consentimento antes de qualquer envio.

Limitações

O que o editor não consegue fazer hoje, e por quê. As seções acima trazem mais detalhes de cada ferramenta.

  • Não existe dobra de código: o motor do editor não a tem.Terceiros
  • O editor lê e grava apenas UTF-8; o seletor de codificação muda um rótulo.Ainda não
  • Cada salvamento remove os espaços no fim de todas as linhas, e o .editorconfig não pode desligar isso.De propósito
  • Arquivos de 512 KB ou mais, 10.000 linhas ou mais, ou com uma linha de 2.000 caracteres ou mais abrem em modo leve; os de 20 MB ou mais são somente leitura; os de 80 MB ou mais não abrem. Os limites são ajustes, não garantias.Dispositivo
  • 20 abas é o limite flexível, e só 4, 6 ou 10 mantêm o texto na memória.Dispositivo
  • Buscar em arquivos não substitui, não guarda histórico, para em 500 resultados e pula arquivos de 512 KB ou mais.Ainda não
  • Não há servidor de linguagem de um toque para Go, Rust, C e C++, Lua, Swift ou Zig (programas nativos), nem para Java, Kotlin, Ruby ou Dart (precisam de um ambiente de execução que o PocketCode não inclui).Google Play
  • Perl, C++, C#, Zig, Dart e Swift não rodam: os complementos deles aparecem como em breve.Ainda não
  • O Java roda no interpretador BeanShell, não em um compilador.Ainda não
  • O TypeScript roda com os tipos removidos, sem verificação de tipos; o Rust roda como script Rhai; o Go roda um arquivo da biblioteca padrão sem go.mod.De propósito
  • As tarefas do projeto precisam de npm, make, gradle ou cargo no celular, e o Android não os traz.Dispositivo
  • A pré-visualização de Markdown não colore blocos de código, e o HTML não é renderizado por Executar.Ainda não
  • A Importação automática só conhece uma tabela de símbolos conhecidos de seis linguagens, e o Emmet é um subconjunto.Ainda não
  • Temas Pro, fontes Pro, Meus temas, mais de 5 snippets próprios e snippets Pro da Vitrine exigem o Pro.Pro
  • Os temas importados são limitados a 50 (o mais antigo é descartado sem aviso) e a 1 MB cada.De propósito
  • O Quick Open indexa até 50.000 arquivos e mostra 50 resultados.De propósito

Solução de problemas

Modo leve (…): sem realce, minimapa, LSP ou sugestões de IA

O arquivo tem 512 KB ou mais, 10.000 linhas ou mais, ou uma linha de 2.000 caracteres ou mais (típico de código minificado). Você ainda pode editar. Toque em Ativar realce mesmo assim para trazer o realce de volta, ao custo da velocidade.

Muito grande para abrir aqui (…)

O arquivo tem 80 MB ou mais. Só é oferecido Abrir com outro app. A partir de 20 MB, um arquivo abre como Somente leitura.

… é um arquivo binário

Os primeiros 8 KB têm um byte NUL ou bytes demais que não são texto. Ver imagem mostra imagens; Abrir como texto (somente leitura) mostra os bytes brutos como texto.

Mudou no disco e você tem alterações não salvas.

O arquivo mudou no disco depois que você começou a editar. Comparar mostra as diferenças, Recarregar descarta suas edições e Manter o meu as mantém.

Não foi possível salvar

Suas alterações continuam no editor. A mensagem que vem em seguida diz o motivo, por exemplo uma permissão ausente. Corrija e toque em Salvar arquivo de novo; enquanto o erro persiste, o botão diz Tentar salvar novamente, erro ao salvar.

Há N abas abertas e nenhuma pode ser fechada sem perder alterações. Salve ou feche alguma.

O editor mantém até 20 abas e fecha a menos usada recentemente que não tenha alterações para abrir espaço, mas todas as abas têm alterações ou estão fixadas. Ele abriu seu arquivo mesmo assim, acima do limite. Salve ou feche algumas abas.

… foi fechada (limite de 20 abas)

Abrir a 21ª aba fechou a aba menos usada recentemente que não tinha alterações não salvas. A mensagem tem um Desfazer.

O arquivo não é texto UTF-8; não foi aberto para não danificá-lo.

Os arquivos de outros apps e Abrir arquivo do dispositivo… precisam ser UTF-8 válido. O PocketCode recusa qualquer outra coisa em vez de reescrever bytes que não entende. Converta o arquivo para UTF-8 em outro lugar antes.

O arquivo é grande demais para abrir (limite: 20 MB).

Os arquivos fora dos seus projetos, abertos pelo seletor do Android, são limitados a 20 MB. Os arquivos dentro de um projeto seguem os modos de tamanho de Arquivos grandes, codificação e salvamento.

Este arquivo é somente leitura: o app que o compartilhou não permite alterações. Use «Salvar como…» para manter suas alterações em um novo arquivo.

Você ainda pode editar a aba. Use Salvar como… (Ctrl+Shift+S) para gravar o resultado em um lugar onde seja possível escrever.

Não foi possível acessar o registro do npm. Verifique a conexão e tente de novo.

Os servidores de linguagem são instalados a partir de registry.npmjs.org. Tente de novo em uma conexão que o alcance. Se disser O registro do npm recusou o download. Tente mais tarde., o registro respondeu com um erro.

O download não correspondia à soma de verificação esperada e foi descartado.

O arquivo não bateu com o SHA-512 fixado no app, então nada foi instalado. Tente de novo, de preferência em outra conexão.

Um pacote continha código nativo e não foi instalado.

O instalador recusa de propósito código nativo e conteúdo de pacote não seguro (Um pacote tinha conteúdo não seguro e não foi instalado.): é assim que o PocketCode segue as regras do Google Play.

Não há espaço livre suficiente no dispositivo.

Um servidor precisa de até cerca de 97 MB no dispositivo (GraphQL), e os 22 juntos, cerca de 506 MB. Libere espaço ou desinstale os servidores que você não usa.

O Node.js não está disponível neste dispositivo, então os servidores de linguagem não podem ser executados.

Os servidores rodam no Node.js que acompanha o PocketCode, então nenhum consegue iniciar. O realce e as verificações do próprio editor continuam funcionando.

O servidor de linguagem parou com um erro.

Abra Servidores de linguagem para ver qual é e reinstale-o ou atualize-o. No caso do GraphQL, confira se o projeto tem um arquivo graphql-config.

Go não tem servidor com um toque: gopls é um programa nativo, e o Google Play não permite que apps baixem código nativo.

O mesmo vale para Rust, C e C++, Lua, Swift e Zig. Para Java, Kotlin, Ruby e Dart, a mensagem diz que o servidor precisa de um ambiente de execução que o PocketCode não inclui. O realce e as verificações integradas do editor continuam funcionando.

Formato não reconhecido. Escolha um arquivo de tema .tmTheme ou JSON do VS Code.

Só temas .tmTheme e .json ou .jsonc do VS Code podem ser importados. Se disser O arquivo é grande demais para um tema de cores., ele passa de 1 MB, e Não foi possível ler o arquivo — parece corrompido ou malformado. significa que não dá para lê-lo.

Faltam cores obrigatórias de editor no tema (fundo/texto).

O arquivo não tem cor de fundo ou de texto. Adicione-as no arquivo, ou monte o tema em Novo tema.

Importado — mas o contraste texto/fundo está abaixo do mínimo recomendado (4,5:1).

O tema foi importado, mas parte do código pode ficar difícil de ler. Abra Editar tema e ajuste as cores até o aviso sumir.

Seu plano permite 5 snippets próprios. Apague algum ou assine o Pro para instalar mais.

O Free tem um limite de 5 snippets próprios. Apague um, ou passe para o Pro. Se aparecer Sem conexão e os snippets ainda não foram baixados, abra a Vitrine uma vez online: depois disso ela também funciona offline. Entre para instalar snippets do Marketplace significa que instalar exige uma conta, e explorar não.

Esse nome não é válido · Já existe um arquivo ou uma pasta com esse nome · Esse caminho está fora do projeto

São as verificações do explorador ao criar ou renomear. Use um nome sem caracteres proibidos, que ainda não exista, e um caminho que fique dentro do projeto.

O botão Executar está esmaecido

O arquivo não tem um runner que possa executá-lo agora: é um tipo sem runner, um runtime que você não instalou (Lua, Go, Rhai) ou um dos seis que ainda não podem ser instalados. Além disso, Executar não aparece em arquivos Markdown nem em abas No dispositivo. Veja Executar código.