Closed lambdalisue closed 10 years ago
下記のように 'select' アクションを定義しているが、'action'選択という 一時的な Uniteインターフェイスが既に存在しており、そこから呼ばれた場合
という流れに巻き込まれて'select'が作成する一時Uniteインターフェイスも閉じられる、気がする。だからdefault_action
経由で実行された場合は問題なく実行でき、'action'経由だと失敗する?
function! s:kind.action_table.select.func(candidate) " {{{
let context = {}
let context.source__gist = a:candidate.source__gist
call unite#start_temporary(['gista_file'], context)
endfunction " }}}
該当部分ソースコード: https://github.com/lambdalisue/vim-gista/blob/master/autoload/unite/kinds/gista.vim#L52
たぶんうまくやる方法があるが、わからない……
unite#start_script({sources} [, {context}])
を使うと現在存在しているバッファにより自動的に処理を切り替えてくれるのでこれを利用すれば良いらしい。
http://lingr.com/room/vim/archives/2014/07/02#message-19490730
If 'select' is called from 'smart_xxxx', it works but it does not work correctly when the action is called from user interface.