Class: LanguageServer::Protocol::Interface::DidChangeNotebookDocumentParams
- Inherits:
-
Object
- Object
- LanguageServer::Protocol::Interface::DidChangeNotebookDocumentParams
- Defined in:
- lib/language_server/protocol/interface/did_change_notebook_document_params.rb
Overview
The params sent in a change notebook document notification.
Instance Attribute Summary collapse
- #attributes ⇒ Object readonly
Instance Method Summary collapse
-
#change ⇒ NotebookDocumentChangeEvent
The actual changes to the notebook document.
-
#initialize(notebook_document:, change:) ⇒ DidChangeNotebookDocumentParams
constructor
A new instance of DidChangeNotebookDocumentParams.
-
#notebook_document ⇒ VersionedNotebookDocumentIdentifier
The notebook document that did change.
- #to_hash ⇒ Object
- #to_json(*args) ⇒ Object
Constructor Details
#initialize(notebook_document:, change:) ⇒ DidChangeNotebookDocumentParams
Returns a new instance of DidChangeNotebookDocumentParams.
10 11 12 13 14 15 16 17 |
# File 'lib/language_server/protocol/interface/did_change_notebook_document_params.rb', line 10 def initialize(notebook_document:, change:) @attributes = {} @attributes[:notebookDocument] = notebook_document @attributes[:change] = change @attributes.freeze end |
Instance Attribute Details
#attributes ⇒ Object (readonly)
50 51 52 |
# File 'lib/language_server/protocol/interface/did_change_notebook_document_params.rb', line 50 def attributes @attributes end |
Instance Method Details
#change ⇒ NotebookDocumentChangeEvent
The actual changes to the notebook document.
The changes describe single state changes to the notebook document. So if there are two changes c1 (at array index 0) and c2 (at array index 1) for a notebook in state S then c1 moves the notebook 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 notebook using change events use the following approach:
-
start with the same initial content
-
apply the ‘notebookDocument/didChange’ notifications in the order you receive them.
-
apply the ‘NotebookChangeEvent`s in a single notification in the order you receive them.
46 47 48 |
# File 'lib/language_server/protocol/interface/did_change_notebook_document_params.rb', line 46 def change attributes.fetch(:change) end |
#notebook_document ⇒ VersionedNotebookDocumentIdentifier
The notebook document that did change. The version number points to the version after all provided changes have been applied. If only the text document content of a cell changes the notebook version doesn’t necessarily have to change.
26 27 28 |
# File 'lib/language_server/protocol/interface/did_change_notebook_document_params.rb', line 26 def notebook_document attributes.fetch(:notebookDocument) end |
#to_hash ⇒ Object
52 53 54 |
# File 'lib/language_server/protocol/interface/did_change_notebook_document_params.rb', line 52 def to_hash attributes end |
#to_json(*args) ⇒ Object
56 57 58 |
# File 'lib/language_server/protocol/interface/did_change_notebook_document_params.rb', line 56 def to_json(*args) to_hash.to_json(*args) end |