Class: Neovim::Client

Inherits:
Object show all
Defined in:
lib/neovim/client.rb

Overview

Client to a running nvim instance. The interface is generated at runtime via the nvim_get_api_info RPC call. Some methods return RemoteObject subclasses (i.e. Buffer, Window, or Tabpage), which similarly have dynamically generated interfaces.

The methods documented here were generated using NVIM v0.10.0

See Also:

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(session, api) ⇒ Client



27
28
29
30
# File 'lib/neovim/client.rb', line 27

def initialize(session, api)
  @session = session
  @api = api
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method_name, *args) ⇒ Object

Intercept method calls and delegate to appropriate RPC methods.



37
38
39
40
41
42
43
# File 'lib/neovim/client.rb', line 37

def method_missing(method_name, *args)
  if (func = @api.function_for_object_method(self, method_name))
    func.call(@session, *args)
  else
    super
  end
end

Instance Attribute Details

#apiObject (readonly)

Returns the value of attribute api.



18
19
20
# File 'lib/neovim/client.rb', line 18

def api
  @api
end

#sessionObject (readonly)

Returns the value of attribute session.



18
19
20
# File 'lib/neovim/client.rb', line 18

def session
  @session
end

Class Method Details

.from_event_loop(event_loop, session = Session.new(event_loop)) ⇒ Object



20
21
22
23
24
25
# File 'lib/neovim/client.rb', line 20

def self.from_event_loop(event_loop, session=Session.new(event_loop))
  api = API.new(session.request(:nvim_get_api_info))
  event_loop.register_types(api, session)

  new(session, api)
end

Instance Method Details

#call_atomic(calls) ⇒ Array

See :h nvim_call_atomic()



# File 'lib/neovim/client.rb', line 120


#call_dict_function(dict, fn, args) ⇒ Object

See :h nvim_call_dict_function()



# File 'lib/neovim/client.rb', line 120


#call_function(fn, args) ⇒ Object

See :h nvim_call_function()



# File 'lib/neovim/client.rb', line 120


#chan_send(chan, data) ⇒ void

This method returns an undefined value.

See :h nvim_chan_send()



# File 'lib/neovim/client.rb', line 120


#channel_idObject



32
33
34
# File 'lib/neovim/client.rb', line 32

def channel_id
  @api.channel_id
end

#clear_autocmds(opts) ⇒ void

This method returns an undefined value.

See :h nvim_clear_autocmds()



# File 'lib/neovim/client.rb', line 120


#cmd(cmd, opts) ⇒ String

See :h nvim_cmd()



# File 'lib/neovim/client.rb', line 120


#command(command) ⇒ void

This method returns an undefined value.

See :h nvim_command()



# File 'lib/neovim/client.rb', line 120


#command_output(command) ⇒ String

See :h nvim_command_output()



# File 'lib/neovim/client.rb', line 120


#create_augroup(name, opts) ⇒ Integer

See :h nvim_create_augroup()



# File 'lib/neovim/client.rb', line 120


#create_autocmd(event, opts) ⇒ Integer

See :h nvim_create_autocmd()



# File 'lib/neovim/client.rb', line 120


#create_buf(listed, scratch) ⇒ Buffer

See :h nvim_create_buf()



# File 'lib/neovim/client.rb', line 120


#create_namespace(name) ⇒ Integer

See :h nvim_create_namespace()



# File 'lib/neovim/client.rb', line 120


#create_user_command(name, command, opts) ⇒ void

This method returns an undefined value.

See :h nvim_create_user_command()



# File 'lib/neovim/client.rb', line 120


#currentCurrent

Access to objects belonging to the current nvim context.

Examples:

Get the current buffer

client.current.buffer

Set the current line

client.current.line = "New line"

See Also:



63
64
65
# File 'lib/neovim/client.rb', line 63

def current
  @current ||= Current.new(@session)
end

#del_augroup_by_id(id) ⇒ void

This method returns an undefined value.

See :h nvim_del_augroup_by_id()



# File 'lib/neovim/client.rb', line 120


#del_augroup_by_name(name) ⇒ void

This method returns an undefined value.

See :h nvim_del_augroup_by_name()



# File 'lib/neovim/client.rb', line 120


#del_autocmd(id) ⇒ void

This method returns an undefined value.

See :h nvim_del_autocmd()



# File 'lib/neovim/client.rb', line 120


#del_current_linevoid

This method returns an undefined value.

See :h nvim_del_current_line()



# File 'lib/neovim/client.rb', line 120


#del_keymap(mode, lhs) ⇒ void

This method returns an undefined value.

See :h nvim_del_keymap()



# File 'lib/neovim/client.rb', line 120


#del_mark(name) ⇒ Boolean

See :h nvim_del_mark()



# File 'lib/neovim/client.rb', line 120


