Xterm.js: Mettre en œuvre la sélection virtuelle

Créé le 25 juil. 2016  ·  10Commentaires  ·  Source: xtermjs/xterm.js

La gestion manuelle de la sélection, plutôt que de s'appuyer sur la sélection Web native, résoudra un tas de problèmes introduits par la zone de texte d'aide à la saisie, tels que #68, #69 ainsi que :

  • Double-cliquer sur la ligne d'invite étant floconneuse en raison du déplacement de la mise au point de .xterm vers la zone de texte.
  • Double-cliquer sur une URL/un chemin pour mettre en surbrillance le chemin entier (c'est-à-dire ne pas utiliser / et des caractères similaires comme séparateurs)
  • Sélection et copie de plusieurs pages du tampon
  • Rendre la hauteur de ligne de la sélection exacte afin qu'il n'y ait jamais d'espace entre les lignes
  • Ne laissez pas tomber la sélection en cas de changement de contenu ou de défilement de la fenêtre https://github.com/sourcelair/xterm.js/issues/468#issuecomment -290909092
typenhancement

Commentaire le plus utile

Voici ce que je pense doit se produire pour cela:

  • [ ] Désactiver la sélection Web native
  • [ ] Créez un modèle de sélection qui est conscient du tampon et de la façon dont il se coupe continuellement (peut être bloqué sur l'objet Buffer introduit dans https://github.com/sourcelair/xterm.js/pull/609)
  • [ ] Attacher les événements de souris au modèle de sélection

    • [ ] Glisser-déposer simple dans la fenêtre

    • [ ] Faire glisser au-delà de la fenêtre

  • [ ] Visualiser le modèle de sélection à l'écran
  • [ ] Branchez copier et coller
  • [ ] Essais, essais, essais

Inconnus

  • Comment pouvons-nous garder la sélection thématisée par les consommateurs comme nous le faisons actuellement via ::selection ?

Tous les 10 commentaires

Super. Ajout de ceci au jalon pour la prochaine version.

Suppression de cela du jalon car la raison la plus importante pour cela était la régression copier/coller du clic droit, qui est maintenant traitée dans #293 sans sélection virtuelle.

J'ai une question : sera-t-il possible alors d'avoir une copie automatique de la sélection dans le presse-papier ? (car cela ne semble pas fonctionner au moins sur macOS)

@shouze oui, cela peut arriver en utilisant la zone de texte masquée.

si vous rencontrez des problèmes en ce moment avec le copier-coller dans xterm.js, pouvez-vous ouvrir un nouveau problème s'il vous plaît pour suivre ce qui ne va pas là-bas ?

@parisk, je

Voici ce que je pense doit se produire pour cela:

  • [ ] Désactiver la sélection Web native
  • [ ] Créez un modèle de sélection qui est conscient du tampon et de la façon dont il se coupe continuellement (peut être bloqué sur l'objet Buffer introduit dans https://github.com/sourcelair/xterm.js/pull/609)
  • [ ] Attacher les événements de souris au modèle de sélection

    • [ ] Glisser-déposer simple dans la fenêtre

    • [ ] Faire glisser au-delà de la fenêtre

  • [ ] Visualiser le modèle de sélection à l'écran
  • [ ] Branchez copier et coller
  • [ ] Essais, essais, essais

Inconnus

  • Comment pouvons-nous garder la sélection thématisée par les consommateurs comme nous le faisons actuellement via ::selection ?

Je ne pense pas que vous serez en mesure de maintenir une fonctionnalité de thématisation parfaite à l'envers (vous aurez probablement besoin de thématiser une classe CSS, comme le fait CodeMirror), mais je ne pense pas que cela devrait être un bloqueur. Si nécessaire, vous pouvez effectuer une mise à niveau de point de version majeure. Cela ne devrait être qu'une minute de travail pour migrer un style.

Eh bien, la sélection sera probablement séparée du texte réel, je pense simplement appliquer des classes comme celles de xterm-color-x à la sélection également. Ce serait une régression dans VS Code, c'est la principale raison pour laquelle je suis après cela, c'est génial pour l'accessibilité d'inverser les couleurs.

Je ne pense pas que cela vaudrait la peine d'une mise à jour de version majeure pour changer cela, je suis le seul à le faire AFAIK.

@Tyriar puisque la sélection aura ses propres nœuds DOM, nous pouvons simplement utiliser quelque chose comme .xterm-selection pour le style et également revenir au style ::selection .

Enfin, il n'y a aucune raison de publier une nouvelle version majeure pour cela, car nous n'avons pas encore d'API de thème officielle et stable.

@parisk web selection ::selection sera complètement désactivé car nous gérerons le modèle de sélection. Mais oui, l'utilisation de classes qui reflètent les classes de couleurs normales devrait fonctionner correctement.

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