Existe um atalho para fazer um comentário de bloco no Xcode?

152

Estou escrevendo código C compatível com ANSI e, portanto, não posso usar o //comentário line ( ). Estou usando o Xcode. No Sublime Text e no Eclipse, e acho que na maioria dos outros IDEs, existem atalhos de teclado separados para comentários de linha e comentários de bloco ( /**/). No entanto, não vejo isso no Xcode - na verdade, nem vejo uma opção de menu para adicionar um comentário em bloco. Simplesmente não é suportado no Xcode? Certamente isso pareceria uma decisão esfarrapada.

limp_chimp
fonte
Você está mais perto de uma solução? Além disso, uma pergunta idêntica foi feita há mais de um ano (e, infelizmente, também não foi respondida).
Blaz
E estabelecer um atalho de tecla / atalho também beneficiaria outros idiomas, já que os comentários em bloco poderiam, por exemplo, servir como uma marca visual para o código antigo, mas ainda não excluído, enquanto os //comentários regulares permaneceriam os comentários "reais". Caso contrário, você não pode dizer (de relance) o que é o quê.
Blaz
Oi! Você encontrou o atalho? obrigado
Frade
Ainda procurando por algo assim. O Eclipse é inteligente o suficiente para construí-lo depois /* + Return, mas o Xcode apenas o despeja na posição da coluna 0 na próxima linha.
Craig Otis
Não posso acreditar que, mesmo no Xcode 9, que envolve tudo ("" ((), {}, [])), não há como fazer o mesmo para comentários em bloco ... Ano após ano, com todos os lançamentos. Se 'trechos de código' poderia usar algum sinal de 'seleção', seria também grande ...
bauerMusic

Respostas:

231

Experimente command+ /. Funciona para mim.

Então, você apenas destaca o bloco de código que deseja comentar e pressiona essas duas teclas.

Stefan Vasiljevic
fonte
39
Eu não acho que você leu minha pergunta, ou você teria visto que eu disse explicitamente que não poderia usar o //comentário, que é o que comando / produz.
Limp_chimp #
1
Qual é o atalho para descomentar o bloco?
Nizam
13
@Nizam Basta pressionar Command+ Shift+ 7, ie Command+ /, novamente.
muenchdo
4
Independentemente do fato de esta resposta não abordar a pergunta específica, ela chega bem perto do topo de uma pesquisa no google por "atalho para comentário do Xcode", portanto deve haver alguma relevância - admito que depois de ler esta pergunta, esse foi o caminho certo responda, então talvez sua pergunta seja um pouco complicada. Eu consideraria o comando + / de fato comenta um bloco, de acordo com o título da sua pergunta. De qualquer forma, esta é uma solução extremamente útil - obrigado.
Nocarrier 21/05
10
isso parece ter parado de funcionar no Xcode 8.0, onde, oh, para onde Cmd-/foi?
bshirley
41

ATUALIZAR:

Como eu era preguiçoso e não implementava totalmente minha solução, procurei e encontrei o BlockComment for Xcode , um plug-in lançado recentemente ( junho de 2017 ). Não se preocupe com a minha solução, este plugin funciona lindamente, e eu recomendo.

RESPOSTA ORIGINAL:

Nenhuma das opções acima funcionou para mim no Xcode 7 e 8 , então eu:

  1. Serviço de Automator criado usando AppleScript
  2. Verifique se "Saída substitui o texto selecionado" está marcada
  3. Digite o seguinte código:

    on run {input, parameters}
    return "/*\n" & (input as string) & "*/"
    end run

insira a descrição da imagem aqui

Agora você pode acessar esse serviço através do menu Xcode - Services, ou clicando com o botão direito do mouse no bloco de código selecionado que deseja comentar ou fornecendo um atalho em Preferências do Sistema.

