{"action":"created","issue":{"url":"https://api.github.com/repos/vim-jp/vital.vim/issues/415","repository_url":"https://api.github.com/repos/vim-jp/vital.vim","labels_url":"https://api.github.com/repos/vim-jp/vital.vim/issues/415/labels{/name}","comments_url":"https://api.github.com/repos/vim-jp/vital.vim/issues/415/comments","events_url":"https://api.github.com/repos/vim-jp/vital.vim/issues/415/events","html_url":"https://github.com/vim-jp/vital.vim/pull/415","id":143304215,"number":415,"title":"vital モジュールのロードを爆速にする & ロード方法を考える","user":{"login":"haya14busa","id":3797062,"avatar_url":"https://avatars.githubusercontent.com/u/3797062?v=3","gravatar_id":"","url":"https://api.github.com/users/haya14busa","html_url":"https://github.com/haya14busa","followers_url":"https://api.github.com/users/haya14busa/followers","following_url":"https://api.github.com/users/haya14busa/following{/other_user}","gists_url":"https://api.github.com/users/haya14busa/gists{/gist_id}","starred_url":"https://api.github.com/users/haya14busa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/haya14busa/subscriptions","organizations_url":"https://api.github.com/users/haya14busa/orgs","repos_url":"https://api.github.com/users/haya14busa/repos","events_url":"https://api.github.com/users/haya14busa/events{/privacy}","received_events_url":"https://api.github.com/users/haya14busa/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":56,"created_at":"2016-03-24T17:07:48Z","updated_at":"2016-03-27T11:53:18Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/vim-jp/vital.vim/pulls/415","html_url":"https://github.com/vim-jp/vital.vim/pull/415","diff_url":"https://github.com/vim-jp/vital.vim/pull/415.diff","patch_url":"https://github.com/vim-jp/vital.vim/pull/415.patch"},"body":"### 概要\r\n- https://github.com/haya14busa/revital.vim のコードを改善しながらvital.vimに移植しました\r\n  - ref: [revital.vim で vital.vim を爆速にしてお前らの Vim plugin を速くする - haya14busa](http://haya14busa.com/revital-vim-makes-vital-vim-a-lot-faster/)\r\n- ついでにいい機会なので vital のモジュールのロードの仕方を考えましょう #40 #41\r\n- あと `:Vitalize` とか `s:V.import()`(新しいほう) のテストもしています\r\n\r\n### 使い方\r\n\r\n1. `:Vitalize .` でアップデートしたり新たに `:Vitalize`\r\n2. `vital#of({plugin-name})` の変わりに `vital#{plugin-name}#of()` を使う\r\n\r\nこれだけ!\r\nただ，`vital#of({plugin-name})`でも速くなるようにしています． except `vital#of('vital')`\r\n\r\n#### 現時点で既に対応しているプラグイン\r\n- https://github.com/haya14busa/incsearch.vim\r\n- https://github.com/easymotion/vim-easymotion\r\n\r\n### ベンチマーク\r\nTODO\r\n\r\n### 注意点\r\n- `vital#of('vital')` と #137 の外部モジュールを同梱する機能 (個人的にself moduleとよんでいる) は速くなりません．\r\n\r\n### vital#of をどうするか?\r\n1. `vital#of({plugin-name})` はそのままで，速くしたい場合は `vital#{plugin-name}#of()`を導入\r\n1. `vital#of({plugin-name})` のインターフェースはそのままで内部で早くする．`vital#{plugin-name}#of()`は導入しない\r\n1. `vital#of({plugin-name})` のインターフェースはそのままで内部で早くする．`vital#{plugin-name}#of()`も導入する\r\n1. `vital#of({plugin-name})` は組み込まず `vital#{plugin-name}#of()`に完全移行\r\n  - 厳密には`vital#of('vital')`相当は残す or 別の対応する機構を提供\r\n1. そもそもvitalのローダ作る必要なくね? `vital#{plugin-name}#import({module-name})` とかに移行する．\r\n\r\nなどなどがあります\r\n\r\nあと少なくとも新しいvitalオブジェクトでは `s:V.search()`, `s:V.load()`, `s:V.exists()` とか別にいらないんじゃないかと思うみたいな思いもあります\r\n\r\n\r\n疲れたのであとは随時追記するかコメントします\r\n"},"comment":{"url":"https://api.github.com/repos/vim-jp/vital.vim/issues/comments/202049103","html_url":"https://github.com/vim-jp/vital.vim/pull/415#issuecomment-202049103","issue_url":"https://api.github.com/repos/vim-jp/vital.vim/issues/415","id":202049103,"user":{"login":"rhysd","id":823277,"avatar_url":"https://avatars.githubusercontent.com/u/823277?v=3","gravatar_id":"","url":"https://api.github.com/users/rhysd","html_url":"https://github.com/rhysd","followers_url":"https://api.github.com/users/rhysd/followers","following_url":"https://api.github.com/users/rhysd/following{/other_user}","gists_url":"https://api.github.com/users/rhysd/gists{/gist_id}","starred_url":"https://api.github.com/users/rhysd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rhysd/subscriptions","organizations_url":"https://api.github.com/users/rhysd/orgs","repos_url":"https://api.github.com/users/rhysd/repos","events_url":"https://api.github.com/users/rhysd/events{/privacy}","received_events_url":"https://api.github.com/users/rhysd/received_events","type":"User","site_admin":false},"created_at":"2016-03-27T11:53:18Z","updated_at":"2016-03-27T11:53:18Z","body":"> これはテストどうすればいいかわからんかったからテスト足してない\r\n\r\n例外のチェックは `:Throws` 使えばできますが，そういう話ではない？\r\n\r\nhttps://github.com/thinca/vim-themis/blob/6da31781a30c8a6de416c684704e515945e5aacc/doc/themis.txt#L741\r\n"}}