<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Jarmo,</div><div>&nbsp;&nbsp;I've got a few changes in a branch called rubycomplete_updates that should handle the namespacing issue.</div><div>With regards to file reloading, I have some options I've been playing with involving moving a lot of the processing outside of the Vim process.</div><div>&nbsp;&nbsp;--mg</div><br><div><div>On Dec 26, 2010, at 12:58 AM, Jarmo wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>Hi!</div><div><br></div>Let me add some new findings about omni-completion when modules are in use. Even the following snippet will show "pattern not found":<div><div>module A</div><div>&nbsp;&nbsp;class B</div><div>&nbsp;&nbsp; &nbsp;def c</div>

<div><br></div><div>&nbsp;&nbsp; &nbsp;end</div><div>&nbsp;&nbsp;end</div><div>end</div><div><br></div><div>a = A::B.new</div><div>a.#&lt;C-x&gt;&lt;C-o&gt;</div><div><br></div><div>By setting @@debug to true in rubycomplete.vim i see these messages when trying to complete for the first time:</div>

<div><div>input a.</div><div>variable</div><div>load_buffer_class(a) START</div><div>vartype A::B</div><div>load_buffer_class(A::B) START</div><div>load_buffer_class err: (eval):1:in `get_completions': uninitialized constant VimRubyCompletion::A</div>

</div><div><br></div><div>For some reason module A is not eval'ed to create the constant. In load_buffer_class the line:</div><div>&nbsp;&nbsp;classdef = get_buffer_entity(name, 's:GetBufferRubyClass("%s")')&nbsp;</div>

<div><br></div><div>returns nil.</div><div><br></div><div>Is there any better way to debug the Ruby code within rubycomplete.vim than with those dprint() statements? Any chance to use ruby-debug there somehow?</div><div>
<br>
</div><div>Should the code completion even work with today's Ruby? I can see from the github history that there hasn't been much of an action lately with rubycomplete.vim, but that could mean anything of course.</div>

<div><br></div><div>Jarmo</div><br><div class="gmail_quote">On Sat, Dec 25, 2010 at 7:44 PM, Jarmo <span dir="ltr">&lt;<a href="mailto:jarmo.p@gmail.com">jarmo.p@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; position: static; z-index: auto; ">

Hi!<div><br></div><div>I've finally got Ruby code completion working sort of, but not as i'd really like it. Currently it doesn't show the new methods added to some class if code-completion has already used. For example, if i have files like these:</div>


<div><br></div><div># a.rb</div><div>class A</div><div>&nbsp;&nbsp;def my_method</div><div>&nbsp;&nbsp;end</div><div>end</div><div><br></div><div># b.rb</div><div>require "a"</div><div>a = A.new</div><div>a. # &lt;C-x&gt;&lt;C-o&gt; will show my_method</div>


<div><br></div><div>Now if i open a.rb in a separate buffer and add some new method and save the file then again in the b-buffer omni-completion doesn't show the newly added method. I have to restart vim to make it show me the new method too. Is it possible to make vim reload the omni-completion data?</div>


<div><br></div><div>In my vimrc i have currently these lines:</div><div><font face="arial, sans-serif"><span style="border-collapse:collapse"><div>autocmd FileType ruby,eruby set omnifunc=rubycomplete#Complete</div>
<div>autocmd FileType ruby,eruby let g:rubycomplete_buffer_loading = 1</div><div>autocmd FileType ruby,eruby let g:rubycomplete_rails = 1</div><div>autocmd FileType ruby,eruby let g:rubycomplete_classes_in_global = 1</div>


<div><br></div><div>Also, when i use modules then the omni-completion doesn't seem to work at all - even if i restart vim:</div><div># a.rb</div><div><br></div><div>module MyModule</div><div>&nbsp;&nbsp;class MyClass</div><div>


&nbsp;&nbsp; &nbsp;def my_method</div><div>&nbsp;&nbsp; &nbsp;end</div><div>&nbsp;&nbsp;end</div><div>end</div><div><br></div><div># b.rb</div><div>MyM #&lt;C-x&gt;&lt;C-o&gt; shows no matches</div><div>MyModule::MyC #&lt;C-x&gt;&lt;C-o&gt; shows no matches</div>


<div>a = MyModule::MyClass.new</div><div>a. #&lt;C-x&gt;&lt;C-o&gt; shows no matches</div><div><br></div><div>To conclude i have two problems:</div><div>1) how to refresh omni-completion data?</div><div>2) how to make omni-completion work with module namespaces?</div>


<div><br></div><div>I'm relatively new to vim so please apologize for my ignorance.</div><div><br></div><font color="#888888"><div>Jarmo</div></font></span></font></div>
</blockquote></div><br></div>
_______________________________________________<br>vim-ruby-devel mailing list<br><a href="mailto:vim-ruby-devel@rubyforge.org">vim-ruby-devel@rubyforge.org</a><br>http://rubyforge.org/mailman/listinfo/vim-ruby-devel</blockquote></div><br>
</body></html>