Class: LanguageServer::Protocol::Interface::DidChangeTextDocumentParams
- Inherits:
-
Object
- Object
- LanguageServer::Protocol::Interface::DidChangeTextDocumentParams
- Defined in:
- lib/language_server/protocol/interface/did_change_text_document_params.rb
Instance Attribute Summary collapse
-
#attributes ⇒ Object
readonly
Returns the value of attribute attributes.
Instance Method Summary collapse
-
#content_changes ⇒ TextDocumentContentChangeEvent[]
The actual content changes.
-
#initialize(text_document:, content_changes:) ⇒ DidChangeTextDocumentParams
constructor
A new instance of DidChangeTextDocumentParams.
-
#text_document ⇒ VersionedTextDocumentIdentifier
The document that did change.
- #to_hash ⇒ Object
- #to_json(*args) ⇒ Object
Constructor Details
#initialize(text_document:, content_changes:) ⇒ DidChangeTextDocumentParams
Returns a new instance of DidChangeTextDocumentParams.
5 6 7 8 9 10 11 12 |
# File 'lib/language_server/protocol/interface/did_change_text_document_params.rb', line 5 def initialize(text_document:, content_changes:) @attributes = {} @attributes[:textDocument] = text_document @attributes[:contentChanges] = content_changes @attributes.freeze end |
Instance Attribute Details
#attributes ⇒ Object (readonly)
Returns the value of attribute attributes.
42 43 44 |
# File 'lib/language_server/protocol/interface/did_change_text_document_params.rb', line 42 def attributes @attributes end |
Instance Method Details
#content_changes ⇒ TextDocumentContentChangeEvent[]
The actual content changes. The content changes describe single state changes to the document. So if there are two content changes c1 (at array index 0) and c2 (at array index 1) for a document in state S then c1 moves the document from S to S’ and c2 from S’ to S”. So c1 is computed on the state S and c2 is computed on the state S’.
To mirror the content of a document using change events use the following approach:
-
start with the same initial content
-
apply the ‘textDocument/didChange’ notifications in the order you recevie them.
-
apply the ‘TextDocumentContentChangeEvent`s in a single notification in the order
you receive them.
38 39 40 |
# File 'lib/language_server/protocol/interface/did_change_text_document_params.rb', line 38 def content_changes attributes.fetch(:contentChanges) end |
#text_document ⇒ VersionedTextDocumentIdentifier
The document that did change. The version number points to the version after all provided content changes have been applied.
20 21 22 |
# File 'lib/language_server/protocol/interface/did_change_text_document_params.rb', line 20 def text_document attributes.fetch(:textDocument) end |
#to_hash ⇒ Object
44 45 46 |
# File 'lib/language_server/protocol/interface/did_change_text_document_params.rb', line 44 def to_hash attributes end |
#to_json(*args) ⇒ Object
48 49 50 |
# File 'lib/language_server/protocol/interface/did_change_text_document_params.rb', line 48 def to_json(*args) to_hash.to_json(*args) end |