Entgegengesetzter Begriff des Einzugs [geschlossen]

11

Wir sagen, dass wir Code einrücken. Ich schreibe einen String Builder, der Tabulatoren zum Einrückungscode hinzufügen / daraus entfernen kann.

Stichprobe:

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

Wie soll ich die Methode nennen?

jgauffin
quelle
3
Es ist etwas abseits des Themas, aber: Vielleicht könnten Sie vermeiden, explizit Einzug / Einzug aufzurufen, wenn Sie Add- ("<ul>") und Ident- () Aufrufe durch ein BeginElement ("ul") ersetzen, das Einzugslogik enthält. (und natürlich auch eine EndElement-Methode)
David
@ David: +1, aber natürlich möchten Sie verschachtelte Inline-Elemente berücksichtigen :)
Demian Brecht
11
Was ist mit outdent?
Kevin
@ Kevin: Tolle Alternative, aber warum fügst du sie nicht als Antwort hinzu?
Jgauffin
@David: Es wird in einem Framework verwendet und ist nicht für den Benutzer verfügbar (die Klasse ist jedoch öffentlich, sodass der Benutzer sie für eigene Zwecke verwenden kann). Es kann auch für mehr als nur Markups verwendet werden, daher ist BeginElementetc nicht geeignet.
Jgauffin

Antworten:

24

Out ist das Gegenteil von In, das weiß jeder. Warum nicht Indent()und verwenden Outdent()?

Kevin
quelle
So habe ich es zumindest immer genannt.
Callum Rogers
Das gleiche hier, ich habe immer gehört, dass es als outent bezeichnet wird.
Brian Knoblauch
17

Für das Gegenteil von indentwürde ich verwenden unindent. Aus Wiktionary:

unaufmerksam

Etymologie
un- + Einzug; Entstanden in den 1980er Jahren, als Computer es für jedermann trivial machten, Text auf einer Seite zu verschieben.
Verb
unindent ( dritte Person Singular einfache Gegenwart unindents , gegenwärtiges Partizip unindenting , einfache Vergangenheit und vergangenes Partizip unindented )
1. Um die Einrückung zu entfernen; um einen Textblock näher an den linken Rand zu verschieben.
Ich musste die erste Zeile jedes Absatzes aufheben, damit mein Aufsatz auf eine Seite des Papiers passte.

Laut dem Online Etymology Dictionary stammt der Einzug von:

Anfang 15c., indenten / endenten "um Kerben zu machen; (etwas) ein gezahntes oder gezacktes Aussehen zu geben", auch "um einen legalen Indenture zu machen", von O.Fr. Endenter " einkerben oder verbeulen, eine gezackte Kante geben" von ML indentare "mit Zähnen ausstatten" von in "in, in, auf" (siehe in (2)) + L. dens (Gen. . dentis ) "Zahn" (siehe Zahn). Verwandte: eingerückt; Einrücken . Der Drucksinn wird erstmals in den 1670er Jahren bestätigt. Das Substantiv wird erstmals in den 1590er Jahren aus dem Verb aufgenommen. Ein früherer Nomen-Sinn für "eine schriftliche Vereinbarung" (Ende 15c.) Wird im Middle English Dictionary als "Abkürzung für Endenture " beschrieben.

Das Einrücken ist also wie das Einfügen einer "Kerbe" in den Quellcode. Um diese Kerbe zu entfernen, machen Sie den Einzug rückgängig: unindent.

Hugo
quelle
16
Indent
Dedent

Um dies zu belegen, hilft ein schnelles Google: Unindent hat 290.000 Treffer, während Dedent 1.920.000 Treffer hat, was einen groben Hinweis darauf gibt, dass letzteres häufiger verwendet wird. Obwohl dies sehr vorsichtig als Argument verwendet werden sollte.

Dedentist auch die Standardterminologie, die in den Python-Dokumenten verwendet wird .

dagnelies
quelle
2
Tatsächlich hat "dedent" nur 321.000 Treffer, wenn Sie es in Anführungszeichen setzen, und viele dieser Treffer haben nichts mit Einrückung zu tun, sondern sind eher Namen oder andere Dinge (zahnärztliche Begriffe vielleicht?). "unindent" hat 267.000 Treffer.
Falcon
2
Dedent ist kein wirkliches englisches Wort. Eine gute API ist klar und für jeden, der die Quelle liest, leicht verständlich (so sehr ich Python liebe, führte mich dies zu einer Eigenart, die ich überhaupt nicht mag). Nebeneinander macht dies Sinn, aber möglicherweise nicht anders (oder für jemanden, der nicht ganz fließend Englisch spricht).
Demian Brecht
1
@ Demian Natürlich ist es ein englisches Wort, wir verwenden es. Wie könnten wir es benutzen, wenn es nicht existiert? Englisch ist keine streng regulierte präskriptive Sprache.
Konrad Rudolph
6
Nun, "outent" hat fast 14 Millionen Treffer.
Mike Sherrill 'Cat Recall'
2
@ Demian Brecht: Es ist nur ein Neologismus. Als Programmierer tauchen Sie täglich in sie ein. An etwas gewöhnen.
Jon Purdy
12

