はじめにお読みください
XList とは
Iterator, Queue, Stack として使えるリストのラッパーオブジェクトを提供する AppleScript のライブラリです。
AppleScript のリストの欠けている機能の多くを補完します。
また、AppleScript のリストはリファレンスを経由して要素を参照しないと速度が大きく低下するという性質があります。XList は内部で、常にリファレンスを経由してリストにアクセスする為、常に良好な動作速度が得られます。
動作条件
システム
- OS X 10.9 以降
- macOS 10.14.6 で開発及びテストをしています。
依存ライブラリ
XList とあわせてインストールしてください。
ヘルプの表示の仕方
XList の詳細なマニュアルは、XList.scptd のバンドル内に Help Book として収められています。
OpenHelpBook.scptd をインストール後、スクリプトメニューから XList を実行してください。ヘルプビューアでマニュアルが表示されます。
なお、Help Book は AppleScriptDoc で生成およびセットアップをしています。
インストール
XList.scptd は、
ホームフォルダ/ライブラリ/Script Libraries/
もしくは、
/ライブラリ/Script Libraries/
にコピーしてください。
更新履歴
- 1.8 -- 2020-06-17
- XText への依存性を無くした。
- as_xtext_with を削除
- XText の make_with_xlist を使ってください。
- as_list を追加。
- each および each_rush の返値を instance 自身にした。
- as_text_with, as_unicode_with, as_string_with の内部で text item delimiters は変更され、元に戻されません。
- XText の make_with_xlist を使うことを推奨します。
- 1.7.3 -- 2020-04-10
- each, map, map_as_list の性能を向上させた。
- each_rush を追加した。
- 1.7.2 -- 2020-01-27
- HelpBook.osax の代わりに、OpenHelpBook.scptd を使うようにした。
- 1.7.1 -- 2017-05-09
- ヘルプブック中の XText へのリンクが動作しない不具合を修正。
- 1.7 -- 2016-10-18
- OS X 10.9 で導入された AppleScript Libraries として使えるようにした。
- ModuleLoader.osax への依存性を無くした。
- OS X 10.9 以降が必要になった。
- 1.6r2 -- 2014-10-01
- HelpBook 中のサンプルコードのスクリプトリンクが機能しない不具合を修正。
- 1.6 -- 2012-11-28
- each, map, map_as_list はスクリプトオブジェクトの do ハンドラに要素への参照ではなく、要素そのものを渡すようにした。
- AppleScriptObjC での不具合を回避する為です。
- enumerate を追加。
- set_item_at を追加。
- 1.5 -- 2012-05-27
- add_from_list を追加。
- shallow_copy を追加。
- deep_copy を追加。
- iterator を追加。
- 1.4.1 -- 2012-04-21
- ヘルプをアップデート。
- Mac OS X 10.6 で、"Edit Script" リンク、ハンドラのコピーリンクが動作しない不具合を修正。
- item_at にインデックスのリストを与えることにより、複数の項目を取得できるようにした。
- as_text_with を追加。
- 1.4 -- 2010-01-29
- ShowHelpBook への依存性を無くした。
- items_in_range を追加。
- count_items() でリストの長さを取得するのに、length of ではなく、count コマンドを使用するようにした。
- ModuleLoader 2.1 以降が必要です。
- 1.3 -- 2008-03-20
- 1.2.1 -- 2008.02.03
- 1.2 -- 2008.01.06
- next() で次の要素が存在しないときは、missing value を返すのではなく、error number 1351 を発生させるようにした。
- リストの要素として missing value を設定することも可能だからです。
- 1.1.1 -- 2007.12.04
- 1.1 -- 2007.07.10
- 名前を SmartList から XList に変更
- next_item を next に変更
- make_with , make, make_with_text, count_items, set_item, index_of, current_index, has_item,as_xtext_with, as_unicode_with, as_string_with を追加
- 1.0.2 -- 2007.06.01
- map, each でリストの内容を変更できるようにした。
- do ハンドラにはリストの要素へのリファレンスが渡されます。
- 1.0.1 -- 2007.05.30
- 英語ドキュメントを追加
- reset() を追加
- all_items() を追加
- each() を追加
- map() の仕様を変更
- 1.0 -- 2007.05.23