スクリプトエディタ(Script Editor)およびScript Debuggerの最前面の書類から選択範囲の情報を取得するAppleScriptです。
スクリプトエディタとScript Debuggerで動く共通のツールをAppleScriptで作ってみたら、結果が異なりました。両エディタで同じ範囲を選択してみても、
▲Script Editor上で選択(左)、Script Debugger上で選択(右)
Script Editorでは、character range of selectionを実行すると、{文字開始位置, 文字終了位置}を返してきます。
一方、Script Debuggerでは、character range of selectionを実行すると、{文字開始位置, 選択文字長}を返してきます。
この違いにより、両エディタで異なる結果が得られたのでした。
選択中のテキスト(contents of selection)をそのまま取得して処理するのはよくあるパターンです。選択範囲を数値で取得するケースは(個人的に)あまりありませんでした。
これらのエディタ上で選択中のAppleScriptソースを取得して、そのままコンパイル(構文確認)して変数のみ抽出して変数名の一覧リストが欲しかったのですが、部分的にコンパイル(構文確認)しただけではエラーになる例が多い(ライブラリを呼び出している場合とか)ので、ファイル全体をコンパイル(構文確認)したのちに、エディタ上の選択範囲に該当するデータを抽出するように変更してみました。
▲選択範囲からAppleScript構文色分け情報をもとに変数のみ列挙して返すAppleScriptを実行。このために両エディタ対応を調べていた
AppleScript名:Ecript Editorの選択範囲情報を取得.scptd |
— – Created by: Takaaki Naganoya – Created on: 2019/08/19 — – Copyright © 2019 Piyomaru Software, All Rights Reserved — tell application "Script Editor" tell front document set {cStart, cEnd} to character range of selection –{start pos, end pos} return {cStart, cEnd} –> {516, 1334} end tell end tell |
AppleScript名:Script Debuggerの選択範囲情報を取得 |
— – Created by: Takaaki Naganoya – Created on: 2019/08/19 — – Copyright © 2019 Piyomaru Software, All Rights Reserved — tell application "Script Debugger" tell front document set {cStart, cNums} to character range of selection –{start pos, length} return {cStart, cStart + cNums – 1} –> {516, 1335} end tell end tell |
More from my site
(Visited 177 times, 1 visits today)