Termine opposto del trattino [chiuso]


11

Diciamo che indentiamo il codice. Sto scrivendo un generatore di stringhe che può aggiungere / rimuovere le schede al codice di rientro.

Campione:

builder.Add("<ul>");
builder.Indent();
builder.Add("<li></li>");
builder.Dedent(); // <-- what should this be named.
builder.Add("</ul>");   

Come dovrei nominare il metodo?


3
È un po 'fuori tema ma: forse potresti evitare di chiamare esplicitamente indent / dedent se sostituissi le chiamate Add ("<ul>") e Ident () con un BeginElement ("ul") che includesse la logica di rientro. (e anche un metodo EndElement ovviamente)
David,

@David: +1, ma ovviamente vorresti prendere in considerazione gli elementi nidificati in linea :)
Demian Brecht,

11
Che dire outdent?
Kevin,

@Kevin: ottima alternativa, ma perché non lo aggiungi come risposta?
Jgauffin,

@David: viene utilizzato all'interno di un framework e non esposto all'utente (la classe è tuttavia pubblica in modo che l'utente possa utilizzarla per i propri scopi). Inoltre può essere usato per qualcosa di più del semplice markup, quindi BeginElementecc. Non è appropriato.
Jgauffin,

Risposte:


24

Out è l'opposto di in, lo sanno tutti. Perché non usare Indent()e Outdent()?


Questo è quello che l'ho sempre chiamato almeno.
Callum Rogers,

Lo stesso qui, l'ho sempre sentito chiamato outdent.
Brian Knoblauch,

17

Al contrario di indent, vorrei usare unindent. Dal Wikizionario

unindent

Etimologia
un- + trattino; Nato negli anni '80, quando i computer rendevano banale per chiunque spostare il testo su una pagina.
Verbo
unindent ( terza persona singolare semplici presenti unindents , participio presente rimozione dell'indentazione , passato semplice e participio passato unindented )
1. Per rimuovere il rientro; per spostare un blocco di testo più vicino al margine sinistro.
Ho dovuto dissociare la prima riga di ogni paragrafo in modo che il mio saggio si inserisse su un lato della carta.

Secondo il Dizionario etimologico online , il trattino proviene da:

primi 15c., indenten / endenten "per fare tacche; per dare (qualcosa) un aspetto dentellato o frastagliato," anche "per fare un indenture legale", da O.Fr. endenter "per intaccare o ammaccare, dare un bordo seghettato a," da ML indentare "per fornire con i denti," da in- "in, in, on, su" (vedi in- (2)) + L. dens (gen . Dentis ) "dente" (vedi dente). Correlati: rientrato; rientro . Il senso della stampa è attestato per la prima volta negli anni '70. Il nome è registrato per la prima volta nel 1590, dal verbo. Un precedente senso del nome di "un accordo scritto" (fine del XV sec . ) È descritto nel Dizionario della lingua inglese centrale come "scribal abbrev. Of endenture ".

Quindi rientrare è come mettere una "tacca" nel codice sorgente. Per rimuovere quella tacca, annulla il rientro: unindent.


16
Indent
Dedent

A sostegno di ciò, un rapido google aiuta: unindent ha 290.000 accessi mentre il dedent ha 1.920.000 accessi, fornendo un'indicazione approssimativa che quest'ultimo è più ampiamente utilizzato. Anche se questo dovrebbe essere usato come argomento con molta cautela.

Dedentè anche la terminologia standard utilizzata nei documenti di Python .


2
In effetti "dedent" ha solo 321.000 hit quando lo metti tra virgolette e molti di questi hit non hanno nulla a che fare con il rientro, ma sono piuttosto nomi o altre cose (forse i termini del dentista?). "unindent" ha 267.000 colpi.
Falcon,

2
Dedent non è una vera parola inglese. Una buona API è chiara e facilmente comprensibile da chiunque legga la fonte (per quanto io adori Python, questo mi ha fatto venire in mente una stranezza a cui non sono per niente affezionato). Accanto l'uno all'altro, questo ha senso, ma potrebbe non altrimenti (o per qualcuno che non parla abbastanza bene l'inglese).
Demian Brecht,

1
@Demian Naturalmente è una parola inglese, la stiamo usando. Come potremmo usarlo se non esistesse? L'inglese non è una lingua prescrittivista strettamente regolata.
Konrad Rudolph,

6
Bene, "outdent" ha quasi 14 milioni di hit.
Mike Sherrill 'Cat Recall',

2
@Demian Brecht: è solo un neologismo. Come programmatore, sei immerso in essi ogni giorno. Abituati.
Jon Purdy,

12

Non intendi trattino ?

Intendere significa qualcosa di completamente diverso.

Altrimenti, forse Unindent?

In una nota a margine:

  • Usare le schede per indentare il codice è male (imho) - gli spazi sono più portabili.
  • Non avrei esposto questa API al client. Il builderdovrebbe essere abbastanza intelligente per sapere che cosa e cosa non trattino.

4
Il post di Jeff Atwood non dice perché usare le schede sia negativo. Alla fine lancia semplicemente un insulto agli utenti di schede.
Peter Taylor,

16
"Gli spazi sono più portabili": che diamine dovrebbe significare?!?!? ... inoltre, non sono d'accordo che le schede siano cattive, in realtà le trovo personalmente buone . È più pulito, più facile da analizzare e consente all'utente di scegliere in che modo devono essere rappresentati nella vista. Non vedo alcun aspetto negativo negativo su di essi, al contrario degli spazi che non hanno i vantaggi precedentemente menzionati.
Dagnelies,

3
@arnaud: dovresti leggere le schede rispetto agli spazi. è in gran parte un dibattito religioso, ma nelle mie esperienze, gli spazi hanno sempre prevalso ( specialmente se stai lavorando a un progetto OS o hai più sviluppatori che usano editor diversi). davvero, alla fine, l'importante è la coerenza.
Demian Brecht,

2
La cosa migliore è avere un editor che inserisca automaticamente X spazi quando premi Tab.
Jose Faeti,

2
@Konrad: nominare un editor che non supporta le schede?
Callum Rogers,

5

Che dire SetIndentLevel(int level).

Rimuovere un rientro significa semplicemente impostare il livello su 0. Dopo non c'è termine per l'opposto di questa operazione.


+1: è un approccio migliore rispetto a due chiamate di funzione per aumentare e diminuire il livello di rientro.
mcottle,

6
Non sono sicuro che sia meglio di 2 metodi. L'uso di metodi setIndentLevel significa che è tua responsabilità ricordare quanto è profonda la rientranza in caso di elementi nidificati nel documento. Ciò significherebbe mantenere un contatore. No, sicuramente dovrebbe essere la responsabilità del costruttore, non la tua.
David,

1
@David: puoi facilmente creare due metodi wrapper per tenerne traccia. In alcuni casi può essere migliore o più facile da usare, mentre in altri casi non lo è. Con un'altra interfaccia dovresti chiamare un metodo di aumento / diminuzione più volte o in un ciclo. Quindi probabilmente vorrei tutte e tre le versioni: Imposta / Aumenta / Diminuisci
Falcon,

1
@ David setIndentLevel(1 + getIndentLevel())- il migliore dei due mondi.
Izkata,

5

La parola "indent" non significa in realtà "inserire spazi bianchi" - significa "regolare gli spazi bianchi in modo che le cose si allineino". Pertanto, il rientro può significare sia l'aggiunta che la rimozione di schede; proprio come non c'è opposto a "camminare", concettualmente parlando non c'è opposto a "rientro". È possibile rimuovere il rientro, annullare il rientro o modificare il livello di rientro, ciascuna delle quali sono operazioni che in qualche modo ripristinano o alterano gli effetti del rientro, in diversi modi, ma nessuno di essi è "l'opposto" del rientro. Il popolare "dedent" e "unindent" sono sbagliati allo stesso modo di "unwalk" o "defest". (A proposito, questo potrebbe essere una buona domanda per english.se)

Nel tuo caso, andrei con IncreaseIndentationLevele DecreaseIndentationLevel.


1
english.se non ama molto discutere i termini di programmazione.
Jgauffin,

È più un termine di composizione che un termine di programmazione, ma OK.
tdammers,

"Indenzione", non "indentazione".
Mike Sherrill 'Cat Recall',

1
Concordato, "Aumenta rientro" e "Riduci rientro" sono i termini corretti, a rigor di termini. Mi sarei aspettato che fosse un linguaggio che i programmatori avrebbero usato e compreso. Usi l '"accelerazione negativa" quando parli di fermare la tua auto, vero?
StevenV,

4

Ho visto la parola "outdent", ad esempio su Wikipedia Template: Outdent page

Per aver superato una risposta in una pagina di discussione quando l'indentazione diventa troppo profonda. Il rientro nelle pagine di discussione viene effettuato utilizzando un carattere due punti (:) per produrre schede; questo modello produce una barra dei connettori e un testo iniziale per indicare un perduto, basato sul numero di due punti utilizzati nel trattino precedente ...



2

FWIW Google Docs e MS Word utilizzano "Aumenta rientro" e "Riduci rientro". Ho dimenticato quale editore (forse era TinyMCE, ci ho lavorato ultimamente) ma so di aver visto una volta "Indent" e "Outdent"


1

Definizione di rientro:

Inizia (una riga di testo) o posiziona (un blocco di testo, tabella, ecc.) Più lontano dal margine rispetto alla parte principale del testo

Non c'è davvero un contrario di questo, piuttosto stai rientrando nel testo principale oltre la riga specificata.

Penso che un termine migliore sarebbe RemoveIndent () o ReduceIndent ()

Detto questo, una ricerca su google del termine "opposto del rientro" rivela il seguente termine: Outdent . http://www.urbandictionary.com/define.php?term=indent Questo può anche essere adatto.


Outdent è brutto quanto il dedent. "In" in "indent" non è un prefisso, in realtà, sostituirlo come se fosse un abuso della grammatica inglese.
tdammers,

@tdammers - in un certo senso lo è. Stai ammaccando il paragrafo verso l'interno, quindi il contrario sarebbe ammaccarlo verso l'esterno - Outdent. Personalmente preferisco Remove / ReduceIndent () anche se per un nome di funzione ...
Gavin Coates

1
@tdammers: Apparentemente "in" nel rientro è un prefisso ("into, in, on, upon" - etymonline.com/index.php?term=indent ). Non che importa - non vedo nulla di "offensivo" sull'etimologia popolare ( en.wikipedia.org/wiki/Folk_etymology ); fa parte dell'evoluzione del linguaggio. E non sono d'accordo sul fatto che l' eccesso sia brutto come il deduto . Non sono nemmeno sicuro di quale sillaba sottolineare in dedent ; è molto brutto in entrambi i casi. Ma outdent è bello ed evidente. È un complemento perfetto per il rientro . Le due parole creano una bella coppia che si definisce a vicenda con un contrasto molto visivo. Mi piace.

Mi spiace, mi sono appena reso conto di non aver letto correttamente questa domanda o le sue risposte ... Stavo supponendo che si trattasse della visualizzazione automatica di linee avvolte in un editor di testo. Nel qual caso, outdent (che significa l'opzione di visualizzare una linea più a sinistra della linea sopra di essa) sarebbe perfetto secondo me. Ma questa domanda riguarda in realtà la rimozione di un rientro già esistente, ad esempio cosa succede quando si preme Maiusc + Tab. Nel qual caso, sono d'accordo reduceIndent()o anche unindent().
callum,

Ha fatto la mia ricerca; sì, "in" è in realtà un prefisso, ma come afferma callum, "outdent" significherebbe una linea che inizia a sinistra del bordo sinistro. IIRC, una cosa del genere viene definita un rientro negativo nella composizione, non un'esagerazione, e non è comunque ciò di cui stiamo parlando qui.
tdammers,

0

So di essere un po 'in ritardo alla festa, ma ho avuto lo stesso problema nel trovare il contrario Indent. Dato che qui ci sono diverse risposte a questa domanda, ho chiesto a un collega inglese (UK) cosa avrebbe scelto: il suo primo consiglio è stato IncreaseIndente DecreaseIndent. Ma Indente Detentpotrebbe anche funzionare.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.