Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rubypathの検索時に警告が出る #79

Closed
mattn opened this issue Oct 13, 2011 · 17 comments
Closed

rubypathの検索時に警告が出る #79

mattn opened this issue Oct 13, 2011 · 17 comments

Comments

@mattn
Copy link
Member

mattn commented Oct 13, 2011

既にパッチ送付済みの物ですが、忘れない為に。

runtime/ftplugin/ruby.vim

rubypathを検索しているのですが、Gem.all_load_pathsはruby1.9ではdeprecatedになっている為、起動する毎に警告が出る。
以下の様にGem::Specificationを優先してフォールバックする様に修正。

diff -r f530aef0d959 runtime/ftplugin/ruby.vim
--- a/runtime/ftplugin/ruby.vim Wed Oct 12 22:02:14 2011 +0200
+++ b/runtime/ftplugin/ruby.vim Thu Oct 13 10:23:04 2011 +0900
@@ -73,11 +73,11 @@
   if exists("g:ruby_path")
     let s:ruby_path = g:ruby_path
   elseif has("ruby") && has("win32")
-    ruby VIM::command( 'let s:ruby_path = "%s"' % ($: + begin; require %q{rubygems}; Gem.all_load_paths.sort.uniq; rescue LoadError; []; end).join(%q{,}) )
+    ruby VIM::command( 'let s:ruby_path = "%s"' % ($: + begin; require %q{rubygems}; Gem::Specification.map{|s|s.gem_dir}.sort.uniq; rescue NoMethodError; Gem.all_load_paths.sort.uniq; rescue LoadError; []; end).join(%q{,}) )
     let s:ruby_path = '.,' . substitute(s:ruby_path, '\%(^\|,\)\.\%(,\|$\)', ',,', '')
   elseif executable("ruby")
-    let s:code = "print ($: + begin; require %q{rubygems}; Gem.all_load_paths.sort.uniq; rescue LoadError; []; end).join(%q{,})"
-    if &shellxquote == "'"
+    let s:code = "print ($: + begin; require %q{rubygems}; Gem::Specification.map{|s|s.gem_dir}.sort.uniq; rescue NoMethodError; Gem.all_load_paths.sort.uniq; rescue LoadError; []; end).join(%q{,})"
+    if &shellxquote != '"'
       let s:ruby_path = system('ruby -e "' . s:code . '"')
     else
       let s:ruby_path = system("ruby -e '" . s:code . "'")
@ghost ghost assigned mattn Oct 13, 2011
@koron
Copy link
Member

koron commented Feb 1, 2012

こいつは動きなしなのかな? 実はftp上のruntimeは修正されていたりするんだろうか?

@mattn
Copy link
Member Author

mattn commented Feb 1, 2012

どうだろリポジトリのは直ってないお。
たしかメンテナにCC行ってそれから音沙汰なし。

@mattn
Copy link
Member Author

mattn commented Feb 1, 2012

@mattn
Copy link
Member Author

mattn commented Feb 1, 2012

ping打っといた

@uakms
Copy link

uakms commented Apr 21, 2012

コーディネータは同じ方のようですが、本家で同封されている ruby.vim と
https://github.com/vim-ruby/vim-ruby
にある ruby.vim との関係はどのようなものなのでしょうか?

自分は上記のものと入れ替えて警告は表示されなくなりましたが、
Vim をアップデートする度に入れ替えるのは面倒...。

runtime 以下のファイルは patch に含まれませんし、7.4 になるまで
更新されることは無いと考えたほうが良いのでしょうか。

@mattn
Copy link
Member Author

mattn commented Apr 21, 2012

元々は同一のものでしたが、それぞれ一人歩きしてしまっているのが現状です。
ちなみにそちらのリンク先の物はif_rubyが含まれない時にrubygemsをロードしない形なので若干動作が異なります。

なお、現在vim_devにて同梱されているスクリプトに関して個人ライセンスではなく、vimscript licenseという一貫したライセンスを付与しようとしています。
その案に対してこのスクリプトがサインしたかどうかは知らないですが、このライセンス整備はおそらく7.3の間には実現しません。

@uakms
Copy link

uakms commented Apr 22, 2012

ありがとうございます。

単なる「色付け+α」スクリプトではないのですね(勉強不足)。
本家と分家で「動作に違いがある」という点(私の理解を越えてます)は
情報として大切な部分だと思いますので、この issue へのリンクを張って
おきます。

ライセンスの整備という大仕事があるのですね。
999 まで余裕がありますから 7.4 になるのはまだ先のことになりそう...

@koron
Copy link
Member

koron commented Sep 26, 2012

ちょっと関係ないかもだけど #166 に関連して、まっつんさんのこのパッチが必要な状態になっていますね。

shellxquote のデフォルト値が shell == cmd.exe の時に ( になったので

if &shellxquote == "'"

が機能しなくなってしまったらしい。このパッチの

if &shellxquote != '"'

の部分だけでも入っていれば…

@koron
Copy link
Member

koron commented Sep 26, 2012

999 まで余裕がありますから 7.4 になるのはまだ先のことになりそう...

だれがVimのパッチは999までだと言った? 999の次は 1000 とか、4桁がダメなら a00 とかになるに決まってるじゃないですか!

@Shougo
Copy link
Member

Shougo commented Sep 26, 2012

Vimのマイナーバージョン(7.X)は二桁までの対応ですが、パッチバージョンは四桁以降も余裕で対応される作りになっていますね……。つまり、Vim 7.99までは出る可能性があるし、パッチバージョンを合わせるとVim7.99.9999になるかもしれません。

@h-east
Copy link
Member

h-east commented Sep 27, 2012

https://twitter.com/mattn_jp/status/210954166070284288

ちなみにVim、パッチ数が4桁になると破綻する作りです。

とまっつんさんが言ってたけど実際のところイケる?イケない?

@Shougo
Copy link
Member

Shougo commented Sep 27, 2012

Vim scriptのインタフェースだといけそうですが、内部の実装によっては問題があるのかもしれないです。

私が軽く実装を見たところ、問題なさそうでした。

@h-east
Copy link
Member

h-east commented Sep 27, 2012

試しで7.3.6789作ってみましたw バージョン表示等問題無さそうでした。
まっつん( @mattn )さん、4桁になると破綻する理由を教えてくださいませ。(少し昔の話で恐縮です)

スレ違い気味すまそ

@mattn
Copy link
Member Author

mattn commented Sep 27, 2012

http://ftp.vim.org/pub/vim/patches/

既存のパッチを全て4桁にしないと

curl -O 'ftp://ftp.vim.org/pub/vim/patches/7.3/7.3.[001-356]'

みたいな事やってる子達が死にますね。あと4桁にしたら3桁派で気付いてない子達が死にますね。vim配布システムとして破綻してしまうのでは。

@h-east
Copy link
Member

h-east commented Sep 27, 2012

ありがとございます。
なるほど、運用面ですね。Bram氏は把握してますよね?しれーっと7.3.999→7.3.1000リリースしたらビビるw

@crazymaster
Copy link
Member

しれーっと4桁リリースされてしまいましたね。 (2, 3年前の話ですが...

vim/vim@ec7944a#diff-5082f5de15ccddcd328e328c1fcbc96b
本家に同梱されているのが以下のものになったので
https://github.com/vim-ruby/vim-ruby

rubypathの検索時に警告が出る

この問題は解決されたように思われます。
残タスクとして以下のものが残っていますが...

#79 (comment)
shellxquote のデフォルト値が shell == cmd.exe の時に ( になったので

if &shellxquote == "'"

が機能しなくなってしまったらしい。このパッチの

if &shellxquote != '"'

の部分だけでも入っていれば…

@crazymaster
Copy link
Member

sxq のデフォルト値の問題の対応は #260 ですることにしましょうか。
というわけで閉じます。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants