Terme du tiret opposé [clôturé]

11

Nous disons que nous indentons le code. J'écris un générateur de chaînes qui peut ajouter / supprimer des onglets au code en retrait.

Échantillon:

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

Comment dois-je nommer la méthode?

jgauffin
la source
3
C'est un peu hors sujet, mais: vous pourriez peut-être éviter d'appeler explicitement indent / dedent si vous remplaciez les appels Add ("<ul>") et Ident () par un BeginElement ("ul") qui inclurait une logique de retrait. (et aussi une méthode EndElement bien sûr)
David
@David: +1, mais bien sûr, vous voudriez prendre en compte les éléments imbriqués en ligne :)
Demian Brecht
11
Et alors outdent?
Kevin
@Kevin: Excellente alternative, mais pourquoi ne l'ajoutez-vous pas comme réponse?
jgauffin
@David: Il est utilisé à l'intérieur d'un framework et n'est pas exposé à l'utilisateur (la classe est cependant publique afin que l'utilisateur puisse l'utiliser à ses propres fins). De plus, il peut être utilisé pour plus que du balisage, donc BeginElementetc n'est pas approprié.
jgauffin

Réponses:

24

Out est l'opposé de in, tout le monde le sait. Pourquoi ne pas utiliser Indent()et Outdent()?

Kevin
la source
C'est comme ça que je l'ai toujours appelé au moins.
Callum Rogers
Même chose ici, j'ai toujours entendu dire que c'était du dépassement.
Brian Knoblauch
17

Pour l'opposé de indent, j'utiliserais unindent. Du Wiktionnaire:

indenté

Étymologie
un- + indent; Originaire des années 1980, lorsque les ordinateurs rendaient trivial le déplacement de texte sur une page.
Verbe non
indenté ( indindents présents simples singuliers à la troisième personne , indentation du participe présent , passé simple et participe passé non indenté )
1. Pour supprimer l'indentation; pour rapprocher un bloc de texte de la marge gauche.
J'ai dû retirer la première ligne de chaque paragraphe pour que mon essai tienne sur un côté du papier.

Selon le dictionnaire d'étymologie en ligne , le retrait provient de:

début 15c., indenten / endenten "pour faire des encoches; pour donner (quelque chose) une apparence dentée ou dentelée," aussi "pour faire un acte juridique", de O.Fr. endenter "à entailler ou bosseler, donner un bord dentelé à," de ML indentare "pour fournir des dents," de in- "dans, dans, sur, sur" (voir in- (2)) + L. dens (gen . dentis ) "dent" (voir la dent). Connexes: en retrait; indentation . Le sens de l'impression est d'abord attesté dans les années 1670. Le nom est d'abord enregistré dans les années 1590, à partir du verbe. Un sens antérieur du nom d'un «accord écrit» (fin du 15 e s.) Est décrit dans le Middle English Dictionary comme «abréviation scribale d' endenture ».

Le retrait est donc comme mettre une "encoche" dans le code source. Pour supprimer cette encoche, vous annulez le retrait: indentation.

Hugo
la source
16
Indent
Dedent

Pour sauvegarder cela, un rapide Google aide: unindent a 290 000 visites tandis que dedent a 1 920 000 visites, ce qui donne une indication approximative que ce dernier est plus largement utilisé. Bien que cela doive être utilisé comme argument très prudemment.

Dedentest également la terminologie standard utilisée dans les documents python .

dagnelies
la source
2
En fait, "dedent" n'a que 321 000 hits lorsque vous le mettez entre guillemets et beaucoup de ces hits n'ont rien à voir avec l'indentation, mais sont plutôt des noms ou d'autres choses (termes dentistes peut-être?). "unindent" a 267 000 visites.
Falcon
2
Dedent n'est pas un vrai mot anglais. Une bonne API est claire et facilement compréhensible par tous ceux qui lisent la source (autant j'aime Python, cela m'a fait découvrir une bizarrerie que je n'aime pas du tout). Les uns à côté des autres, cela a du sens, mais pourrait ne pas en être autrement (ou pour quelqu'un qui ne parle pas assez bien l'anglais).
Demian Brecht
1
@Demian Bien sûr, c'est un mot anglais, nous l'utilisons. Comment pourrions-nous l'utiliser s'il n'existait pas? L'anglais n'est pas une langue prescriptiviste étroitement réglementée.
Konrad Rudolph
6
Eh bien, "surpassé" a presque 14 millions de visites.
Mike Sherrill 'Cat Recall'
2
@Demian Brecht: C'est juste un néologisme. En tant que programmeur, vous y êtes plongé quotidiennement. Habituez-vous.
Jon Purdy
12

