PDA

View Full Version : [Eclipse] Refectoring e auto-indent: come sostituire tab con spazzi?


Matrixbob
26-07-2011, 14:57
Come sostituire tab con spazi?

Io sono andato in Windows>Preferences>Editors>Text Editors e gli ho detto di creare i tab usando gli spazi.

Solo che ereditando codice di terze persone quando faccio il Source>Format, mi mantine la loro indentazione a base di tab e spazi promisqui, insomma il solito casino.

.... e se invece volessi che in automatico il Format mi rimpiazzi
funzione()
{
}
con
funzione() {
}

, queste cose dove sì impostano?

wingman87
26-07-2011, 15:33
Dov'è il vantaggio ad usare gli spazi invece del tab?
Se riesco quando torno a casa provo a darti una mano se non l'ha già fatto qualcun'altro.

Matrixbob
26-07-2011, 15:49
Dov'è il vantaggio ad usare gli spazi invece del tab?
Se riesco quando torno a casa provo a darti una mano se non l'ha già fatto qualcun'altro.
Che uniforma il tutto a spazi e rimane più editor-portabile.
Soprattutto quando si parla di programmazione Web.

GByTe87
26-07-2011, 16:10
Windows -> Preferences -> Selezioni il tipo di progetto (C/C++, Java) -> Code Style.

Proprio perchè (a quanto ho capito) lavori in team, sarebbe bene usare un unico stile di formattazione (altrimenti sono dolori quando eseguite l'update del progetto).
Comunque la formattazione mediante tabulazione è pressochè universale, mai avuto a che fare con editor che non la gestissero.

Viceversa, tutte le volte che ho provato ad usare gli spazi ho incasinato tutto. :asd:

WarDuck
26-07-2011, 16:12
Che uniforma il tutto a spazzi e rimane più editor-portabile.
Soprattutto quando si parla di programmazione Web.

spazi, con una z sola :D.

Spazzi deriva da spazzare :D.

Spazi (che non so neanche se esista come parola) deriva da Spazio.

banryu79
26-07-2011, 16:41
Usa i tab. E basta. Dio lo vuole. :O

Matrixbob
26-07-2011, 16:44
spazi, con una z sola :D.

Spazzi deriva da spazzare :D.

Spazi (che non so neanche se esista come parola) deriva da Spazio.

Corretto, che vuoi che ti dica è andato in pappa il cervello ... meglio che esca.

Matrixbob
26-07-2011, 16:44
Usa i tab. E basta. Dio lo vuole. :O

Ma anche no, altrimenti a che caz serve sta funzionalità del IDE?

=KaTaKliSm4=
26-07-2011, 17:48
Comunque la formattazione mediante tabulazione è pressochè universale, mai avuto a che fare con editor che non la gestissero.

Viceversa, tutte le volte che ho provato ad usare gli spazi ho incasinato tutto. :asd:

;)

cdimauro
26-07-2011, 19:46
Usa i tab. E basta. Dio lo vuole. :O
Allora sarà per questo che uso solo gli spazzzzzzzzi (scusate le multi-z, ma sono siciliano :asd:): sono ateo. :D

Vade retro tab. Non si sa mai se un tab vale 8, 4 o 2 spazi. Mi viene il mal di testa solo a pensarci. :mad:

Comunque su Eclipse ho provato a far convertire automaticamente i tab in spazi, ma non ci sono riuscito. Cioè: attivata l'opzione, non funzionava lo stesso. Appena posso riprovo con le indicazioni fornite dagli altri.

banryu79
27-07-2011, 07:58
Comunque su Eclipse ho provato a far convertire automaticamente i tab in spazi, ma non ci sono riuscito. Cioè: attivata l'opzione, non funzionava lo stesso. Appena posso riprovo con le indicazioni fornite dagli altri.
Infedele, eretico, abominio :asd:
Usa i tab. E basta. Dio... ehm, Eclipse lo vuole! :O

