http://www.w3.org/TR/DOM-Level-2-Traversal-Range/
Nous devrons trouver/écrire une suite de tests.
ugh, cette spécification a fait saigner mes yeux
ouais, j'aurais assez peur de l'implémenter sans une suite de tests w3c
Ce que j'ai découvert jusqu'à présent :
Cela semble prometteur : https://github.com/w3c/web-platform-tests/tree/master/dom
Notez que ceux-ci testent le « DOM sans version » sur http://dom.spec.whatwg.org/ et non le niveau 2 spécifiquement. Mais, ils sont plus susceptibles de refléter de vrais navigateurs.
J'en ai essentiellement fini avec la fonctionnalité principale, mais j'ai pas mal de problèmes pour garder les plages en direct. J'ai besoin d'exploiter pratiquement toutes les mutations du DOM et je ne suis pas sûr de la meilleure façon de le faire. Dans certains cas, j'ai utilisé les événements de mutation, dans d'autres cas, j'ai enveloppé les méthodes correspondantes sur le prototype.
En ce moment, je me demande comment supprimer des nœuds . Avec suppress observers flag
défini, l'événement ne serait pas émis, mais les plages doivent toujours être mises à jour. Quelqu'un a-t-il une idée? Je pense que nous devrions peut-être avoir un système d'événement interne très simple dans tout le DOM pour de telles choses ; il peut également être utilisé pour _attrModified
, par exemple.
@adrianlang c'est génial !
Il semble que cela soit lié à notre désir de longue date de cesser d'utiliser les événements de mutation en interne et d'avoir à la place un protocole privé qui ne peut jamais être désactivé. Voir #295. Je sais que c'est beaucoup demander, mais résoudre ce problème pourrait être la voie à suivre pour cela ?
Les commentaires indésirables +1 entraînent le déplacement des fonctionnalités vers l'arrière du backlog. Veuillez utiliser les boutons de vote à la place. Suppression des +1 récents.
Je suis toujours là, d'ailleurs, tout comme mon code à moitié fini. J'espère finir par y arriver.
@adrianheine L'implémentation de TreeWalker qui a atterri vous aide-t-elle à vous rapprocher de la fin de votre implémentation ?
J'utilise parfois Range#createContextualFragment
, je ne sais pas vraiment pourquoi cette méthode utile est là (elle mériterait d'être directement sur le document, ou DocumentFragment)
donc j'ai fini par faire ça pour des tests
global.document.createRange = () => ({
createContextualFragment: str => JSDOM.fragment(str)
});
Mais toute l'API Range serait bien plus
@domenic Je pense que ce que @acusti demandait, c'est quelles sont les prochaines étapes pour que cela soit vérifié ?
J'essaye d'utiliser ceci :
https://github.com/PrismJS/prism/issues/896
Quelqu'un peut-il recommander un chemin alternatif? J'aime l'idée d'avoir un diff mis en évidence et une coloration syntaxique avec Prism. Peut-être même mieux que le surligneur de Github.
Je serais prêt à https://www.patreon.com/ pour une raison de plus de ne plus jamais utiliser SourceTree.
@adrianheine Je pourrais être intéressé à aider si vous partagez votre WIP.
Vous avez des erreurs dans les tests de plaisanterie.
TypeError: document.createRange is not a function
at createRange (node_modules/popper.js/src/utils/findCommonOffsetParent.js:27:26)
at findCommonOffsetParent (node_modules/popper.js/src/utils/getReferenceOffsets.js:16:85)
at Popper.getReferenceOffsets (node_modules/popper.js/src/methods/update.js:29:28)
at Popper.call (node_modules/popper.js/src/index.js:94:19)
at node_modules/popper.js/dist/umd/popper.js:51:7
Trouvez le lien ici
Bonjour, des avancées depuis ?
Quand va-t-il sortir? Donc jest pourrait passer à la version la plus récente.
Commentaire le plus utile
https://mobile.twitter.com/slicknet/status/782274190451671040