#del_user_command(name) ⇒ void

This method returns an undefined value.

See :h nvim_del_user_command()



# File 'lib/neovim/client.rb', line 120


#del_var(name) ⇒ void

This method returns an undefined value.

See :h nvim_del_var()



# File 'lib/neovim/client.rb', line 120


#echo(chunks, history, opts) ⇒ void

This method returns an undefined value.

See :h nvim_echo()



# File 'lib/neovim/client.rb', line 120


#err_write(str) ⇒ void

This method returns an undefined value.

See :h nvim_err_write()



# File 'lib/neovim/client.rb', line 120


#err_writeln(str) ⇒ void

This method returns an undefined value.

See :h nvim_err_writeln()



# File 'lib/neovim/client.rb', line 120


#eval(expr) ⇒ Object

See :h nvim_eval()



# File 'lib/neovim/client.rb', line 120


#eval_statusline(str, opts) ⇒ Hash

See :h nvim_eval_statusline()



# File 'lib/neovim/client.rb', line 120


#evaluate(expr) ⇒ Object

Evaluate the VimL expression (alias for nvim_eval).

Examples:

Return a list from VimL

client.evaluate('[1, 2]') # => [1, 2]


73
74
75
# File 'lib/neovim/client.rb', line 73

def evaluate(expr)
  @api.function_for_object_method(self, :eval).call(@session, expr)
end

#exec(src, output) ⇒ String

See :h nvim_exec()



# File 'lib/neovim/client.rb', line 120


#exec2(src, opts) ⇒ Hash

See :h nvim_exec2()



# File 'lib/neovim/client.rb', line 120


#exec_autocmds(event, opts) ⇒ void

This method returns an undefined value.

See :h nvim_exec_autocmds()



# File 'lib/neovim/client.rb', line 120


#exec_lua(code, args) ⇒ Object

See :h nvim_exec_lua()



# File 'lib/neovim/client.rb', line 120


#execute_lua(code, args) ⇒ Object

See :h nvim_execute_lua()



# File 'lib/neovim/client.rb', line 120


#feedkeys(keys, mode, escape_ks) ⇒ void

This method returns an undefined value.

See :h nvim_feedkeys()



# File 'lib/neovim/client.rb', line 120


#get_all_options_infoHash

See :h nvim_get_all_options_info()



# File 'lib/neovim/client.rb', line 120


#get_api_infoArray

See :h nvim_get_api_info()



# File 'lib/neovim/client.rb', line 120


#get_autocmds(opts) ⇒ Array

See :h nvim_get_autocmds()



# File 'lib/neovim/client.rb', line 120


#get_chan_info(chan) ⇒ Hash

See :h nvim_get_chan_info()



# File 'lib/neovim/client.rb', line 120


#get_color_by_name(name) ⇒ Integer

See :h nvim_get_color_by_name()



# File 'lib/neovim/client.rb', line 120


#get_color_mapHash

See :h nvim_get_color_map()



# File 'lib/neovim/client.rb', line 120


#get_commands(opts) ⇒ Hash

See :h nvim_get_commands()



# File 'lib/neovim/client.rb', line 120


#get_context(opts) ⇒ Hash

See :h nvim_get_context()



# File 'lib/neovim/client.rb', line 120


#get_current_bufBuffer

See :h nvim_get_current_buf()



# File 'lib/neovim/client.rb', line 120


#get_current_lineString

See :h nvim_get_current_line()



# File 'lib/neovim/client.rb', line 120


#get_current_tabpageTabpage

See :h nvim_get_current_tabpage()



# File 'lib/neovim/client.rb', line 120


#get_current_winWindow

See :h nvim_get_current_win()



# File 'lib/neovim/client.rb', line 120


#get_hl(ns_id, opts) ⇒ Hash

See :h nvim_get_hl()



# File 'lib/neovim/client.rb', line 120


#get_hl_by_id(hl_id, rgb) ⇒ Hash

See :h nvim_get_hl_by_id()



# File 'lib/neovim/client.rb', line 120


#get_hl_by_name(name, rgb) ⇒ Hash

See :h nvim_get_hl_by_name()



# File 'lib/neovim/client.rb', line 120


#get_hl_id_by_name(name) ⇒ Integer

See :h nvim_get_hl_id_by_name()



# File 'lib/neovim/client.rb', line 120


#get_hl_ns(opts) ⇒ Integer

See :h nvim_get_hl_ns()



# File 'lib/neovim/client.rb', line 120


#get_keymap(mode) ⇒ Array<Hash>

See :h nvim_get_keymap()



# File 'lib/neovim/client.rb', line 120


#get_mark(name, opts) ⇒ Array

See :h nvim_get_mark()



# File 'lib/neovim/client.rb', line 120


#get_modeHash

See :h nvim_get_mode()



