var regExp = /[！-～”’、。ー]/;
var userWasCanceled = false;
export default function zenkakuToHankaku(cm, change) {
  if (userWasCanceled || change.origin !== '+input' && change.origin !== '*compose') return; // 全角の数字・記号が含まれているかどうか

  var hasZenkaku = regExp.test(change.text.join());
  if (!hasZenkaku) return; // 半角に変換する

  var text = change.text.map(function (text) {
    return text.split('').map(function (char) {
      if (regExp.test(char)) {
        var hankaku = char.replace(/[！-～]/, function (s) {
          return String.fromCharCode(s.charCodeAt(0) - 0xfee0);
        }).replace(/”/, '"').replace(/’/, "'").replace(/、/, ',').replace(/。/, '.').replace(/ー/, '-'); // 置換するか聞く

        if (!userWasCanceled && confirm("\u5168\u89D2\u306E ".concat(char, " \u304C\u5165\u529B\u3055\u308C\u307E\u3057\u305F\u3002\u30D7\u30ED\u30B0\u30E9\u30DF\u30F3\u30B0\u3067\u306F\u3075\u3064\u3046\u534A\u89D2\u306E ").concat(hankaku, " \u3092\u4F7F\u3044\u307E\u3059\u3002 ").concat(hankaku, " \u306B\u3057\u307E\u3059\u304B\uFF1F"))) {
          alert('次からは、キーボードの【全角/半角】または【英数】キーを押して、半角入力にしておきましょう！');
          return hankaku;
        } else {
          // キャンセルされたらもう聞かない
          userWasCanceled = true;
        }
      }

      return char;
    }).join('');
  });
  change.update(change.from, change.to, text);
}