Class: LanguageServer::Protocol::Interface::TextDocumentContentChangeEvent

Inherits:
Object
  • Object
show all
Defined in:
lib/language_server/protocol/interface/text_document_content_change_event.rb

Overview

An event describing a change to a text document. If range and rangeLength are omitted the new text is considered to be the full content of the document.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(range: nil, range_length: nil, text:) ⇒ TextDocumentContentChangeEvent

Returns a new instance of TextDocumentContentChangeEvent.



9
10
11
12
13
14
15
16
17
# File 'lib/language_server/protocol/interface/text_document_content_change_event.rb', line 9

def initialize(range: nil, range_length: nil, text:)
  @attributes = {}

  @attributes[:range] = range if range
  @attributes[:rangeLength] = range_length if range_length
  @attributes[:text] = text

  @attributes.freeze
end

Instance Attribute Details

#attributesObject (readonly)

Returns the value of attribute attributes.



47
48
49
# File 'lib/language_server/protocol/interface/text_document_content_change_event.rb', line 47

def attributes
  @attributes
end

Instance Method Details

#rangeRange?

The range of the document that changed.

Returns:



23
24
25
# File 'lib/language_server/protocol/interface/text_document_content_change_event.rb', line 23

def range
  attributes.fetch(:range)
end

#range_lengthnumber?

The optional length of the range that got replaced.

Returns:

  • (number, nil)


31
32
33
# File 'lib/language_server/protocol/interface/text_document_content_change_event.rb', line 31

def range_length
  attributes.fetch(:rangeLength)
end

#textstring

The new text for the provided range.

— OR —

The new text of the whole document.

Returns:

  • (string)


43
44
45
# File 'lib/language_server/protocol/interface/text_document_content_change_event.rb', line 43

def text
  attributes.fetch(:text)
end

#to_hashObject



49
50
51
# File 'lib/language_server/protocol/interface/text_document_content_change_event.rb', line 49

def to_hash
  attributes
end

#to_json(*args) ⇒ Object



53
54
55
# File 'lib/language_server/protocol/interface/text_document_content_change_event.rb', line 53

def to_json(*args)
  to_hash.to_json(*args)
end