jappilas
27-07-2011, 08:34
Vade retro tab. Non si sa mai se un tab vale 8, 4 o 2 spazi. Mi viene il mal di testa solo a pensarci. :mad: perchè qualcosa mi dice che sei ironico? :D





...forse l' importanza dell' indentazione nel tuo linguaggio preferito...

Matrixbob
27-07-2011, 09:17
perchè qualcosa mi dice che sei ironico? :D





...forse l' importanza dell' indentazione nel tuo linguaggio preferito...

ma che ironico e ironico, anche io mi trovo male come lui con il tab che non vale mai lo stesso sui diversi editor.

tomminno
27-07-2011, 10:15
ma che ironico e ironico, anche io mi trovo male come lui con il tab che non vale mai lo stesso sui diversi editor.

Per questo gli editor hanno la funzionalità di associare un equivalente numero di spazi al carattere tab.

WarDuck
27-07-2011, 10:32
Per questo gli editor hanno la funzionalità di associare un equivalente numero di spazi al carattere tab.

Tranne Notepad :asd:

Matrixbob
27-07-2011, 10:37
Per questo gli editor hanno la funzionalità di associare un equivalente numero di spazi al carattere tab.

Fidati a volte succedono dei casini, e nella programmazione web meglio utilizzare gruppi di spazi per scongiurare casinì.

Dopo vedo se la soluzione proposta sistema automaticamente non solo i codice nuovo ma tutto il codice.

Ha un nome sta operazione di normalizzazione della auto-indentatura? Il refactoring è relativo ai cambi di nomi, ecc nel codice, questo invece?

tomminno
27-07-2011, 11:38
Fidati a volte succedono dei casini, e nella programmazione web meglio utilizzare gruppi di spazi per scongiurare casinì.


Mai visto casini a causa dei tab...
I casini li causano gli spazi a livello di chiarezza nel codice, c'è chi usa 8 spazi c'è chi ne usa 4 e poi ti trovi con codice indentato alla CDC. Con i tab questo non succede, ognuno visualizza sul proprio editor come meglio crede, ma la visualizzazione rimane consistente e correttamente indentata per chiunque.

cdimauro
27-07-2011, 13:15
Infedele, eretico, abominio :asd:
Usa i tab. E basta. Dio... ehm, Eclipse lo vuole! :O
Non ho una buona stima di nessuno dei tre. :D
perchè qualcosa mi dice che sei ironico? :D
No, ero serissimo. :stordita:
...forse l' importanza dell' indentazione nel tuo linguaggio preferito...
Anche, perché avere un listato con tab e spazi è un inferno.

A parte questo, l'indeterminazione della dimensione dei tab tante volte si riflette nella misura della lunghezza delle righe di codice.

Uno che usa tab da 8 spazi tenderà a scrivere righe corte. Uno con tab da 2 spazi le scriverà più lunghe.
Mai visto casini a causa dei tab...
I casini li causano gli spazi a livello di chiarezza nel codice, c'è chi usa 8 spazi c'è chi ne usa 4 e poi ti trovi con codice indentato alla CDC. Con i tab questo non succede, ognuno visualizza sul proprio editor come meglio crede, ma la visualizzazione rimane consistente e correttamente indentata per chiunque.
Se non si mischiano tab e spazi, magari sì.

Matrixbob
27-07-2011, 13:43
Se non si mischiano tab e spazi, magari sì.


Da questo mix infatti il mio bisogno di convertire tutto a bomba in only spaces. :D

marco.r
27-07-2011, 13:58
Mai visto casini a causa dei tab...
I casini li causano gli spazi a livello di chiarezza nel codice, c'è chi usa 8 spazi c'è chi ne usa 4 e poi ti trovi con codice indentato alla CDC.

Se si lavora in gruppo sullo stesso codice si decide a priori la spaziatura. Cosi' come tutti gli altri aspetti stilistici (dove vanno le graffe, gli spazi i caporiga etc.). Altrimenti diventa una bolgia dantesca, e il repository un'accozzaglia di cambiamenti di coding style piuttosto che di aggiornamenti del codice...
Detto questo preferisco gli spazi ai tab.

