Как я могу обнаружить события буфера обмена из пакета Atom? - PullRequest
0 голосов
/ 10 декабря 2018

Я создаю пакет для редактора Atom .Я хотел бы вызывать функцию всякий раз, когда пользователь обрезает, копирует или вставляет текст.В идеале у atom.clipboard должно быть три события, на которые я мог бы подписаться, но это не так.

Я пытался использовать событие copy, как в:

atom.views.getView(atom.workspace).addEventListener("copy", console.log);

... но это не работает.Событие не запускается-плюс пакет.Это в основном меняет clipboard.write, так что он запускает часть моего кода всякий раз, когда пользователь что-то копирует.Это работает, но есть несколько проблем:

  • Я вижу, что пользователь пишет в буфер обмена, но я не вижу, было ли это вырезкой или копией.Я хотел бы иметь возможность сделать это различие.
  • Другие пакеты могут вызывать clipboard.write, но я забочусь только об обрезке, копировании и вставке пользователем.

Я мог быПопытайтесь выяснить проблему «вырезать против копии», подписавшись на изменения в документе, но это кажется более сложным и подверженным ошибкам, и я бы предпочел этого не делать.Есть ли лучшее решение?

...