Vous ne voulez pas dire le retrait ?

L'intention signifie quelque chose de complètement différent.

Sinon, peut Unindent- être ?

A côté:

  • L'utilisation d'onglets pour indenter du code est mauvaise (à mon humble avis) - les espaces sont plus portables.
  • Je n'aurais pas cette API exposée au client. Ils builderdoivent être suffisamment intelligents pour savoir quoi et quoi ne pas mettre en retrait.
Demian Brecht
la source
4
Le message de Jeff Atwood ne dit pas pourquoi l'utilisation des onglets est mauvaise. Il jette juste une insulte aux utilisateurs d'onglets à la fin.
Peter Taylor
16
"les espaces sont plus portables": qu'est-ce que ça veut dire?!?!? ... aussi, je ne suis pas d'accord pour dire que les onglets sont mauvais, en fait, je les trouve personnellement bons . Il est plus propre, plus facile à analyser et permet à l'utilisateur de choisir la façon dont il doit être représenté dans la vue. Je ne vois aucun inconvénient négatif sur eux, contrairement aux espaces qui n'ont pas les avantages mentionnés précédemment.
dagnelies
3
@arnaud: vous devriez lire sur les onglets vs les espaces. c'est en grande partie un débat religieux, mais dans mes expériences, les espaces ont toujours prévalu ( surtout si vous travaillez sur un projet OS ou si vous avez plusieurs développeurs qui utilisent différents éditeurs). vraiment, à la fin de la journée, l'important est la cohérence.
Demian Brecht
2
Le mieux est d'avoir un éditeur qui place automatiquement les espaces X lorsque vous appuyez sur Tab.
Jose Faeti
2
@Konrad: Nommez un éditeur qui ne prend pas en charge les onglets?
Callum Rogers
5

Qu'en est-il SetIndentLevel(int level).

Supprimer un retrait est alors juste mettre le niveau à 0. Afaik il n'y a pas de terme pour l'opposé de cette opération.

Faucon
la source
+1 - C'est une meilleure approche que deux appels de fonction pour incrémenter et décrémenter le niveau de retrait.
mcottle
6
Pas sûr que ce soit mieux que 2 méthodes. L'utilisation d'une méthode setIndentLevel signifie qu'il est de votre responsabilité de vous souvenir de la profondeur de l'indentation en cas d'éléments imbriqués dans le document. Cela signifierait tenir un compteur. Non, c'est certainement la responsabilité du constructeur, pas la vôtre.
David
1
@David: Vous pouvez facilement créer deux méthodes de wrapper pour en faire le suivi. Dans certains cas, il peut être meilleur ou plus facile à utiliser tandis que dans d'autres cas, ce n'est pas le cas. Avec une autre interface, vous devrez appeler une méthode d'augmentation / diminution plusieurs fois ou en boucle. Je voudrais donc probablement les trois versions: Définir / Augmenter / Diminuer
Falcon
1
@David setIndentLevel(1 + getIndentLevel())- le meilleur des deux mondes.
Izkata
5

Le mot "indentation" ne signifie pas réellement "insérer un espace blanc" - cela signifie "ajuster l'espace blanc pour que les choses s'alignent". En tant que tel, le retrait peut signifier à la fois ajouter ou supprimer des onglets; tout comme il n'y a pas d'opposé à «marcher», conceptuellement parlant, il n'y a pas d'opposé à «mettre en retrait». Vous pouvez supprimer l'indentation, annuler l'indentation ou modifier le niveau d'indentation, chacune étant des opérations qui annulent ou modifient en quelque sorte les effets de l'indentation, de différentes manières, mais aucune d'entre elles n'est "l'opposé" de l'indentation. Les termes «dédent» et «indenté» populaires sont faux de la même manière que «déambuler» ou «différer». (BTW, cela pourrait poser une bonne question pour english.se)

Dans votre cas, j'irais avec IncreaseIndentationLevelet DecreaseIndentationLevel.