# File 'lib/neovim/client.rb', line 120


#get_namespacesHash

See :h nvim_get_namespaces()



# File 'lib/neovim/client.rb', line 120


#get_option(name) ⇒ Object

See :h nvim_get_option()



# File 'lib/neovim/client.rb', line 120


#get_option_info(name) ⇒ Hash

See :h nvim_get_option_info()



# File 'lib/neovim/client.rb', line 120


#get_option_info2(name, opts) ⇒ Hash

See :h nvim_get_option_info2()



# File 'lib/neovim/client.rb', line 120


#get_option_value(name, opts) ⇒ Object

See :h nvim_get_option_value()



# File 'lib/neovim/client.rb', line 120


#get_proc(pid) ⇒ Object

See :h nvim_get_proc()



# File 'lib/neovim/client.rb', line 120


#get_proc_children(pid) ⇒ Array

See :h nvim_get_proc_children()



# File 'lib/neovim/client.rb', line 120


#get_runtime_file(name, all) ⇒ Array<String>

See :h nvim_get_runtime_file()



# File 'lib/neovim/client.rb', line 120


#get_var(name) ⇒ Object

See :h nvim_get_var()



# File 'lib/neovim/client.rb', line 120


#get_vvar(name) ⇒ Object

See :h nvim_get_vvar()



# File 'lib/neovim/client.rb', line 120


#input(keys) ⇒ Integer

See :h nvim_input()



# File 'lib/neovim/client.rb', line 120


#input_mouse(button, action, modifier, grid, row, col) ⇒ void

This method returns an undefined value.

See :h nvim_input_mouse()



# File 'lib/neovim/client.rb', line 120


#list_bufsArray<Buffer>

See :h nvim_list_bufs()



# File 'lib/neovim/client.rb', line 120


#list_chansArray

See :h nvim_list_chans()



# File 'lib/neovim/client.rb', line 120


#list_runtime_pathsArray<String>

See :h nvim_list_runtime_paths()



# File 'lib/neovim/client.rb', line 120


#list_tabpagesArray<Tabpage>

See :h nvim_list_tabpages()



# File 'lib/neovim/client.rb', line 120


#list_uisArray

See :h nvim_list_uis()



# File 'lib/neovim/client.rb', line 120


#list_winsArray<Window>

See :h nvim_list_wins()



# File 'lib/neovim/client.rb', line 120


#load_context(dict) ⇒ Object

See :h nvim_load_context()



# File 'lib/neovim/client.rb', line 120


#message(string) ⇒ void

This method returns an undefined value.

Display a message.



81
82
83
# File 'lib/neovim/client.rb', line 81

def message(string)
  out_write(string)
end

#methods(*args) ⇒ Object

Extend methods to include RPC methods.



51
52
53
# File 'lib/neovim/client.rb', line 51

def methods(*args)
  super | rpc_methods.to_a
end

#notify(msg, log_level, opts) ⇒ Object

See :h nvim_notify()



# File 'lib/neovim/client.rb', line 120


#open_term(buffer, opts) ⇒ Integer

See :h nvim_open_term()



# File 'lib/neovim/client.rb', line 120


#open_win(buffer, enter, config) ⇒ Window

See :h nvim_open_win()



# File 'lib/neovim/client.rb', line 120


#out_write(str) ⇒ void

This method returns an undefined value.

See :h nvim_out_write()



# File 'lib/neovim/client.rb', line 120


#parse_cmd(str, opts) ⇒ Hash

See :h nvim_parse_cmd()



# File 'lib/neovim/client.rb', line 120


#parse_expression(expr, flags, highlight) ⇒ Hash

See :h nvim_parse_expression()



# File 'lib/neovim/client.rb', line 120


#paste(data, crlf, phase) ⇒ Boolean

See :h nvim_paste()



# File 'lib/neovim/client.rb', line 120


#put(lines, type, after, follow) ⇒ void

This method returns an undefined value.

See :h nvim_put()



# File 'lib/neovim/client.rb', line 120


#replace_termcodes(str, from_part, do_lt, special) ⇒ String

See :h nvim_replace_termcodes()



# File 'lib/neovim/client.rb', line 120


#respond_to_missing?(method_name) ⇒ Boolean

Extend respond_to_missing? to support RPC methods.



46
47
48
# File 'lib/neovim/client.rb', line 46

def respond_to_missing?(method_name, *)
  super || rpc_methods.include?(method_name.to_sym)
end

#select_popupmenu_item(item, insert, finish, opts) ⇒ void

This method returns an undefined value.

See :h nvim_select_popupmenu_item()



# File 'lib/neovim/client.rb', line 120


#set_client_info(name, version, type, methods, attributes) ⇒ void

This method returns an undefined value.

See :h nvim_set_client_info()



# File 'lib/neovim/client.rb', line 120


