Cortar espaços à direita no Xcode

103

Existe uma maneira de forçar o Xcode a cortar os espaços em branco à direita quando eu salvar o arquivo?

Estou usando a versão 3.1.3, se isso importa.

Alexander Gladysh
fonte

Respostas:

22

Você pode criar um script e vinculá-lo a um atalho de teclado:

  • Selecione o Menu Scripts> Editar Scripts do Usuário ...
  • Pressione o botão + e selecione New Shell Script
  • Dê a ele um nome como "Remover espaços à direita" e um atalho como ⌃⇧R.
  • Defina a entrada como "Seleção" e a saída como "Substituir seleção"

Em seguida, insira o seguinte script:

#!/usr/bin/perl

while (<>) {
    s/\s+$//;
    print "$_\n";
}
Darren
fonte
9
Ah, sim, tão simples ... Obrigado. Existe alguma maneira de associar isso ao salvamento de arquivo?
Alexander Gladysh,
Para trabalhar em um arquivo inteiro (que provavelmente é o que você gostaria de fazer), defina Entrada como "Documento inteiro" e Saída como "Substituir Conteúdo do Documento". No entanto, isso deixa o cursor na parte inferior do arquivo.
SMBiggs
7
Essa resposta é obsoleta no Xcode 4.4. Veja a resposta de Martin Stolz.
Basil Bourque
239

A partir do Xcode 4.4, os espaços em branco serão cortados automaticamente por padrão, a menos que a linha contenha apenas espaços em branco. Você também pode ativar Including whitespace-only linespara corrigir isso, que não está ativo por padrão.

Vamos para Xcode > Preferences > Text Editing > While editing

Captura de tela das preferências do Xcode

Martin Stolz
fonte
15
Essa configuração apenas apara o espaço em branco à direita de uma linha depois que o cursor sai dessa linha. Portanto, ele ainda permite que você salve um arquivo com uma linha de espaço em branco à direita, se o cursor estiver nessa linha ao salvar.
ma11hew28
7
Por que diabos este não é o padrão? Se você tiver um arquivo existente com espaço em branco à direita, basta marcar tudo, cortar, salvar, colar, salvar.
friederbluemle
Isso precisa substituir a solução de script hacky nesta resposta.
Urda de
7
Usar este + ctrl-iem todos os arquivos existentes cuida dos espaços em branco à direita
Kirualex
24

Estou usando o Google Toolbox para Mac Xcode Plugin , ele adiciona um parâmetro "Corrigir espaço em branco ao salvar" que apara os espaços em branco à direita. Eu perdi muito isso do emacs.

Maxime
fonte
1
Também estou usando este plugin. Ele faz o que diz.
Nathan,
Seria perfeito, infelizmente não funciona no Xcode 4 no momento :(
deepwell
6
Agora temos algum suporte básico para o Xcode 4. Veja nosso novo plugin
dmaclach
1
Onde posso encontrar o parâmetro "Espaço em branco correto ao salvar"?
jhasse,
Eu finalmente consegui fazer o GTM funcionar no Xcode 4.3.2, mas as instruções de instalação do wiki do GTM pareciam inválidas. Em vez de colocar o .xcplugin ~/Library/Application Support/Developer/Shared/Xcode/Plug-ins(conforme as instruções do Google), tive que colocá-lo /Applications/Xcode.app/Contents/PlugInse reiniciar o Xcode.
Kristofer Sommestad
3

Para o Xcode 8, instalei o swimat plug-in Xcode, para formatar o código Swift, que removeu todos os espaços à direita e linhas apenas em branco.

Métodos de Instalação

  1. Instale via casco caseiro:

    brew cask install swimat
  2. Baixe o aplicativo diretamente:
    https://github.com/Jintin/Swimat/releases/download/v1.3.5/Swimat.zip

  3. Clone extension branch e arquive no Mac App.

Uso

Depois de instalado, você pode executar o Swimat no Xcode via Editor -> Swimat -> Format.

Moollaza
fonte
esta ferramenta não remove linhas em branco.
Mehdico
1

Isso não é possível no Xcode 3.2

Editar:

Respondi a essa pergunta brevemente porque não há como fazer isso da maneira certa .

Claro, como é um software, você pode fazer qualquer coisa: começando com hacks do Input Manager ou outras formas de injeção de código para interceptar o teclado em todo o sistema, você pode alterar seu sistema local para fazer qualquer coisa a qualquer hora. Você pode configurar uma ação de pasta Applescript (arrgh) ou usar um launch demon e o recurso FSEvents para monitorar seus arquivos de código-fonte.

Você também pode adicionar alguns scripts ao Xcode (scripts de usuário no menu, fases de script em destinos, ações personalizadas no organizador, há até a possibilidade muito desconhecida de um script de inicialização), mas todas essas soluções são falhas, uma vez que envolvem o usuário ou configuração personalizada na máquina do usuário.

Não conheço uma solução que simplesmente funcione depois de verificar um projeto do SCM. Acredito que haja necessidade desse e de scripts de personalização semelhantes, então apresentei um bug (radar 7203835, "Recurso: mais gatilhos de script de usuário no fluxo de trabalho do Xcode"). Eu não recebi nenhum feedback ainda.

Aqui está o texto completo da entrada do radar:

Seria útil ter mais locais para executar scripts no Xcode.

Exemplos:

  1. Scripts de
    pré-compilação Os scripts de pré-compilação podem ser usados ​​para construir pré-requisitos como arquivos * .xcconfig ou cabeçalhos config.h. Isso não é possível com um "Run Script Build phase", uma vez que o rastreamento de dependência ocorre antes que qualquer fase de build seja disparada.

  2. Scripts de pós-compilação
    Semelhante ao acima, mas rodando após o término da compilação (incluindo assinatura de código, etc.). Útil para embalagens adicionais, verificação de validade etc.

  3. Scripts de confirmação pré / pós SCM.
    Para verificar a integridade do projeto.

  4. Script de salvamento de arquivo anterior / posterior.
    Para verificar / alterar um arquivo antes de salvá-lo. Por exemplo, execute embelezadores de corpo

  5. Ações de projeto personalizadas.
    Estou ciente da capacidade do organizador de definir ações arbitrárias. Mas este é um recurso por usuário (não faz parte do projeto). Eu gostaria de definir ações como construir ou limpar que aparecem no menu de construção e que fazem parte de um projeto.

Nikolai Ruhe
fonte
Editado para responder por que as soluções alternativas são insatisfatórias neste caso
Nikolai Ruhe,
2
Obrigado. Embora eu seja a favor de fazer isso da maneira correta, eu me contentaria com qualquer hack não muito intrusivo. Esses espaços em branco extras são realmente irritantes.
Alexander Gladysh
0

A maneira melhor e mais fácil sem usar scripts, hacks e muito mais. Basta ir para Localizar e substituir A maneira melhor e mais fácil sem usar scripts, hacks e muito mais. Basta ir em Localizar e substituir e pressionar "alt / opção + espaço" e pressionar o botão "espaço" na barra de substituição e clicar em substituir tudo. Ele substituirá os espaços em branco por espaços normais e o aviso / erro desaparecerá !!

H2zee
fonte
1
Isso remove apenas os espaços finais solicitados na pergunta?
Blastfurnace 01 de