Nikola Milicevic
fonte
1
Você é um gênio. Tentei implementar todas as outras respostas neste post, incluindo a solução 'Automator -> Run Shell Script', e nenhuma delas funcionou, exceto a sua. AppleScript vence o dia. Estou votando sua resposta ...
Charles Robertson
Legal. Que bom que você ajudou :) #
392 Nikola Milicevic
Sei que isso é um pouco atrevido, mas você saberia como posso preservar o recuo ao aplicar esses comentários em bloco? No XCode, por exemplo, a maior parte do meu código é recuado até certo ponto, e parece mais limpo quando o comentário preserva o recuo. Isso imitaria o comportamento do estilo de comentário de bloco nativo. Obrigado ...
Charles Robertson
Hmm, você poderia fornecer uma captura de tela? Porque deve preservar o recuo. E para obter melhores resultados, você deve selecionar linhas inteiras, como mostrado no exemplo.
Nikola Milicevic
Como você bloqueia os comentários?
Abhishek Bedi
36

Agora, com o xCode 8, você pode:

+ +/

para gerar automaticamente um comentário de documento.

Fonte: https://twitter.com/felix_schwarz/status/774166330161233920

Beninho85
fonte
1
Isso não funciona para mim ao fazê-lo com Swift e pressionando, opção, comando, /. O que eu fiz errado? Acabei de chegar \\\ Descriptione não um bloco doc com @params etc
Jonnny
É porque sua função não fornece parâmetros
Beninho85 11/11
23

Agora existe um plug-in do Xcode que permite isso: CComment .

A maneira mais fácil de instalar isso é usar o incrível gerenciador de plugins Alcatraz para Xcode .

EDIT A Apple, infelizmente (e erroneamente, IMHO) aposentou o antigo modelo de plug-in com o Xcode 8. O novo sistema de plug-ins é bastante limitado, mas deve permitir o desenvolvimento de um plug-in como este novamente. Para qualquer pessoa interessada em fazer isso, assista à sessão 414 da WWDC 2016 . Além disso, arquive radares da API para plug-ins que você gostaria de escrever ou ver.

fzwo
fonte
Obrigado, @BugsBunny - minha resposta é muito mais recente que a pergunta, então acho que ninguém a viu até agora :) #
fzwo 28/05
2
Isso não funciona a partir do Xcode 6.3 (Versão 6.3.1 (6D1002)) em diante. Nenhum plugin funciona.
Abhishek Bedi 25/05
@AbhishekBedi Consulte stackoverflow.com/questions/30361228/… para obter uma solução geral de problemas de plug-ins para obter novas versões do Xcode.
fzwo
12

UPDATE: Atualização do Xcode 8

Agora, com o xcode 8, você pode:

+ +/

Nota: O método abaixo não funcionará na versão xcode => 8

Etapas muito simples para adicionar a funcionalidade Bloquear comentário a qualquer editor do Mac OS X

  1. Open Automator
  2. Escolha Serviços
  3. Pesquise Executar Shell Script e clique duas vezes nele

Adicione o AppleScript abaixo na área de texto

awk 'BEGIN{print "/*"}{print $0}END{print "*/"}'

script apple para comentário de bloco

  1. Salvar script como Block Comment

Adicionar um atalho de teclado

Abra Preferências do Sistema> Teclado> Atalhos , adicione um novo atalho clicando +e com o botão direito do mouse no mesmo nome, ou seja, Block Commentcomo você forneceu ao AppleScript no 4º passo. Adicione seu atalho de teclado e clique no botão Adicionar .

Novo atalho de teclado

Agora você deve poder usar o comentário de bloco no Xcode ou em qualquer outro editor, selecionar algum texto, usar a tecla de atalho para bloquear qualquer linha de código ou clicar com o botão direito do mouse, o menu de contexto e o nome que você deu a esse script deve aparecer próximo o fundo.