#set_current_buf(buffer) ⇒ void

This method returns an undefined value.

See :h nvim_set_current_buf()



# File 'lib/neovim/client.rb', line 120


#set_current_dir(dir) ⇒ void

This method returns an undefined value.

See :h nvim_set_current_dir()



# File 'lib/neovim/client.rb', line 120


#set_current_line(line) ⇒ void

This method returns an undefined value.

See :h nvim_set_current_line()



# File 'lib/neovim/client.rb', line 120


#set_current_tabpage(tabpage) ⇒ void

This method returns an undefined value.

See :h nvim_set_current_tabpage()



# File 'lib/neovim/client.rb', line 120


#set_current_win(window) ⇒ void

This method returns an undefined value.

See :h nvim_set_current_win()



# File 'lib/neovim/client.rb', line 120


#set_decoration_provider(ns_id, opts) ⇒ void

This method returns an undefined value.

See :h nvim_set_decoration_provider()



# File 'lib/neovim/client.rb', line 120


#set_hl(ns_id, name, val) ⇒ void

This method returns an undefined value.

See :h nvim_set_hl()



# File 'lib/neovim/client.rb', line 120


#set_hl_ns(ns_id) ⇒ void

This method returns an undefined value.

See :h nvim_set_hl_ns()



# File 'lib/neovim/client.rb', line 120


#set_hl_ns_fast(ns_id) ⇒ void

This method returns an undefined value.

See :h nvim_set_hl_ns_fast()



# File 'lib/neovim/client.rb', line 120


#set_keymap(mode, lhs, rhs, opts) ⇒ void

This method returns an undefined value.

See :h nvim_set_keymap()



# File 'lib/neovim/client.rb', line 120


#set_option(key, value) ⇒ Object #set_option(optstr) ⇒ Object

Set an option.

Examples:

Set the timeoutlen option

client.set_option("timeoutlen", 0)
client.set_option("timeoutlen=0")


97
98
99
100
101
102
103
# File 'lib/neovim/client.rb', line 97

def set_option(*args)
  if args.size > 1
    @api.function_for_object_method(self, :set_option).call(@session, *args)
  else
    @api.function_for_object_method(self, :command).call(@session, "set #{args.first}")
  end
end

#set_option_value(name, value, opts) ⇒ void

This method returns an undefined value.

See :h nvim_set_option_value()



# File 'lib/neovim/client.rb', line 120


#set_var(name, value) ⇒ void

This method returns an undefined value.

See :h nvim_set_var()



# File 'lib/neovim/client.rb', line 120


#set_vvar(name, value) ⇒ void

This method returns an undefined value.

See :h nvim_set_vvar()



# File 'lib/neovim/client.rb', line 120


#shutdownObject



105
106
107
# File 'lib/neovim/client.rb', line 105

def shutdown
  @session.shutdown
end

#strwidth(text) ⇒ Integer

See :h nvim_strwidth()



# File 'lib/neovim/client.rb', line 120


#subscribe(event) ⇒ void

This method returns an undefined value.

See :h nvim_subscribe()



# File 'lib/neovim/client.rb', line 120


#ui_attach(width, height, options) ⇒ void

This method returns an undefined value.

See :h nvim_ui_attach()



# File 'lib/neovim/client.rb', line 120


#ui_detachvoid

This method returns an undefined value.

See :h nvim_ui_detach()



# File 'lib/neovim/client.rb', line 120


#ui_pum_set_bounds(width, height, row, col) ⇒ void

This method returns an undefined value.

See :h nvim_ui_pum_set_bounds()



# File 'lib/neovim/client.rb', line 120


#ui_pum_set_height(height) ⇒ void

This method returns an undefined value.

See :h nvim_ui_pum_set_height()



# File 'lib/neovim/client.rb', line 120


#ui_set_focus(gained) ⇒ void

This method returns an undefined value.

See :h nvim_ui_set_focus()



# File 'lib/neovim/client.rb', line 120


#ui_set_option(name, value) ⇒ void

This method returns an undefined value.

See :h nvim_ui_set_option()



# File 'lib/neovim/client.rb', line 120


#ui_term_event(event, value) ⇒ void

This method returns an undefined value.

See :h nvim_ui_term_event()



# File 'lib/neovim/client.rb', line 120


#ui_try_resize(width, height) ⇒ void

This method returns an undefined value.

See :h nvim_ui_try_resize()



# File 'lib/neovim/client.rb', line 120


#ui_try_resize_grid(grid, width, height) ⇒ void

This method returns an undefined value.

See :h nvim_ui_try_resize_grid()



# File 'lib/neovim/client.rb', line 120


#unsubscribe(event) ⇒ void

This method returns an undefined value.

See :h nvim_unsubscribe()



# File 'lib/neovim/client.rb', line 120