Yarn: Supprimer le préfixe « Texte » dans le modÚle de texte

CrĂ©Ă© le 28 oct. 2018  Â·  13Commentaires  Â·  Source: FabricMC/yarn

Actuellement, le net/minecraft/text a tous les composants du modÚle de texte préfixés par TextComponent , contrairement au schéma de nommage de Mojang ( XComponent ).

Il est important de noter que seul TextComponent représente directement le texte réel, le reste ne sont que des espaces réservés à part un modÚle qui est construit en texte cÎté client. OMI, le préfixe Text est verbeux et inutile.

Je propose que nous utilisions la dénomination de Mojang (lorsqu'elle est connue) et les modifications suivantes :

  • net/minecraft/text/ITextComponent -> net/minecraft/text/Component (c'est en quelque sorte donnĂ© dans une partie du code de sĂ©rialisation).
discussion

Commentaire le plus utile

Fabric a tendance à utiliser des préfixes communs partout, ce qui est trÚs utile pour la complétion et la reconnaissance automatiques de l'IDE. Ne pas utiliser Text* ne conviendrait pas à tout le reste.

Je préfÚre laisser tomber l'infixe "Composant", c'est techniquement faux (le "composant" fait généralement référence à l'ensemble, pas à une partie ("composant") de quelque chose) et n'ajoute rien à la lisibilité.

Tous les 13 commentaires

Je propose que nous utilisions le nom de Mojang (lorsqu'il est connu)

Cela a toujours Ă©tĂ© un point controversĂ© : certains dĂ©veloppeurs Fabric soutiennent que les noms devraient plutĂŽt ĂȘtre amĂ©liorĂ©s, le cas Ă©chĂ©ant. Personnellement, je pense que mĂȘme si les noms officiels sont un indice utile, nous devrions les traiter comme cela - un indice. De plus, je ne crois pas que les noms dans toString reflĂštent toujours le nom de classe rĂ©el.

De toute façon, je suis contre, mais je suis un adepte de la verbosité.

  • « Composant » est un mot-clĂ© commun qui peut facilement ĂȘtre imaginĂ© comme se produisant dans de nombreux modĂšles de contenu modifiĂ©s, potentiellement mĂȘme non loin du code Ă©mettant des messages de discussion.
  • Utiliser ou ne pas utiliser "I" pour marquer les interfaces est, encore une fois, un sujet de dĂ©bat - mĂȘme si je pensais que nous nous sommes gĂ©nĂ©ralement contentĂ©s de l'utiliser, Ă  l'exception peut-ĂȘtre des dĂ©rivĂ©s directs des interfaces Java (par exemple, IntIterable Ă©tend Iterable).

Fabric a tendance à utiliser des préfixes communs partout, ce qui est trÚs utile pour la complétion et la reconnaissance automatiques de l'IDE. Ne pas utiliser Text* ne conviendrait pas à tout le reste.

Je préfÚre laisser tomber l'infixe "Composant", c'est techniquement faux (le "composant" fait généralement référence à l'ensemble, pas à une partie ("composant") de quelque chose) et n'ajoute rien à la lisibilité.

« Composant » est un mot-clĂ© commun qui peut facilement ĂȘtre imaginĂ© comme se produisant dans de nombreux modĂšles de contenu modifiĂ©s, potentiellement mĂȘme non loin du code Ă©mettant des messages de discussion.

C'est un point juste, mĂȘme si je ne pense pas que cela ferait une trop grande diffĂ©rence (c'est rarement importĂ©) - les sous-classes (Texte, Score, etc.) Je doute vraiment qu'il puisse s'agir d'un autre systĂšme, donc je ne pense pas que ce soit tellement un problĂšme.

Utiliser ou ne pas utiliser "I" pour marquer les interfaces est, encore une fois, un sujet de dĂ©bat - mĂȘme si je pensais que nous nous sommes gĂ©nĂ©ralement contentĂ©s de l'utiliser, Ă  l'exception peut-ĂȘtre des dĂ©rivĂ©s directs des interfaces Java (par exemple, IntIterable Ă©tend Iterable).

Eh bien, c'est une discussion diffĂ©rente, j'ai ma prĂ©fĂ©rence mais cela peut ĂȘtre discutĂ© ailleurs - pour les besoins de cette discussion, je serais heureux avec soit Component soit IComponent .


Fabric a tendance à utiliser des préfixes communs partout, ce qui est trÚs utile pour la complétion et la reconnaissance automatiques de l'IDE. Ne pas utiliser Text* ne conviendrait pas à tout le reste.

Vraiment? Vous obtiendriez certainement toujours l'achÚvement pour TextComponent , et j'imagine les autres aussi (étant donné le package, mais je suppose que cela dépend de l'IDE).

Je préfÚre laisser tomber l'infixe "Composant", c'est techniquement faux (le "composant" fait généralement référence à l'ensemble, pas à une partie ("composant") de quelque chose) et n'ajoute rien à la lisibilité.

Ce n'est pas parce que, dans de nombreux cas, qu'un seul composant est utilisĂ©, que plusieurs peuvent ĂȘtre utilisĂ©s (et le sont frĂ©quemment - par exemple Press <x> button to jump ). Le composant est une partie essentielle du nom.

Cette chose est, bien que cela soit certainement Ă  part du modĂšle de texte (d'oĂč net/minecraft/text ), un seul composant ( TextComponent ) est du texte rĂ©el - le reste est des espaces rĂ©servĂ©s que le client doit remplir. OMI, cela n'a pas trop de sens de rĂ©pĂ©ter le package pour les composants dans le nom de la classe.

Ils reprĂ©sentent tous du texte localisable, gĂ©nĂ©ralement Ă  afficher sur le client. « Texte » exprime naturellement qu'il peut ĂȘtre intĂ©grĂ© Ă  lui-mĂȘme.

Si vous y rĂ©flĂ©chissez dans l'autre sens, le "composant" n'a pas de vĂ©ritable conteneur, il est toujours contraint Ă  lui-mĂȘme jusqu'Ă  ce qu'il soit consommĂ© ou exportĂ© dans une chaĂźne. "Composant" est une distinction inutile envers quelque chose qui n'existe pas. Supprimer le « Texte » le rend aussi gĂ©nĂ©rique et dĂ©pourvu de sens que « ÉlĂ©ment », « Partie » ou similaire, perdant la description de son identitĂ©/but.

À propos de l'argument du package : je pense que vous ne regardez pas vraiment les noms des packages lorsque vous lisez du code...

À propos de l'argument du package : je pense que vous ne regardez pas vraiment les noms des packages lorsque vous lisez du code...

Bien sûr, lors de la lecture du contexte du code, vous connaissez son texte - le package n'est vraiment pertinent que lors de l'importation. Bien que l'importation soit le seul cas, je vois que c'est un problÚme de toute façon...

// Even when using Component in a field, context easily allows you to
// know its text-related
final Component message = new TextComponent("Hello, World!");
player.message(message);

// Each of the components are fairly easily identifiable as text
player.message(new KeybindComponent("key.jump"));
player.message(new TranslatableComponent("info.kick", "player-x"));
player.message(new ScoreComponent("name", "objective"));
player.message(new SelectorComponent("pattern"));

Jetez un Ɠil aux exemples pour kyori/text , pour voir que mĂȘme sans le prĂ©fixe 'Text', il est toujours trĂšs facile de voir ce que cela signifie et a l'air beaucoup plus propre aussi (IMO ofc).

Vous avez peut-ĂȘtre raison avec les exemples de code, mĂȘme si je dirais toujours que ScoreComponent/SelectorComponent/KeybindComponent peut prĂȘter Ă  confusion dans certains contextes.

Et je ne serais toujours pas si sûr d'appeler la base "Composant". Me frotte dans le mauvais sens.

Et je ne serais toujours pas si sûr d'appeler la base "Composant". Me frotte dans le mauvais sens.

Peut-ĂȘtre, mais ce n'est pas rare - prenez org.w3.dom.Node par exemple.

Je ne supprimerais pas le prĂ©fixe de texte car le composant seul causerait de la confusion car il existe de nombreuses classes similaires portant les mĂȘmes noms

D'accord mais regardons ce qui se passe Ă  l'inverse :

// Even without Component in the name, names are still focused on the object's use
// Note that I've reversed from StringText to TextString because it flows more naturally
// in english
final Text message = new TextString("Hello, World!");
player.message(message);

// Each of these objects' purposes are easily determined without the word "Component"
player.message(new KeybindText("key.jump"));
player.message(new TranslatableText("info.kick", "player-x"));
player.message(new ScoreText("name", "objective"));
player.message(new SelectorText("pattern"));

Cela me semble légitime.

Eh bien, comme me l'a rappelé kashike - Mojang ne les appelle pas des composants de texte - ils les appellent des composants de chat (il suffit de regarder les journaux des modifications pour le savoir).

Ils ne font pas non plus référence au composant de texte en tant que composant de texte de chaßne - le texte pour eux est ce que Fabric appelle chaßne.

Encore une autre confirmation que mojang les appelle des composants
image

Mes recherches m'ont amené qui sont dans un package de chat en réseau pour ce que ça vaut -> https://github.com/jamiemansfield/mcmap/tree/18w50a/workspace/net/minecraft/network/chat

(Modifier : mobile stupide)

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

ChloeDawn picture ChloeDawn  Â·  5Commentaires

Bixilon picture Bixilon  Â·  5Commentaires

ChloeDawn picture ChloeDawn  Â·  6Commentaires

liach picture liach  Â·  4Commentaires

quat1024 picture quat1024  Â·  6Commentaires