Class: Neovim::Buffer

Inherits:
RemoteObject show all
Defined in:
lib/neovim/buffer.rb,
lib/neovim/ruby_provider/buffer_ext.rb

Overview

Class representing an nvim buffer.

Instance Attribute Summary

Attributes inherited from RemoteObject

#index

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from RemoteObject

#==, #initialize, #method_missing, #methods, #respond_to?, #to_msgpack

Constructor Details

This class inherits a constructor from Neovim::RemoteObject

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Neovim::RemoteObject

Class Method Details

.[](index) ⇒ Object



13
14
15
# File 'lib/neovim/ruby_provider/buffer_ext.rb', line 13

def self.[](index)
  ::VIM.get_buffers[index]
end

.countObject



9
10
11
# File 'lib/neovim/ruby_provider/buffer_ext.rb', line 9

def self.count
  ::VIM.get_buffers.size
end

.currentObject



5
6
7
# File 'lib/neovim/ruby_provider/buffer_ext.rb', line 5

def self.current
  ::VIM.get_current_buffer
end

Instance Method Details

#[](index) ⇒ String

Get the given line (1-indexed).

Parameters:

  • index (Fixnum)

Returns:

  • (String)


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

def [](index)
  lines[index-1]
end

#[]=(index, str) ⇒ String

Set the given line (1-indexed).

Parameters:

  • index (Fixnum)
  • str (String)

Returns:

  • (String)


82
83
84
# File 'lib/neovim/buffer.rb', line 82

def []=(index, str)
  lines[index-1] = str
end

#active?Boolean

Determine if the buffer is active.

Returns:

  • (Boolean)


136
137
138
# File 'lib/neovim/buffer.rb', line 136

def active?
  @session.request(:vim_get_current_buffer) == self
end

#add_highlight(src_id, hl_group, line, col_start, col_end) ⇒ Fixnum

Parameters:

  • src_id (Fixnum)
  • hl_group (String)
  • line (Fixnum)
  • col_start (Fixnum)
  • col_end (Fixnum)

Returns:

  • (Fixnum)


# File 'lib/neovim/buffer.rb', line 142

#append(index, str) ⇒ String

Append a line after the given line (1-indexed).

Parameters:

  • index (Fixnum)
  • str (String)

Returns:

  • (String)


99
100
101
102
# File 'lib/neovim/buffer.rb', line 99

def append(index, str)
  lines[index-1, 1] = [lines[index-1], str]
  str
end

#clear_highlight(src_id, line_start, line_end) ⇒ void

This method returns an undefined value.

Parameters:

  • src_id (Fixnum)
  • line_start (Fixnum)
  • line_end (Fixnum)


# File 'lib/neovim/buffer.rb', line 142

#countFixnum

Get the number of lines.

Returns:

  • (Fixnum)


58
59
60
# File 'lib/neovim/buffer.rb', line 58

def count
  line_count
end

#del_line(index) ⇒ void

This method returns an undefined value.

Parameters:

  • index (Fixnum)


# File 'lib/neovim/buffer.rb', line 142

#del_var(name) ⇒ Object

Parameters:

  • name (String)

Returns:

  • (Object)


# File 'lib/neovim/buffer.rb', line 142

#delete(index) ⇒ void

This method returns an undefined value.

Delete the given line (1-indexed).

Parameters:

  • index (Fixnum)


90
91
92
# File 'lib/neovim/buffer.rb', line 90

def delete(index)
  lines.delete(index-1)
end

#get_line(index) ⇒ String

Parameters:

  • index (Fixnum)

Returns:

  • (String)


# File 'lib/neovim/buffer.rb', line 142

#get_line_slice(start, end) ⇒ Array<String>

Parameters:

  • start (Fixnum)
  • end (Fixnum)
  • include_start (Boolean)
  • include_end (Boolean)

Returns:

  • (Array<String>)


# File 'lib/neovim/buffer.rb', line 142

#get_lines(start, end) ⇒ Array<String>

Parameters:

  • start (Fixnum)
  • end (Fixnum)
  • strict_indexing (Boolean)

Returns:

  • (Array<String>)


# File 'lib/neovim/buffer.rb', line 142

#get_mark(name) ⇒ Array<Fixnum>

Parameters:

  • name (String)

Returns:

  • (Array<Fixnum>)


# File 'lib/neovim/buffer.rb', line 142

#get_nameString

Returns:

  • (String)


# File 'lib/neovim/buffer.rb', line 142

#get_numberFixnum

Returns:

  • (Fixnum)


