class LanguageServer::Protocol::Interface::WorkspaceEdit

Attributes

attributes[R]

Public Class Methods

new(changes: nil, document_changes: nil, change_annotations: nil) click to toggle source
# File lib/language_server/protocol/interface/workspace_edit.rb, line 5
def initialize(changes: nil, document_changes: nil, change_annotations: nil)
  @attributes = {}

  @attributes[:changes] = changes if changes
  @attributes[:documentChanges] = document_changes if document_changes
  @attributes[:changeAnnotations] = change_annotations if change_annotations

  @attributes.freeze
end

Public Instance Methods

change_annotations() click to toggle source

A map of change annotations that can be referenced in `AnnotatedTextEdit`s or create, rename and delete file / folder operations.

Whether clients honor this property depends on the client capability `workspace.changeAnnotationSupport`.

@return [{ [id: string]: ChangeAnnotation; }]

# File lib/language_server/protocol/interface/workspace_edit.rb, line 52
def change_annotations
  attributes.fetch(:changeAnnotations)
end
changes() click to toggle source

Holds changes to existing resources.

@return [{}]

# File lib/language_server/protocol/interface/workspace_edit.rb, line 19
def changes
  attributes.fetch(:changes)
end
document_changes() click to toggle source

Depending on the client capability `workspace.workspaceEdit.resourceOperations` document changes are either an array of `TextDocumentEdit`s to express changes to n different text documents where each text document edit addresses a specific version of a text document. Or it can contain above `TextDocumentEdit`s mixed with create, rename and delete file / folder operations.

Whether a client supports versioned document edits is expressed via `workspace.workspaceEdit.documentChanges` client capability.

If a client neither supports `documentChanges` nor `workspace.workspaceEdit.resourceOperations` then only plain `TextEdit`s using the `changes` property are supported.

@return [TextDocumentEdit[] | (TextDocumentEdit | CreateFile | RenameFile | DeleteFile)

# File lib/language_server/protocol/interface/workspace_edit.rb, line 39
def document_changes
  attributes.fetch(:documentChanges)
end
to_hash() click to toggle source
# File lib/language_server/protocol/interface/workspace_edit.rb, line 58
def to_hash
  attributes
end
to_json(*args) click to toggle source
# File lib/language_server/protocol/interface/workspace_edit.rb, line 62
def to_json(*args)
  to_hash.to_json(*args)
end