Textwellでテキスト内検索をプレビューから選ぶアクション SearchLight

単語検索に新しいコンセプトを。


Textwell 1.2.2
分類: 仕事効率化,ユーティリティ
価格: \300 (Sociomedia)

エディタの命と言える「検索」。文中のキーワードを探す。でもいろいろなタイプのエディタを使ってきましたが、検索について新機軸が見当たりません。どれもダイアログボックスが開き、前後の該当位置にジャンプする。でもタッチパネルの時代には、それに合ったデザインがあるんじゃないか。それで不遜にも「今までとは別の見せ方」を考えてみました。

text=T.text;
c=T.range.loc;
word=(T.range.len)? T.current : prompt("検索語は何ですか?");
if(word){
  p=mode=0;
  len=word.length;
  s=text.split(word);
  draft="<meta name=viewport content=initial-scale=1><title>SearchLight</title><body style=white-space:pre;word-wrap:break-word;>";
  for(i=0;i<s.length;i++){
    p+=s[i].length+len;
    if(mode){
      if(mode==1) draft+="<span id=wine></span>";
      mode=2;
    }else{
      if(c<p) mode=1;
    }
    draft+=s[i].replace(/</g,"&lt;");
    if(i<s.length-1) draft+="<span onclick=Jump("+i+") style=background:yellow;>"+word+"</span>";
  }
  draft+="</body>";
  document.write(draft);
  location="#wine";
  T.translucent(false);
}else{
  T("done");
}

function Jump(x){
  p=0;
  for(i=0;i<=x;i++) p+=s[i].length+len;
  T("replaceRange",{text:"",selectingRange:{loc:p-len,len:len}});
}

登録リンクはこちら→ http://tinyurl.com/lssn5kv



まず範囲選択されていれば、それを検索語にする。iOSはダブルタップで単語をピックアップするんだから、これを活用する。再入力の手間を省き、選んでいるものがキーワード。ただし、何も選ばなければ、いつも通りのダイアログボックスが開きます。



アクションを実行すると、カーソル位置からのプレビューになる。そして検索語の部分をハイライト。これだと前後の文脈も読み取りやすくないですか。



検索語をタップすると、その箇所を開きます。キーワードを選択状態にするので、そのままタイプすれば訂正可能。あるいはクリップボードをペーストするとか。


ただ組んでわかるのは、この方法、長い文章に具合が悪い。終わりに出てくる単語だとスクロールしなくちゃ見つからない。該当箇所のないプレビューを延々流すことになる。やはり従来通りには、それなりの合理的な理由がある。でも、もう一歩の気もするんだよなあ。