tdammers
la source
1
english.se n'aime pas beaucoup discuter des termes de programmation.
jgauffin
C'est plus un terme de composition qu'un terme de programmation, mais OK.
tdammers
"Indentation", pas "indentation".
Mike Sherrill 'Cat Recall'
1
D'accord, "Augmenter le retrait" et "Diminuer le retrait" sont les termes corrects à proprement parler. Je m'attendrais à ce que ce soit un langage que les programmeurs utiliseraient et comprendraient. Vous utilisez "l'accélération négative" lorsque vous parlez d'arrêter votre voiture, n'est-ce pas?
StevenV
4

J'ai vu le mot "outentent", par exemple sur Wikipedia Template: Outdent page

Pour avoir dépassé une réponse sur une page de discussion lorsque l'indentation devient trop profonde. Le retrait des pages de discussion se fait à l'aide d'un caractère deux-points (:) pour produire des tabulations; ce modèle produit une barre de connexion et un texte initial pour indiquer un retrait, en fonction du nombre de deux-points utilisés dans le tiret précédent ...

Hans Ke st ing
la source
2

J'ai vu Dedentdans le livre de Fowler sur les DSL.

Andrey Agibalov
la source
2

FWIW Google Docs et MS Word utilisent "Augmenter le retrait" et "Diminuer le retrait". J'oublie quel éditeur (c'était peut-être TinyMCE, avec qui j'ai travaillé récemment) mais je sais que j'ai déjà vu "Indent" et "Outdent"

Wayne Molina
la source
1

Définition du retrait:

Commencez (une ligne de texte) ou positionnez (un bloc de texte, un tableau, etc.) plus loin de la marge que la partie principale du texte

Il n'y a pas vraiment d'opposé, mais vous indentez plus le texte principal que la ligne spécifiée.

Je pense qu'un meilleur terme serait RemoveIndent () ou ReduceIndent ()

Cela dit, une recherche google pour le terme «opposé du tiret» révèle le terme suivant: Outdent . http://www.urbandictionary.com/define.php?term=indent Cela peut également convenir.

Gavin Coates
la source
Outdent est tout aussi laid que dédent. Le "in" dans "indent" n'est pas un préfixe, vraiment, le remplacer comme s'il s'agissait d'un abus de grammaire anglaise.
tdammers
@tdammers - dans un sens c'est le cas. Vous bosselez le paragraphe vers l'intérieur, donc l'opposé serait de le bosseler vers l'extérieur - Outdent. Personnellement, je préfère Remove / ReduceIndent () mais pour un nom de fonction ...
Gavin Coates
1
@tdammers: Apparemment, le "in" en retrait est un préfixe ("into, in, on, upon" - etymonline.com/index.php?term=indent ). Ce n'est pas important - je ne vois rien "d'abusif" dans l'étymologie populaire ( en.wikipedia.org/wiki/Folk_etymology ); cela fait partie de l'évolution du langage. Et je ne suis pas d'accord pour dire que le dépassement est aussi moche que le dédain . Je ne suis même pas sûr de la syllabe à souligner en déduction ; c'est très moche de toute façon. Mais le dépassement est agréable et évident. C'est un complément parfait au retrait . Les deux mots créent une belle paire qui se définissent avec un contraste très visuel. Je l'aime.
Désolé, je viens de réaliser que je n'ai pas lu correctement cette question ou ses réponses ... Je supposais qu'il s'agissait de l'affichage automatique des lignes encapsulées dans un éditeur de texte. Dans ce cas, le dépassement (ce qui signifie l'option d'afficher une ligne plus à gauche que la ligne au-dessus) serait parfait à mon avis. Mais cette question concerne en fait la suppression d' un retrait qui existe déjà - comme ce qui se passe lorsque vous appuyez sur Maj + Tab. Dans ce cas, je suis d'accord avec reduceIndent(), ou même unindent().
callum
A fait mes propres recherches; oui, le "in" est en fait un préfixe, mais comme l'indique le callum, "outdent" signifierait une ligne qui commence à gauche du bord gauche. IIRC, une telle chose est appelée un tiret négatif dans la composition, pas un dépassement, et ce n'est pas ce dont nous parlons ici de toute façon.
tdammers
0

Je sais que je suis un peu en retard à la fête, mais j'ai juste eu le même problème pour trouver le contraire Indent. Comme voici plusieurs réponses différentes à cette question, j'ai demandé à un collègue anglais (Royaume-Uni) ce qu'il choisirait: son premier conseil était IncreaseIndentet DecreaseIndent. Mais Indentet Detentfonctionnerait également.

Markus
la source