Read articles only in:

Read articles only in:
English / 日本語

2011/05/07

記号パネルの設定データフォーマット

記号パネルでは、「設定の送信」を行うことによって、現在のキー設定をテキストデータにして他のアプリに送ることができます。「貼り付けで設定」では、クリップボードにあるテキストを設定データとして読み込みます。
設定データをユーザの目の触れるようにしている以上、ぜひやっておきたいと思っていたのが、そのフォーマットの説明。今更ですが、ここで説明します。

設定データテキストは以下の行で構成されます:

  1. ヘッダ
    記号パネルの設定データであることを示す文字列です。
    ”##SymbolsPanel"とのみ書かれた行で、空白が入っていたり、後ろに何かが書かれていた場合はヘッダと扱いません。
    バージョン0.9bおよびそれ以前の場合、ヘッダで始まるテキストのみを設定データと認識し、そうでなければ設定データとみなしません。
    バージョン0.9cからは、ヘッダ以前のテキストは読み飛ばし、ヘッダ以降を設定データとして扱います。もちろんヘッダが存在しなければ設定データとみなしません。
  2. フッタ
    バージョン0.9c以降で使用可能です。
    設定データの終わりを示します。
    ”##end"で始まる行で、"##end of data"などでもフッタとして扱われます。
    フッタが現れた時点で読み込みは終了し、これ以降のテキストは無視されます。
  3. ページ
    ページの開始です。
    "#:"で始まり、まずページ名、以降ページタグを空白で区切って書きます。
    ページ名は、画面上に表示されるページの名前、ページタグはページの別名です。Simeji等から呼ばれる際、渡された文字列がページ名・ページタグと一致、または先頭部分である場合、そのページを表示した状態で画面が開きます。
    例えば、初期設定の場合、Simejiで「かな」と入力してから記号パネルを呼び出した場合、「かな」のページが表示された状態で開きます。「suu」と入力してからの場合は、「suugaku」というタグが指定されている「数学記号」が表示されます(「suuji」のタグを持つ「数字」もありますが、「数学記号」ページのほうが先に設定されているため、そちらが見つかった時点で決定されます)。
  4. 各種指示
    バージョン0.9b以降で使用可能です。
    "#!"で始まる行は、読み込み処理に対して各種の指示を表します。
    今のところ、以後設定されるページに対する指示に使用されます(これらは現在設定中のページに対しては機能しません)。
    • #!create
      同名のページがあったとしても、別ページとして新しく作られます。
    • #!update
      同名のページがあった場合、そのページを上書きします(それまでの設定はすべて削除されます)。
    • #!append
      同名のページがあった場合、そのページ内に追加して設定します。
    • #!merge
      同名のページがあった場合、そのページ内に追加して設定します。ただし、同名のキーの設定については追加されません。
    これらの指示が最初のページの定義開始より先にあった場合は、それ以前に設定されていたキー設定は残されます。それ以外の場合、以前の設定は消去されます。

  5. コメント
    "#"で始まる行は(他の機能を持たない限り)コメントとして無視されます。
    将来的に何らかの機能追加を行うかもしれませんので、"#"の直後からコメントを書かず、まず空白文字を入れるようにしてください。
    なお、空行(何も書かずに改行だけする)はキー設定として使われてしまいます。必ず"#"を使用してください。
  6. キー設定
    それ以外の行はすべてキー設定情報です。
    最初の空白までがキーとして表示・入力される文字、それ以降はキーの説明です。説明はキー選択時に画面下のエリアに表示される文字列で、特に処理上の意味はありません。
    キーの内容が「最初の空白まで」ですので、それが一文字でなくてもかまいません。顔文字などのアスキーアートや定型文を設定しておくような使い方も可能です。もちろん、デフォルトではキーの大きさが一文字分しかありませんので表示はうまくできません。「一行あたりの項目数を1にする」といったような設定が必要でしょう(なお、現時点では「個別にキーの大きさを設定」できるようにする予定はありません)。
    逆に空白が行の先頭にある場合、つまり「最初の空白まで」に文字列がない場合、「空き地」が設定されます。場所だけは確保されますが、キー自体は表示されず、押しても何も起こりません(画面下のエリアへの説明表示は行われます)。空行の場合もこの扱いになります。

    キーの設定では、以下のフォーマットを使用できます:
    • プレーンテキスト
      素の文字列を直接指定する、もっとも手っ取り早くわかりやすい方法です。
    • U+xxxx
      Unicodeのコードポイントで指定します。初期設定ではすべてこの方法で指定しています(後から確認する時に、半角と全角の違いとか、区別しにくい文字を識別するためで、単に開発上の都合によるものです)。xxxxは16進数4〜6桁です。設定できるのは一文字だけです。
    • JIS:xxxx
      JISコード(ISO-2022-JP)で指定します。xxxxは16進数4桁です。設定できるのは一文字だけです。
    • SJIS:xxxx
      Shift-JISコードで指定しています(ちなみにAndroidではShift-JISといったらCP932を指すようです)。xxxxは16進数4桁です。設定できるのは一文字だけです。
    • :text
      バージョン0.9c以降で使用可能です。
      textはURIエンコードされたものとして扱われます。例えば":%23"とすれば"#"を設定することができますし、同様に":m(_%20_)m"というようにして空白文字を含めることもできます。
    • :charset:text
      バージョン0.9c以降で使用可能です。
      上記に加え、textcharsetの文字コードとして扱います。エスケープシーケンスが必要なcharsetではそれも記述する必要があります。例えば、「友」という文字をJISコードで指定するには「:ISO-2022-JP:%1b%24%42%4d%27%1b%28%42」のようにする必要があります。
以上です。
あまり覚えてなくても、自分のよく使う記号を一つのページにまとめてしまう、というくらいなら簡単にできると思います。

0 件のコメント:

コメントを投稿