Closed osyo-manga closed 9 years ago
はやさ++
s:Doautocmd.get_cmdline()
を呼ぶ関数名をvital-overつかうプラギンでなるべく統一しておくと便利そう
テストも追加ed 時間があるときにでも incsearch.vim にとりこんでうれしい
plugin#cmdline
plugin#cli
あたりが短くてよさそうですかねー.
んーとりあえず、vital-over だけ更新してもらえればこっちは問題ないですかね。
でも s:DoAutocmd
参照できなきゃ意味ないのでゎ?
あーもしやvital#of
の値をプラギン名にすれば行けるのか
それは
let s:Doautocmd = vital#of("incsearch").import("Over.Commandline.Modules.Doautocmd")
すればよいので問題ないですね
さすがにvital#of変えても無理だった
上のコードで参照できませんでした?
あーなるほどできました. が, s:cmdline
が定義されてないとでた
んー vitalize した後にVimを再起動してもダメでした?
んーだめですね.
こっち(over.vim)は問題なく動作しているんですがなんでだろう。
over.vimでも同様ですね.
vital-over:function <SNR>408_func..<SNR>410_get_cmdline, line 1 Vim(return):E121: Undefined variable: s:cmdline
しかし確かにコードみた限りでは行けるハズな気も...
あーいや over.vim はまだ push してないです。 いま push しました。
んーそれでもエラーメッセージがおかしいな
言われてみればover.vimが動いてなかったのは当たり前でしたねすいません
しかしupdateしても結果は同じであった
エラーのvital-over
は https://github.com/osyo-manga/vim-over/blob/af9e411aaec30a5317795bfcdee0400eed5ff66c/autoload/over/command_line.vim#L27 でprefix指定してないからっぽいですね(そこはいま問題じゃないかもですが)
ん、そこって関係あります?
ああ、そういうことか
再現するコード教えてもらえますか。
あと関係ないかも知れませんが vital.vim は最新版ですか?
再現するコード, 全く同じなんですよね...あえて言うならIncSearchCharPreも足してる
call vital#of("vital").unload()
let s:Doautocmd = vital#of("vital").import("Over.Commandline.Modules.Doautocmd")
function! s:func()
let cmdline = s:Doautocmd.get_cmdline()
if cmdline.is_input("a")
call cmdline.setchar("b")
endif
endfunction
augroup test
autocmd!
autocmd User OverCmdLineCharPre call s:func()
autocmd User IncSearchCharPre call s:func()
augroup END
vitalは最新です
let s:Doautocmd = vital#of("vital").import("Over.Commandline.Modules.Doautocmd")
ではなくて
let s:Doautocmd = vital#of("over").import("Over.Commandline.Modules.Doautocmd")
が正しいです。
ア...そりゃそうですよね...アタマが働いてなかった...ありがとうございます
はい
めっちゃ動作しましたっ!!!!!
便利
便利. しかしこれdebug用という位置づけですかね.
いえ、一応そういう機能として実装しました。
流石にめんどいと思うのでこんな感じでショートカット用意してもよさです?
function! incsearch#cli()
return s:Doautocmd.get_cmdline()
endfunction
それ自体はお任せします(と、いうかそれなら return s:cli でよいという気もします
incsearch.vim でdevブランチにはとりあえずコミッヨしましたっ https://github.com/haya14busa/incsearch.vim/tree/dev
ありがとうございますっ
それ自体はお任せします(と、いうかそれなら return s:cli でよいという気もします
vital-over統一インターフェース的な意味で.
s:cli
返すのは, もしかしたら複数objectを持ってる場合とかにDoautocmd
参照だと対応できるという文脈なのかなぁと思ってた
hm
とりあえず incsearch#cli()
も定義しておいた
あーでもそうやってDoautocmd
関係ない文脈にAPIを置くと取得できない問題が発生するか...
これ, 変なタイミングで呼んだ時にundefined variableみたいなエラーを返すのではなく, vital-overのエラーを返してもらえると嬉しい感あります
これ, 変なタイミングで呼んだ時にundefined variableみたいなエラーを返すのではなく, vital-overのエラーを返してもらえると嬉しい感あります
具体的にはどんな風を想定されていますか?(『vital-overのエラーを返す』というのがよくわからなかった
vital-overのエラーとしてキャッチするためには、このままだと無理だなという意味です。
vital-over prefixの適切なエラーメッセージをthrowしてほしい
雑に追加してみました。
ありがとうございますっ
いまさら試しましたがなんでこれ, prefixこんな感じになってるんでしょう??? _pluginname
みたいになってフレンドリー感なさそう https://github.com/osyo-manga/vital-over/blob/master/autoload/vital/__latest__/Over/Exception.vim#L6-L7
特に変える必要性なければ ExceptionMessage と同じ感じで投げて欲しいです https://github.com/osyo-manga/vital-over/blob/master/autoload/vital/__latest__/Over/Commandline/Modules/ExceptionMessage.vim
あと仮にこのまま行くとして ==
のprefixは信用していいんでしょうか? つまり仕様変更とかにならないか気になります.
出力フォーマットは雑に決めたので今後変更する可能性がないとは言えません。 もっとよい出力フォーマット案があればそっちに変更してもよいですが。
別の issues 立てました。
実装した