Archive for the 'LightWay Text' Category

2010/01/11 LightWay TextをAppleScriptからコントロール

LightWay TextをAppleScriptからコントロールしてみました。

縦書き可能だったり、原稿用紙に記入するようにテキスト編集可能な老舗のテキストエディタLightWay Textですが、AppleScript系の機能については、残念ながら不完全かつ不十分であることを確認しました。

lwt.jpg

AppleScriptとの連携を考えるのであれば、Apple純正のテキストエディット、Jedit X、mi、BBeditやTextWranglerなどを使うのが適切でしょう。

以下、LightWay Textのコントロールを試みた内容です。

テキストの内容を取得できますが、そのままでは扱えないようです。

スクリプト名:LightWay Textで文章の内容を取得
tell application “LightWayText”
  tell document 1
    contents
  end tell
end tell
–>
(*

{”ぴよ〜うるふ
ぴよぴよ”, «data styl01000000000015000C00019000000E00000000000000», «data styw000100000000000000000000»}
*)

▼新規書類に ▼カーソル位置に ▼ドキュメント末尾に

ドキュメントの内容をas stringでcastすれば、一応内容(contents)を取得できます。また、同様にSelectionの内容も、そのままでは使用できません。Application、Document、Windowといった主要なオブジェクトのプロパティも一切取得できません。できないことだらけです。

スクリプト名:LightWay Textで文章の選択部分を取得
tell application “LightWayText”
  tell document 1
    set a to selection
  end tell
end tell
–>
(*
{”ぴよぴよ”,
«data styl01000000000015000C00019000000E00000000000000», «data styw000100000000000000000000»}
*)

▼新規書類に ▼カーソル位置に ▼ドキュメント末尾に

文章内の選択部分(selection)をas stringでcastすると文字列として取得できますが、逆に選択範囲の内容を書き換えることができません。

Selectionを介してAppleScriptとインタフェースを行うという、一般的なMac系のテキストエディタのような運用はできないことが分りました。無理矢理、GUI Scripting経由でアクセスすることは不可能ではありませんが、動作の確実性を保証できない(最前面にLightWay Textがいないと、メニューを操作して確実にPaste動作を行わせられない)ところです。

スクリプト名:LightWay Textで選択部分を文字列として取得
tell application “LightWayText”
  tell document 1
    set a to selection as string
  end tell
end tell
–> “ぴよぴよ”

▼新規書類に ▼カーソル位置に ▼ドキュメント末尾に