ATOKダイレクトプラグインを連鎖させる(ファイル絶対パス選択プラグイン)
とりあえず、プラグインの連鎖とでも呼べるものを作ってみました。
ATOKに限らず、あるファイルの絶対パスを入力したいときにいちいちエクスプローラなどをたどるのがめんどくさいものです。それをしなくてすむようなプラグインが例です。
ソース
例によってソースを書いておきます。大したことはしていません。
#! /usr/bin/ruby -Ku require 'dbm' require 'kconv' DB_FILE = 'filepath_plugin' module Atok_plugin def run_process(request) path = request['composition_string'] path.sub!(/\/[^\/]+\/\.\.$/, "") testpath = path.sub(/^(\w:)$/, "\\1/") if FileTest::directory?(testpath) result_data = {} candidate_array = [] Dir::foreach(testpath){|f| next if f == "." filepath = path + "/" + f stat = File::stat(filepath) candidate_array.push({ 'hyoki' => filepath.toutf8, 'comment' => "#{stat.ftype} #{stat.mtime}", 'alternative' => "file://" + filepath.toutf8, 'alternative_type' => "url_jump_string" # http:// でないから使えないようだ }) } db = DBM.open(DB_FILE) db["default_dir"] = path db.close result_data['candidate'] = candidate_array return result_data else db = DBM.open(DB_FILE) dir = db["default_dir"] if dir.nil? dir = File::expand_path(".") end db.close return run_process({'composition_string' => dir}) end end end
プラグインの連鎖
で、このプラグインは何をしたかったかというと、「プラグインの返値をさらにプラグインに入力する」というもののテストです。
たとえば、次のように使います。