marco.r
27-07-2011, 14:04
Con i tab questo non succede, ognuno visualizza sul proprio editor come meglio crede, ma la visualizzazione rimane consistente e correttamente indentata per chiunque.

Non e' detto
ad esempio se io ho un qualcosa del genere


enum FooBar { FIRST, // bla bla
SECOND, // ri bla
THIRD, // ri bla, e bla
FOO_BAR_MAX };

Hai voglia che l'allineamento rimanga consistente tra editor che usano tab di dimensione diversa...

Matrixbob
27-07-2011, 16:15
[EDIT]

Windows -> Preferences -> Selezioni il tipo di progetto (C/C++, Java) -> Code Style.

Proprio perchè (a quanto ho capito) lavori in team, sarebbe bene usare un unico stile di formattazione (altrimenti sono dolori quando eseguite l'update del progetto).
Comunque la formattazione mediante tabulazione è pressochè universale, mai avuto a che fare con editor che non la gestissero.

Viceversa, tutte le volte che ho provato ad usare gli spazi ho incasinato tutto. :asd:
Sono andato in code
Style -> Formatter oppure Clean UP, ma non ci capisco na mazza. :(

Mi sa che non è qui che si modificano le indentature come vorrei io vero? :stordita:

tomminno
27-07-2011, 21:44
Se si lavora in gruppo sullo stesso codice si decide a priori la spaziatura. Cosi' come tutti gli altri aspetti stilistici (dove vanno le graffe, gli spazi i caporiga etc.). Altrimenti diventa una bolgia dantesca, e il repository un'accozzaglia di cambiamenti di coding style piuttosto che di aggiornamenti del codice...


Mah secondo la mia visione il coding style deve aderire alle specifiche del linguaggio che si utilizza. Si evita a priori ogni possibile ambiguità.


Detto questo preferisco gli spazi ai tab.

Contenti voi di tenere premuta la barra spaziatrice e di cercare di capire ad occhio se gli spazi inseriti sono in numero corretto...

tomminno
27-07-2011, 21:53
Non e' detto
ad esempio se io ho un qualcosa del genere


enum FooBar { FIRST, // bla bla
SECOND, // ri bla
THIRD, // ri bla, e bla
FOO_BAR_MAX };

Hai voglia che l'allineamento rimanga consistente tra editor che usano tab di dimensione diversa...

Lo riscrivi come dovrebbe essere:

enum FooBar
{
FIRST,
SECOND,
THIRD,
FOO_BAR_MAX
};


Il coding style standard non lo hanno inventato così perchè non avevano niente di meglio a cui pensare...

cdimauro
28-07-2011, 03:32
EDIT: il forum ha fatto i capricci.

cdimauro
28-07-2011, 03:33
EDIT: il forum ha fatto i capricci.

cdimauro
28-07-2011, 03:34
EDIT: il forum ha fatto i capricci.

cdimauro
28-07-2011, 03:42
EDIT: il forum ha fatto i capricci.

cdimauro
28-07-2011, 03:57
Non credo funzioni bene coi commenti presenti dopo ogni enumerativo. ;)
Contenti voi di tenere premuta la barra spaziatrice e di cercare di capire ad occhio se gli spazi inseriti sono in numero corretto...
Esistono gli editor di testo che allineano il codice per te. Persino vi lo fa. :D

marco.r
28-07-2011, 08:19
Mah secondo la mia visione il coding style deve aderire alle specifiche del linguaggio che si utilizza. Si evita a priori ogni possibile ambiguità.

Se il linguaggio ne ha uno. Non succede sempre. Non in C++ ad esempio, dove anche le linee guida piu' diffuse non specificano di quanto si deve indentare o se usare tabulazioni o spazi (vedi il libro di Sutter e Alexandrescu, ad esempio).
I linguaggi che hanno linee guida ufficiali (Java e Python ad esempio) comunque indicano come 8 il numero di spazi equivalenti ad una tabulazione, a prescindere dall'indentazione scelta.



Contenti voi di tenere premuta la barra spaziatrice e di cercare di capire ad occhio se gli spazi inseriti sono in numero corretto...
Ma che editor/IDE e che font usi ? :mbe:

marco.r
28-07-2011, 08:36
Lo riscrivi come dovrebbe essere:

enum FooBar
{
FIRST,
SECOND,
THIRD,
FOO_BAR_MAX
};


Il coding style standard non lo hanno inventato così perchè non avevano niente di meglio a cui pensare...

Effettivamente non e' un buon esempio, ma al momento non me ne veniva un altro.
Usiamo il seguente se vuoi

printf( "Some string %d %s %d %d %d",
firstValue,
secondValue,
thirdValue,
fourthValue,
fifthValue);

(E se non ti piace printf usiamo boost::format).
L'idea cmq era che quando devi spezzare una riga in due, non indenti necessariamente la riga successiva ad un multiplo dell'indentazione

WarDuck
28-07-2011, 10:18
[..]
Contenti voi di tenere premuta la barra spaziatrice e di cercare di capire ad occhio se gli spazi inseriti sono in numero corretto...

Molti editor fanno la sostituzione, ovvero premi TAB e ti mettono il numero di spazi che desideri ;).

