登録アイテムの仕様

無計画に拡張してたら複雑化したので、ここらで一度まとめておきます。

  • 基本はショートカットファイル
  • ショートカットの代わりにスクリプトを置くことも出来る
  • ディレクトリの階層化も可能
  • ディレクトリの代わりにテキストファイルを指定できる
  • Giraffe.RegisteredItems(Data)に名前とデータを独立して登録できる

オートコンプリート時の候補

  • Giraffe.RegisteredItemsの要素の文字列
  • Giraffe.ShortcutDirの要素のディレクトリにあるファイル
  • Giraffe.ShortcutDirの要素のテキストファイル内の行

Giraffe.ShortcutDirはString_array(文字列の配列)です。
デフォルトでGiraffe.ShortcutDirはGiraffe.iniのConfigのPath.Dataをセミコロンで区切ったものと一致します。

登録アイテムデータ取得時の候補

登録アイテムデータの要素

  • path - ショートカット自身のパス
  • target - リンク先
  • parameter - コマンドライン引数
  • directory - 作業ディレクト
  • verb - 実行動作
  • show - 起動時のウインドウの状態
  • icon - アイコン
  • comment - コメント

スクリプト

登録アイテムデータのpathの拡張子が.giraffeの場合、そのファイルの内容がスクリプトとして実行されます。
そのスクリプトの戻り値がAfterExecuteの引数となるため、falseを返すことでデフォルトのGiraffe+のウインドウを隠す動作を抑制できます。

ターゲットスクリプト

NormalExecute(Enterキー)実行時、登録アイテムデータのtargetの文字列の初めの文字が!の場合、それ以降の文字列がスクリプトと見做され実行されます。
これにより、ショートカットディレクトリに*.giraffeファイルを作らずに、Giraffe.RegisteredItems(Data)だけでスクリプトを実行するアイテムの登録が可能です。
Settings.iniのregセクションに下記を置くと、riの出力をリストボックスに表示するアイテムが登録名riとして登録されます。

ri="1!@PipeToListbox("ri #{Giraffe:Edit:GetText:Parameter}")"