# File 'lib/neovim/buffer.rb', line 142

#get_option(name) ⇒ Object

Parameters:

  • name (String)

Returns:

  • (Object)


# File 'lib/neovim/buffer.rb', line 142

#get_var(name) ⇒ Object

Parameters:

  • name (String)

Returns:

  • (Object)


# File 'lib/neovim/buffer.rb', line 142

#insert(lnum, lines) ⇒ void

This method returns an undefined value.

Parameters:

  • lnum (Fixnum)
  • lines (Array<String>)


# File 'lib/neovim/buffer.rb', line 142

#is_validBoolean

Returns:

  • (Boolean)


# File 'lib/neovim/buffer.rb', line 142

#lengthFixnum

Get the number of lines.

Returns:

  • (Fixnum)


65
66
67
# File 'lib/neovim/buffer.rb', line 65

def length
  count
end

#lineString?

Get the current line of an active buffer.

Returns:

  • (String, nil)


107
108
109
110
111
# File 'lib/neovim/buffer.rb', line 107

def line
  if active?
    @session.request(:vim_get_current_line)
  end
end

#line=(str) ⇒ String?

Set the current line of an active buffer.

Parameters:

  • str (String)

Returns:

  • (String, nil)


117
118
119
120
121
# File 'lib/neovim/buffer.rb', line 117

def line=(str)
  if active?
    @session.request(:vim_set_current_line, str)
  end
end

#line_countFixnum

Returns:

  • (Fixnum)


# File 'lib/neovim/buffer.rb', line 142

#line_numberFixnum?

Get the current line number of an active buffer.

Returns:

  • (Fixnum, nil)


126
127
128
129
130
131
# File 'lib/neovim/buffer.rb', line 126

def line_number
  if active?
    window = @session.request(:vim_get_current_window)
    @session.request(:window_get_cursor, window)[0]
  end
end

#linesLineRange

A LineRange object representing the buffer’s lines.

Returns:

See Also:



11
12
13
# File 'lib/neovim/buffer.rb', line 11

def lines
  @lines ||= LineRange.new(self, 0, -1)
end

#lines=(strs) ⇒ Array<String>

Replace all the lines of the buffer.

Parameters:

  • strs (Array<String>)

    The replacement lines

Returns:

  • (Array<String>)


19
20
21
# File 'lib/neovim/buffer.rb', line 19

def lines=(strs)
  lines[0..-1] = strs
end

#nameString

Get the buffer name.

Returns:

  • (String)


44
45
46
# File 'lib/neovim/buffer.rb', line 44

def name
  get_name
end

#numberFixnum

Get the buffer index.

Returns:

  • (Fixnum)


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

def number
  get_number
end

#rangeLineRange

A LineRange object representing the buffer’s selection range.

Returns:

See Also:



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

def range
  @range ||= LineRange.new(self, 0, -1)
end

#range=(_range) ⇒ LineRange

Set the buffer’s current selection range.

Parameters:

  • _range (Range)

    The replacement range

Returns:

See Also:



36
37
38
39
# File 'lib/neovim/buffer.rb', line 36

def range=(_range)
  _end = _range.exclude_end? ? _range.end - 1 : _range.end
  @range = LineRange.new(self, _range.begin, _end)
end

#set_line(index, line) ⇒ void

This method returns an undefined value.

Parameters:

  • index (Fixnum)
  • line (String)


# File 'lib/neovim/buffer.rb', line 142

#set_line_slice(start, end) ⇒ void

This method returns an undefined value.

Parameters:

  • start (Fixnum)
  • end (Fixnum)
  • include_start (Boolean)
  • include_end (Boolean)
  • replacement (Array<String>)


# File 'lib/neovim/buffer.rb', line 142

#set_lines(start, end) ⇒ void

This method returns an undefined value.

Parameters:

  • start (Fixnum)
  • end (Fixnum)
  • strict_indexing (Boolean)
  • replacement (Array<String>)


# File 'lib/neovim/buffer.rb', line 142

#set_name(name) ⇒ void

This method returns an undefined value.

Parameters:

  • name (String)


# File 'lib/neovim/buffer.rb', line 142

#set_option(name, value) ⇒ void

This method returns an undefined value.

Parameters:

  • name (String)
  • value (Object)


# File 'lib/neovim/buffer.rb', line 142

#set_var(name, value) ⇒ Object

Parameters:

  • name (String)
  • value (Object)

Returns:

  • (Object)


# File 'lib/neovim/buffer.rb', line 142