Faça comentários longos de quebra de recuo do GNU

7

Existe uma maneira de convencer o recuo do GNU a quebrar comentários longos e alterá-los para comentários de múltiplas linhas? Algo parecido com isto:

// Very long comment, longer than 80 characters. Just imagine that.

Para isso:

/*
 * Very long comment, longer than 80 characters. Just
 * imagine that.
 */

Eu sei que a segunda formatação pode ser feita simplesmente por '-cdb -sc', mas não sei como garantir a quebra de linha e a alteração do tipo de comentário. É mesmo possível?

    
por Citrisin 10.09.2014 / 10:05

2 respostas

2

Eu tenho isso para funcionar, por algum motivo, é necessário que as opções -fc1 e -fca :

indent -fc1 -fca j.c

Como alternativa, você pode usar o estilo de Berkeley:

indent -orig j.c

Entrada:

// Lorem ipsum dolor sit amet, apeirian constituam interpretaris no his, soluta salutandi persequeris vel ne, facete impedit contentiones te eam. Ut utamur habemus qualisque usu
#include <stdio.h>
int main(){puts("hello world");}

Saída:

// Lorem ipsum dolor sit amet, apeirian constituam interpretaris no his,
// soluta salutandi persequeris vel ne, facete impedit contentiones te eam.
// Ut utamur habemus qualisque usu
#include <stdio.h>
int
main ()
{
  puts ("hello world");
}

Exemplo

    
por 13.06.2016 / 03:14
1
sed -i '\_//_{s_//_/* _g;s_$_ */_g}' file.c
indent -fc1 -fca -sc -cdb file.c
sed -i 's/\/\*\(.*\)\*\/$/\/\//' file.c

faz o que você solicitou, mas eu seria cauteloso, pois provavelmente perderia alguns casos extremos

Entrada:

// Lorem ipsum dolor sit amet, apeirian constituam interpretaris no his, soluta salutandi persequeris vel ne, facete impedit contentiones te eam. Ut utamur habemus qualisque usu
#include <stdio.h>
int main () // damn
{
  puts ("hello world" /* sheeet */); }              /* oh shit */

Saída:

/*
 * Lorem ipsum dolor sit amet, apeirian constituam interpretaris no his,
 * soluta salutandi persequeris vel ne, facete impedit contentiones te eam.
 * Ut utamur habemus qualisque usu
 */
#include <stdio.h>
int
main ()             // damn
{
  puts ("hello world" /* sheeet */ );
}               // oh shit
    
por 17.06.2016 / 01:55