Baig
fonte
Não há necessidade de escrever "Upvote se funcionar" na resposta. As pessoas votam se acharem útil.
taskinoor
@ Baig Esta é uma resposta muito bem documentada, que eu consegui implementar exatamente. Mas quando seleciono um pedaço de texto e executo meu atalho ctrl + option + command + b, nada acontece. Mesmo quando uso o menu de contexto, nada acontece? Que pena, porque eu tinha certeza que isso iria funcionar. Não importa, pelo menos, eu aprendi a usar o Automator. Que aplicativo legal!
Charles Robertson
@Baig Preciso reiniciar meu computador?
Charles Robertson
@ Baig O estranho é que, quando eu testá-lo na janela de saída do Automator 'Run Shell Script', ele funciona bem. Talvez, minha combinação de teclas de atalho já esteja sendo usada e isso possa estar bloqueando? Mas, a funcionalidade do menu de contexto também não funciona? Isso está me incomodando ...
Charles Robertson
Isso estava funcionando perfeitamente na versão osx anterior. Eu verifico, não está funcionando agora.
Baig
7

Modifiquei um pouco o código de Nikola Milicevic para remover o bloco de comentários, se o código já estiver comentado:

on run {input, parameters}
    repeat with anInput in input
        if "/*" is in anInput then
            set input to replaceText("/*", "", input as string)
            set input to replaceText("*/", "", input as string)

            return input
            exit repeat
        end if
    end repeat
    return "/*" & (input as string) & "*/"
end run

on replaceText(find, replace, textString)
    set prevTIDs to AppleScript's text item delimiters
    set AppleScript's text item delimiters to find
    set textString to text items of textString
    set AppleScript's text item delimiters to replace
    set textString to "" & textString
    set AppleScript's text item delimiters to prevTIDs
    return textString
end replaceText

Espero que isso ajude alguém.insira a descrição da imagem aqui

A. Buksha
fonte
7

No XCode 10, você pode usar a opção + comando + barra invertida para escrever um belo comentário para sua função ou classe como abaixo:

insira a descrição da imagem aqui

paras gupta
fonte
6

Você pode atribuir isso facilmente, aqui vai uma explicação passo a passo.

1.) No arquivo xCode .m, digite o seguinte, não importa onde você digita, desde que seja uma área vazia.

/*
*/

2.) Destaque que duas linhas de código arrastam e soltam na área 'painel de biblioteca de trechos de código' (fica na parte inferior do painel Utilitários). Um sinal de mais azul claro será exibido se você fizer corretamente.

insira a descrição da imagem aqui

3.) Depois que você soltar o botão do mouse, uma nova janela aparecerá e solicitará que você adicione nome, atalho, etc; como mostrado. Como você pode ver, adicionei meu atalho para //. Então, toda vez que eu quiser um comentário em bloco, digitarei //. Espero que isto ajude

insira a descrição da imagem aqui

Oh meu
fonte
você ainda pode fazer isso no XCode 10, a área 'painel da biblioteca de trechos de código' acabou de ser movida. procure o { }ícone no canto superior direito da área do editor.
manroe
1

Eu consegui fazer isso funcionar bem através de uma tarefa de automação e usei o atalho para vinculá-lo à combinação de teclas ctrl + option + command + b. tudo o que preciso fazer é destacar o código que eu quero que o bloco seja comentado no xcode e pressionar as teclas acima e o texto selecionado será comentado usando / / ... ... / /.

Eu uso código dobrando um pouco, então a razão pela qual eu queria essa funcionalidade era para que eu pudesse facilmente dobrar um bloco de código comentado ... o código comentou da maneira usual usando // não dobrará.

eu não estou familiarizado com o uso do mac automator, mas eu simplesmente segui o instrux no seguinte vídeo wwdc

na sessão de vídeo WWDC 2012 2012 402 - Trabalhando eficientemente com o Xcode (a partir de 6 minutos), há uma descrição de como usar o Mac OSX Automator para adicionar um serviço para manipular o texto selecionado. O exemplo mostrado no vídeo é remover duplicatas em uma seleção de texto usando os comandos shell classificar e uniq. Usando essa abordagem, você faz o mesmo, mas insere o seguinte comando, em vez do que ele faz no vídeo

awk 'BEGIN {print "/ "} {print $ 0} END {print " /"}'

