Class: LanguageServer::Protocol::Interface::DidChangeNotebookDocumentParams

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

Overview

The params sent in a change notebook document notification.

Since:

  • 3.17.0

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(notebook_document:, change:) ⇒ DidChangeNotebookDocumentParams

Returns a new instance of DidChangeNotebookDocumentParams.

Since:

  • 3.17.0



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

#attributesObject (readonly)

Since:

  • 3.17.0



50
51
52
# File 'lib/language_server/protocol/interface/did_change_notebook_document_params.rb', line 50

def attributes
  @attributes
end

Instance Method Details

#changeNotebookDocumentChangeEvent

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.

Returns:

Since:

  • 3.17.0



46
47
48
# File 'lib/language_server/protocol/interface/did_change_notebook_document_params.rb', line 46

def change
  attributes.fetch(:change)
end

#notebook_documentVersionedNotebookDocumentIdentifier

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.

Returns:

Since:

  • 3.17.0



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_hashObject

Since:

  • 3.17.0



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

Since:

  • 3.17.0



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