板 1- 前 次 新 レス
管理人の雑記
[96]管理人 ★:2008/02/16(土) 23:27:43
以前作ったコマンドラインランチャーに色々と不具合があることに気付いたが、行き当たりばったりに拡張していったせいで手の施しようが無くなっているので、作り直すことを考える。
せっかくだから、まともな拡張機構を用意して、ウィンドウやプロセス、テキストなども扱えるようにしたい。
以下、現在までに挙がっているアイデア。
●動作の流れ
ターゲットリスト、コマンド、絞り込みモードなどを決定してウィンドウ表示
┌→↓ ←──────────────────┐
│ターゲットリストから絞り込み→絞り込みモード遷移┤
│ ↓ ↑ └→サブアイテム展開─┘
│アイテム確定→追加のターゲットリスト
│ ↓ ↑
│コマンド決定→必要なターゲットが確定していなければ
│ ↓
│コマンド実行→(終了)
│ ↓
└出力をターゲットリストに
全ての状態遷移は、ホットキー/ローカルホットキーに割り当てる。
アイテム確定、コマンド決定、実行など、複数の遷移を1キーに割り当てることも可能。
Enterに割り当てる処理では、コマンド未指定時ターゲット種別に応じたデフォルトコマンドを実行。
●リスト種別
・コマンド(内部コマンド、外部コマンドライン)
・ファイルパス
・ウィンドウハンドル(コントロールの場合も)
・テキスト
●リスト形式
(視認用タイトル)(\t検索用の目印)*\t(本体)
●サブアイテムの展開
ファイルパス→フォルダとみなして内部ファイルパスリストに展開
(圧縮ファイルなどに対応した展開処理を追加可能に)
プロセス→所有ウィンドウリスト
ウィンドウ→コントロールリスト
(スタティックテキストなどは無視する)
コントロール→テキストリスト
●親アイテムの取得
ファイル→親フォルダ
プロセス→プログラムファイル
ウィンドウ→プロセス
コントロール→親ウィンドウ
●仮想アイテム
必要になったときに実体の生成・取得やサブアイテム展開を行う
・圧縮ファイル内のファイル
・リムーバブルメディア上のファイル
・プログラムファイルの仮想プロセス(起動していなければ実行する)
・同、仮想ウィンドウ
・外部コマンドライン
●内部コマンド(例)
・指定ファイルを指定ウィンドウにドロップ
・コンテキストメニューの表示
・指定ファイルの拡張子に関連付けられたコマンドを取得しコマンドリストに
・指定ウィンドウをアクティブ化
・指定ウィンドウを閉じる
・指定コントロールから指定テキストのアイテムを選択
・指定コントロールにフォーカスを与える
・指定テキストをクリップボードにコピー
・指定テキストをGoogle検索
●コマンドの引数
引数の扱いはコマンド内で実装
・例
引数があればターゲットファイルに
→ターゲットファイルがなければ選択させる
●外部コマンドライン
仮想アイテムとして扱い、実行時に内部コマンドに変換して実行
・複数のターゲットファイルを
一つにつき1コマンドに展開
一つずつ終了を待つ
全部いっぺんに実行
コマンドライン上に列挙する形で展開
・ターゲットテキストを一時ファイル経由でコマンドに与える
・一時ファイル経由で出力をテキストリストに
●絞り込みモード
・通常マッチ
・タイトル部分のみでのマッチ
・正規表現
・除外
・Migemo
●特殊な絞り込みモード
ターゲットリストは不要
・HyperEstraier(インデックス型全文検索)
入力テキストに一致する登録ファイルのパスリストを表示
・Googleサジェスト
入力テキストに対するキーワード候補テキスト一覧を表示
●自動生成型ターゲットリスト
・指定ディレクトリをスキャンしてファイルパスリストを生成
・アクティブウィンドウをファイルパス、仮想ウィンドウ、仮想プロセスリストに追加
・クリップボードのテキストをテキストリストに追加
スキャン中に検索できないとうざいので、非同期コマンドとして別スクリプトで実行
●外部プログラムからのコマンド実行
●設定
・INIファイルに記述
・コマンドでスクリプトに変換・再起動
・設定変更コマンド
●全てをモジュール化する
・コマンド
・リスト種別の定義(名前、デフォルトコマンド、デフォルト絞り込みモードなど)
・リスト生成機能
・サブアイテム展開・親アイテムの取得
・アイテムの仮想化・実体化
・絞り込みモード
前 次