(observe que há 2 asteriscos na linha anterior que, por algum motivo, não estão sendo mostrados .... eles aparecem na captura de tela abaixo, então copie isso como o comando correto para entrar)

você deve executar um script de shell como este

captura de tela

isso, para qualquer texto selecionado, colocará os delimitadores de comentários antes e depois.

ao salvá-lo, você deve obter opções para nomeá-lo (eu o chamei de comentário de bloco) e também para atribuir um atalho de teclado

poderá abrir o xcode, selecionar algum texto, clicar com o botão direito do mouse, o menu de contexto e o nome que você deu a esse script deve aparecer próximo à parte inferior

basta clicar no nome e o script será executado e bloqueará o comentário do código selecionado ou use o atalho de teclado que você atribuiu.

espero que isto ajude

lozflan
fonte
É confuso, mas fiz algo semelhante com o Keyboard Maestro e o awk para criar cabeçalhos para métodos. Swift é um pouco mais trabalhoso, então ainda não o resolvi.
Lloyd Sargent #
0

Existe um símbolo antes do menu de ajuda no xcode que possui o script Editar usuário. Na seleção Un / Comment na seção de comentários, mude meu $ cCmt = "//"; para o meu $ cCmt = "#"; ou qualquer que seja o seu IDE. Então, selecionando as linhas e o comando + / (É o meu código padrão do xcode) você pode comentar e descomentar as linhas selecionadas.

Fati
fonte
0

@Nikola Milicevic

Aqui está a captura de tela do problema de recuo. Isso é muito pequeno, mas é estranho que pareça funcionar tão bem, no seu exemplo visual.

Também estou adicionando uma captura de tela da minha configuração do Automator ...

obrigado

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Atualizar:

Se eu mudar o script levemente para:

insira a descrição da imagem aqui

E, em seguida, selecione linhas completas no XCode, obtenho o resultado desejado:

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Charles Robertson
fonte
1
Ai sim. Não adicionei nova linha depois de fechar o comentário, gostei mais sem ele. Que bom que você descobriu.
Nikola Milicevic
0

Se você estiver procurando uma maneira de converter comentários gerados automaticamente de Add Documentationação (disponível em cmd- shift- /), também poderá ser útil:

function run(input, parameters) {
  var lines = input[0].split('\n');
  var line1 = lines[0];
  var prefixRe = /^( *)\/\/\/?(.*)/gm;
  var prefix = prefixRe.test(line1) ? line1.replace(prefixRe, "$1") : ""

  var result = prefix + "/*\n";  
  lines.forEach(function(line) {
    result += prefix + line.replace(prefixRe, "$2") + '\n';
  });
  result += '\n' + prefix + ' */';
  return result;
}

Descanse da mesma forma que na resposta de Charles Robertson:

Automator

Serviços

Daniel Bauke
fonte
0

No xcode 11.1 swift 5.0

selecione o código que você deseja adicionar ao comentário do bloco e pressione + +/

insira a descrição da imagem aqui

Ashim Dahal
fonte
-1

Cmd+ Shift+ 7comentará as linhas selecionadas.

Julio
fonte
Você poderia especificar sob quais condições ele funciona? Para mim, isso não ...!
SeF 27/01
Provavelmente significava Cmd+ /. Parece que pelo menos o layout de teclado alemão tem a /na 7chave, mas no layout US /está em sua própria chave sem mudança.
Jake Cobb
Eu tenho /sobre a 7tecla no layout do teclado norueguês também, mas ainda não funciona .. este atalho simplesmente abre o menu Ajuda
Sti
-1

nos Macbooks, você pode usar shift+ cmd+ 7para comentar um bloco destacado anteriormente

Arthur C. Clarke
fonte
-11

Parece que muitas pessoas já respondem a essa pergunta.

no Swift 3.0, o comentário de linha única é colocar barras duplas à frente: "//"; multilinha é colocada "/ * .... * /".

Espero que isto ajude.

Dil Azat
fonte