marco.r
28-07-2011, 10:44
Molti editor fanno la sostituzione, ovvero premi TAB e ti mettono il numero di spazi che desideri ;).
In altri premi tab e viene indentato del numero di spazi necessario... o meglio ancora quando premi ";" a fine riga (per linguaggi c-based) automaticamente torna a capo E indenta della quantita' necessaria. Serviranno pure a qualcosa tutti quei GHz delle cpu moderne :D

Matrixbob
28-07-2011, 10:45
Molti editor fanno la sostituzione, ovvero premi TAB e ti mettono il numero di spazi che desideri ;).

Ecco io sto cercando di ottenre una indentazione con
numero spazzi che voglio al posto dei /t tab
e
function(){
}
Come faccio su Eclipse o Netbeans che sia?! :help::help::help:

GByTe87
28-07-2011, 11:22
[EDIT]


Sono andato in code
Style -> Formatter oppure Clean UP, ma non ci capisco na mazza. :(

Mi sa che non è qui che si modificano le indentature come vorrei io vero? :stordita:

È proprio in Formatter invece.

Formatter -> New -> inserisci il nome e lo stile da clonare -> Edit -> Indentation -> Tab Policy Ecc Ecc Ecc Ecc

shinya
28-07-2011, 13:11
Usate gli spazi!! Maledetti psicopatici!! :mad:

banryu79
28-07-2011, 13:19
Usate gli spazi!! Maledetti psicopatici!! :mad:
No :O
It's simple as that :D

marco.r
28-07-2011, 13:41
Usate gli spazi!! Maledetti psicopatici!! :mad:

Vista la sig., mi aspettavo almeno un "Motherfuckers!!"
Deluso.

tomminno
28-07-2011, 15:42
Usate gli spazi!! Maledetti psicopatici!! :mad:

A morte gli spazi per l'indentatura!
Oltretutto occupano un sacco di spazio in più se visti in un contesto aziendale con migliaia di programmi e milioni di righe di codice...

banryu79
28-07-2011, 15:50
A morte gli spazi...
Oltretutto occupano un sacco di spazio...

:eek: ... tautologia :asd:

shinya
28-07-2011, 16:19
No :O
It's simple as that :D
La pagherete cara per questo! :mad:
Vista la sig., mi aspettavo almeno un "Motherfuckers!!"
Deluso.
Hai ragione, ma da dopodomani sono in ferie e mi dovrei riprendere :D
A morte gli spazi per l'indentatura!
Oltretutto occupano un sacco di spazio in più se visti in un contesto aziendale con migliaia di programmi e milioni di righe di codice...
Ma scusa, in ambiente aziendale mi devo già preoccupare degli AbstractSingletonProxyFactoryBean (http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/aop/framework/AbstractSingletonProxyFactoryBean.html) e dovrei farmi dei problemi per lo spazio in più occupato dagli spazi??! :mbe: