Module: Vim

Defined in:
lib/neovim/ruby_provider/vim.rb

Overview

The VIM module provides backwards compatibility for the :ruby, :rubyfile, and :rubydo vim functions.

Constant Summary collapse

Buffer =
::Neovim::Buffer
Window =
::Neovim::Window

Class Method Summary collapse

Class Method Details

.__client=(client) ⇒ Object



12
13
14
# File 'lib/neovim/ruby_provider/vim.rb', line 12

def self.__client=(client)
  @__client = client
end

.__refresh_globals(client) ⇒ Object



35
36
37
38
39
40
41
42
43
44
# File 'lib/neovim/ruby_provider/vim.rb', line 35

def self.__refresh_globals(client)
  bufid, winid = client.evaluate("[nvim_get_current_buf(), nvim_get_current_win()]")
  session, api = client.session, client.api

  $curbuf = @__buffer_cache.fetch(bufid) do
    @__buffer_cache[bufid] = Buffer.new(bufid, session, api)
  end

  $curwin = Window.new(winid, session, api)
end

.method_missing(method, *args, &block) ⇒ Object

Delegate all method calls to the underlying Neovim::Client object.



17
18
19
20
21
22
23
24
25
# File 'lib/neovim/ruby_provider/vim.rb', line 17

def self.method_missing(method, *args, &block)
  if @__client
    @__client.public_send(method, *args, &block).tap do
      __refresh_globals(@__client)
    end
  else
    super
  end
end

.respond_to_missing?(method, *args) ⇒ Boolean

Returns:

  • (Boolean)


27
28
29
30
31
32
33
# File 'lib/neovim/ruby_provider/vim.rb', line 27

def self.respond_to_missing?(method, *args)
  if @__client
    @__client.send(:respond_to_missing?, method, *args)
  else
    super
  end
end