Meinst du nicht Einzug ?

Absicht bedeutet etwas ganz anderes.

Sonst vielleicht Unindent?

Als Randnotiz:

  • Die Verwendung von Tabulatoren zum Einrücken von Code ist schlecht (imho) - Leerzeichen sind portabler.
  • Ich würde diese API nicht für den Client verfügbar machen. Die buildersollten klug genug sein, um zu wissen, was zu tun ist und was nicht.
Demian Brecht
quelle
4
Der Beitrag von Jeff Atwood sagt nicht, warum die Verwendung von Tabs schlecht ist. Es ist nur eine Beleidigung für Tab-Benutzer am Ende.
Peter Taylor
16
"Räume sind tragbarer": Was zum Teufel soll das heißen?!?!? ... auch ich bin nicht der Meinung, dass Tabs schlecht sind, eigentlich finde ich sie persönlich gut . Es ist sauberer, einfacher zu analysieren und ermöglicht dem Benutzer die Auswahl, wie räumlich sie in der Ansicht dargestellt werden sollen. Ich sehe keinen negativen Nachteil bei ihnen, im Gegensatz zu Räumen, die nicht die zuvor genannten Vorteile haben.
Dagnelies
3
@arnaud: Sie sollten sich über Tabulatoren und Leerzeichen informieren. Es ist größtenteils eine religiöse Debatte, aber meiner Erfahrung nach haben sich immer Räume durchgesetzt ( insbesondere, wenn Sie an einem Betriebssystemprojekt arbeiten oder mehrere Entwickler haben, die unterschiedliche Editoren verwenden). Letztendlich ist die Konsistenz das Wichtigste.
Demian Brecht
2
Das Beste ist ein Editor, der beim Drücken der Tabulatortaste automatisch X-Leerzeichen einfügt.
Jose Faeti
2
@Konrad: Nennen Sie einen Editor, der keine Registerkarten unterstützt?
Callum Rogers
5

Was ist mit SetIndentLevel(int level).

Wenn Sie einen Einzug entfernen, setzen Sie einfach den Pegel auf 0. Afaik gibt es keinen Begriff für das Gegenteil dieser Operation.

Falke
quelle
+1 - Dies ist ein besserer Ansatz als zwei Funktionsaufrufe zum Inkrementieren und Dekrementieren der Einrückungsstufe.
Mcottle
6
Ich bin mir nicht sicher, ob es besser als zwei Methoden ist. Die Verwendung einer setIndentLevel-Methode bedeutet, dass Sie sich daran erinnern müssen, wie tief die Einrückung bei verschachtelten Elementen im Dokument gegangen ist. Das würde bedeuten, einen Zähler zu behalten. Nein, das sollte definitiv in der Verantwortung des Bauherrn liegen, nicht in Ihrer.
David
1
@ David: Sie können einfach zwei Wrapper-Methoden erstellen, um den Überblick zu behalten. In einigen Fällen kann es besser oder einfacher zu bedienen sein, in anderen Fällen nicht. Bei einer anderen Schnittstelle müssten Sie eine Methode zum Erhöhen / Verringern mehrmals oder in einer Schleife aufrufen. Also würde ich wahrscheinlich alle drei Versionen wollen: Set / Increase / Decrease
Falcon
1
@ David setIndentLevel(1 + getIndentLevel())- das Beste aus beiden Welten.
Izkata
5

Das Wort "Einzug" bedeutet eigentlich nicht "Leerzeichen einfügen" - es bedeutet "Leerzeichen so anpassen, dass die Dinge in einer Reihe stehen". Einrücken kann daher das Hinzufügen oder Entfernen von Registerkarten bedeuten. So wie es kein Gegenteil von "Gehen" gibt, gibt es konzeptionell kein Gegenteil von "Einrücken". Sie können die Einrückung entfernen, die Einrückung rückgängig machen oder die Einrückungsstufe ändern. Bei jeder dieser Operationen werden die Auswirkungen der Einrückung auf unterschiedliche Weise rückgängig gemacht oder geändert, aber keine davon ist das "Gegenteil" der Einrückung. Die populären "dedent" und "unindent" sind genauso falsch wie "unwalk" oder "defest". (Übrigens könnte dies eine gute Frage für english.se sein)

In deinem Fall würde ich mit IncreaseIndentationLevelund gehen DecreaseIndentationLevel.

tdammers
quelle
1
english.se diskutiert nicht gern Programmierbegriffe.
Jgauffin
Es ist eher ein Satzbegriff als ein Programmierbegriff, aber OK.
tdammers
"Einrückung", nicht "Einrückung".
Mike Sherrill 'Cat Recall'
1
Einverstanden sind "Einzug vergrößern" und "Einzug verringern" genau genommen die richtigen Begriffe. Ich würde erwarten, dass dies eine Sprache ist, die Programmierer verwenden und verstehen würden. Sie verwenden "negative Beschleunigung", wenn Sie davon sprechen, Ihr Auto zum Stillstand zu bringen, nicht wahr?
StevenV
4

Ich habe das Wort "outentent" gesehen, zum Beispiel auf der Seite "Wikipedia Template: Outdent "

Zum Übertreffen einer Antwort auf einer Diskussionsseite, wenn die Einrückung zu tief wird. Das Einrücken auf Diskussionsseiten erfolgt mit einem Doppelpunkt (:), um Tabulatoren zu erstellen. Diese Vorlage erzeugt eine Verbindungsleiste und einen Anfangstext, um einen Outdent anzuzeigen, basierend auf der Anzahl der Doppelpunkte, die im vorherigen Einzug verwendet wurden ...

Hans Keing
quelle
2

Ich habe Dedentin Fowlers Buch über DSLs gesehen.

Andrey Agibalov
quelle
2

FWIW Google Text & Tabellen und MS Word verwenden "Einzug vergrößern" und "Einzug verringern". Ich habe vergessen, welcher Editor (vielleicht war es TinyMCE, der in letzter Zeit damit gearbeitet hat), aber ich weiß, dass ich einmal "Indent" und "Outdent" gesehen habe.

Wayne Molina
quelle
1

Definition des Einzugs:

Beginnen (eine Textzeile) oder Position (ein Textblock, eine Tabelle usw.) weiter vom Rand entfernt als der Hauptteil des Textes

Es gibt nicht wirklich ein Gegenteil davon, sondern Sie rücken den Haupttext weiter als die angegebene Zeile ein.

Ich denke, ein besserer Begriff wäre RemoveIndent () oder ReduceIndent ()

Allerdings zeigt eine Google-Suche nach dem Begriff "Gegenteil von Einzug" den folgenden Begriff: Outdent . http://www.urbandictionary.com/define.php?term=indent Dies kann auch geeignet sein.

Gavin Coates
quelle
Outdent ist genauso hässlich wie Dedent. Das "In" in "Einzug" ist eigentlich kein Präfix und ersetzt es so, als wäre es ein Missbrauch der englischen Grammatik.
tdammers
@tdammers - in gewissem Sinne ist es. Sie verbeulen den Absatz nach innen, das Gegenteil wäre, ihn nach außen einzudellen - nach außen. Persönlich bevorzuge ich Remove / ReduceIndent () für einen Funktionsnamen ...
Gavin Coates
1
@tdammers: Anscheinend ist die "Ein-" in Gedankenstrich ist ein Präfix ( "in, in, auf, auf" - etymonline.com/index.php?term=indent ). Nicht, dass es wichtig wäre - ich sehe nichts "Missbräuchliches" an der Volksetymologie ( en.wikipedia.org/wiki/Folk_etymology ); Es ist Teil der Sprachentwicklung. Und ich bin nicht der Meinung, dass Outdent so hässlich wie Dedent ist . Ich bin mir nicht einmal sicher, welche Silbe ich in Dedent betonen soll ; es ist so oder so sehr hässlich. Aber outent ist nett und offensichtlich. Es ist eine perfekte Ergänzung zum Einrücken . Die beiden Wörter bilden ein schönes Paar, das sich mit einem sehr visuellen Kontrast definiert. Ich mag das.
Callum
Entschuldigung, ich habe gerade festgestellt, dass ich diese Frage oder ihre Antworten nicht richtig gelesen habe ... Ich ging davon aus, dass es sich um die automatische Anzeige von Zeilenumbrüchen in einem Texteditor handelt. In diesem Fall wäre outent (dh die Option, eine Linie weiter links als die darüber liegende Linie anzuzeigen ) meiner Meinung nach perfekt. Bei dieser Frage geht es jedoch tatsächlich darum , einen bereits vorhandenen Einzug zu entfernen - beispielsweise, wenn Sie Umschalt + Tab drücken. In diesem Fall stimme ich zu reduceIndent()oder sogar unindent().
Callum
Habe meine eigenen Nachforschungen angestellt; Ja, das "In" ist eigentlich ein Präfix, aber wie Callum sagt, würde "Outdent" eine Linie bedeuten, die links vom linken Rand beginnt. IIRC, so etwas wird beim Satz als negativer Einzug bezeichnet, nicht als Outent, und es ist sowieso nicht das, worüber wir hier sprechen.
tdammers
0

Ich weiß, dass ich etwas spät zur Party komme, hatte aber das gleiche Problem, das Gegenteil zu finden Indent. Da es hier verschiedene Antworten auf diese Frage gibt, fragte ich einen englischen Kollegen (UK), was er wählen würde: Sein erster Tipp war IncreaseIndentund DecreaseIndent. Aber Indentund Detentwürde auch funktionieren.

Markus
quelle