プラグインのつくりかた (その2)
その2では、プラグイン作成上のガイドラインや注意点などを説明します。
ネーミングのガイドライン
アセンブリとプラグインクラスをユニークにする
QT TabBar はプラグインを識別するのに AssemblyTitle, AssemblyVersion、および各クラスの Type.FullName ("名前空間.クラス名")、そして dllファイルの完全パスを使っています。
アセンブリのプロパティ画面で必ずアセンブリタイトル属性を付けてください。また、プラグインクラスをその中に含んでいる 名前空間は作者ごとに一意であることを推奨します。例えば作者名を含むのがいいと思います。
まあ、名前がかぶるほどたくさんプラグインが作られるとは思いませんがw
ちなみにひとつのアセンブリ/名前空間に複数のプラグインクラスを持つことが可能です。
設定の保存/クリーンアップ
プラグインがレジストリに設定を保存する場合は、
HKEY_CURRENT_USER\Software\Quizo\QTTabBar\Plugins\Settings\
以下に一意の名前をもつサブキーを作成して、その下に保存してください。
推奨するキー名は一意の GUID ですが、名前空間に作者の名前が入っていれば Type.FullName でも重複することはないでしょう、たぶん。
アンインストール
さて、プラグインがレジストリに限らず何か設定をどこかに保存したら、プラグインのアンインストール時にそれらを削除する Uninstall メソッドを追加してください。
public static void Uninstall() {...}
このように、publicで, static, 戻り値・引数なしのメソッドでなくてはなりません。
設定を保存しない場合はこのメソッドを追加する必要はないです。
このメソッドは、ユーザーがオプション画面からプラグインを削除したとき QT TabBar がリフレクションを使って実行します。
Tips
ここでは、いくつかよく使いそうなTipsを。
現在アクティブなフォルダのパスを取得する
string currentpath = pluginServer.SelectedTab.Address.Path
選択されているファイルのパスを取得する
List<string> lstPaths = new List<string>(); Address[] addresses; if( pluginServer.TryGetSelection( out addresses ) ) { foreach( Address ad in addresses ) { if( !String.IsNullOrEmpty( ad.Path ) ) lstPaths.Add( ad.Path ); } }
あたらしいタブを作る
string path = @"C:\"; pluginServer.CreateTab( new Address( path ), -1, false, true );