Je comprends la logique derrière cette différence. Cependant, je souhaiterais afficher le contexte pour une plage de lignes. Existe-t-il une astuce particulière pour cela ?
De plus, existe-t-il un moyen de configurer le nombre de lignes de contexte affichées ?
Ce n’est pas configurable pour le moment. Je me demande toutefois, à quoi bon ajouter du contexte si vous pouvez simplement demander L12-L20 ?
C’est un peu deux demandes de fonctionnalités en une Je suppose que vous voulez qu’il « surligne » les lignes, puis ajoute du contexte autour ? Je suppose que cela peut être utile pour une sélection de 2 à 5 lignes, mais un énorme bloc en jaune serait assez criard.
Dans ce cas, je guide le lecteur à travers une série de modifications apportées à un fichier. Le contexte est important dans chaque situation, que je mette en évidence une seule ligne ou plusieurs.
Le composant met déjà en évidence une ligne avec contexte. Le cas que je présente ici souhaiterait appliquer ce même comportement à plusieurs lignes.
Je comprends la logique du schéma actuel, mais je pense qu’il y a un argument solide pour prendre en charge également les mises en évidence multi-lignes avec contexte.
Si Onebox n’est pas déjà configurable au-delà du lien lui-même, il faudrait le rendre tel. Peut-être quelque chose comme ceci ?
Il n’y a pas grand-chose de nouveau ici, si ce n’est la configuration de ce que le composant formate et affiche.
De manière naïve, il semble que cela ne nécessiterait qu’une modification côté backend. Considérons les différences entre ces deux réponses onebox.json :
Comme on pourrait s’y attendre, l’une inclut un contexte avec une ligne highlight, tandis que l’autre n’en a pas.
Si le backend était configurable par requête, il s’agirait simplement d’appliquer les règles de formatage existantes. Je constate que l’implémentation suppose une seule ligne à mettre en évidence. La modification pour prendre en charge une plage de lignes est minime (par exemple, utiliser un tableau de lignes à mettre en évidence et vérifier l’appartenance).
Peut-être que quelque chose comme cela fonctionnera pour ces cas, s’il s’agit de 100 % de valeurs aberrantes. Le problème est que cela entre en conflit avec GitHub, ce qui n’est pas idéal.
Personnellement, j’éviterais un comportement implicite. J’ai déjà un exemple qui met en évidence cinq lignes
J’ai mis en place une solution de contournement qui utilise un composant de thème recherchant un div enveloppant contenant la configuration pour le lien GitHub encapsulé. Le composant attend l’événement de modification du DOM pour savoir quand le lien est remplacé par des lignes de code, puis agit sur l’état li.selected pour effectuer la sélection. Cette astuce ne modifie pas les lignes récupérées, elle ne peut donc pas ajouter ou supprimer de contexte.
Je pense qu’une méthode explicite pour contrôler le comportement serait préférable à la modification des valeurs par défaut ou à l’effort visant à rendre le composant plus intelligent.
Transmettre la configuration ou les paramètres directement dans l’URL pourrait fonctionner, mais cela compromet la signification sémantique du lien. Si l’utilisation d’une balise enveloppante n’est pas possible, je suppose que vous souhaiteriez au moins supprimer la configuration spécifique aux onebox.