コードスニペットの作成
作成
通常、「コードスニペットテンプレート」の .snippet ファイルは、次のようにテーブルを直接返す必要があります。
return {
name = '测试片段'; -- コードスニペット名
description = '用于测试各选择器的功能'; -- コードスニペットの説明
arguments = { -- コードスニペットセレクターのリスト
{ -- セレクター 1
type = 'app', -- セレクターの種類
title = '选择应用', -- セレクターのタイトル
subtitle = '请选择一个应用', -- セレクターのサブタイトル
default = 'com.xxtouch.XXTExplorer', -- セレクターのデフォルト値
},
{ -- セレクター 2
type = 'loc',
title = '选择地理位置',
subtitle = '请随便选择一个地理位置',
default = xui.get("com.darwindev.XXTExplorer", "location1"),
-- コードスニペット .snippet では、.xui がサポートするすべての API を使用できます
},
{ -- セレクター 3
},
-- ...
};
generator = function (...) -- 可変引数ジェネレーター
-- 引数を処理して生成結果を返します
local result
return result
end;
}
ルート階層
| キー | 型 | 説明 |
|---|---|---|
| name | 文字列 | コードスニペット名 |
| description | 文字列 | コードスニペットの説明 |
| arguments | 配列 | コードスニペットセレクターのリスト |
| generator | 関数 | コードスニペットジェネレーター |
| output | 文字列 | コードスニペットを単独で使用する場合の出力ファイル名 |
name と description は、それぞれコードスニペットテンプレートの表示名と説明です。ファイルマネージャーやコードスニペットの起動箇所に表示されます。
arguments は、一つ以上の セレクター引数辞書 を含む配列です。App は、この配列で指定されたセレクターの順序に従ってセレクターキューを作成し、ユーザーに順番に選択操作を求めます。ユーザーがセレクターキューを完了すると、App は各セレクターの戻り値を可変引数として順番にジェネレーター generator に渡して呼び出し、最後に generator の戻り値を呼び出し元へ返します。
コードスニペットテンプレート .snippet は単独でも使用できます。単独で使用できるようにするには output フィールドを設定します。generator が生成した結果のテキストは、同じディレクトリにある output で指定したファイルへ保存されます。
セレクター引数辞書
| キー | 型 | 説明 |
|---|---|---|
| type | 文字列 | セレクターの種類 |
| title | 文字列 | セレクターのタイトル。セレクターページの下部に表示されます |
| subtitle | 文字列 | セレクターのサブタイトル。セレクターページの下部に表示されます |
| default | 基本型 | セレクターのデフォルト値 |
各セレクターの セレクター引数辞書 について詳しくは、以降の内容を参照してください。
XUI で使用する
コードスニペットテンプレート .snippet を XUI の TitleValue コンポーネントで使用すると、XUI からセレクターキューを起動し、その結果を XUI コンポーネントの設定項目に保存できます。また、この .snippet では xui.get、xui.set、xpp.bundle_path など、XUI がサポートするすべての API を呼び出せます。
コードエディターで使用する
コードスニペットテンプレート .snippet をホームディレクトリの snippets ディレクトリに配置すると、App のコードエディターから呼び出せます。キーボードツールバーの右上にある星形ボタンをタップすると、コードスニペットがすぐに生成され、編集中のコードへ挿入されます。
単独のファイルとして使用する
コードスニペットテンプレート .snippet に output フィールドを設定し、コードスニペットをホームディレクトリの lua/scripts ディレクトリに配置すると、App から直接タップしてセレクターキューを開始できます。generator が生成した結果のテキストは、同じディレクトリにある output で指定したファイルへ保存されます。