:QuickRun 時に cmdopt を追加する hook

quickrun では config に cmdopt でコマンドオプションを設定することができます。
しかし、それとは別に :QuickRun 時にコマンドオプションを追加したい場合があります。


既存の機能では

:QuickRun -cmdopt {オプション}

のように :QuickRun 時にコマンドオプションを設定することができます。
ですが、この場合 g:quickrun_config に設定されている cmdopt が上書きされてしまい、オプションを追加したい場合には適切ではなありません。


と、いうことで cmdopt にオプションを追加する hook を書いてみました。

[ソース]

let s:hook = {
\   "name" : "add_cmdopt",
\   "kind" : "hook",
\   "config" : {
\       "enable" : 1,
\       "option" : "",
\   }
\}

function! s:hook.on_hook_loaded(session, context)
    if self.config.enable && has_key(a:session.config, "cmdopt")
        let a:session.config.cmdopt .= " ".self.config.option
    endif
endfunction

call quickrun#module#register(s:hook, 1)
unlet s:hook


" QuickRun cpp/g++ -hook/add_cmdopt/option "-std=gnu++0x -Wall"


cmdopt じゃなくて各 config に追加する hook を書いたほうが汎用性がありそうな気がする。