Struct lsp_types::WorkspaceEdit
source · [−]pub struct WorkspaceEdit {
pub changes: Option<HashMap<Url, Vec<TextEdit>>>,
pub document_changes: Option<DocumentChanges>,
pub change_annotations: Option<HashMap<ChangeAnnotationIdentifier, ChangeAnnotation>>,
}
Expand description
A workspace edit represents changes to many resources managed in the workspace.
The edit should either provide changes
or documentChanges
.
If the client can handle versioned document edits and if documentChanges
are present,
the latter are preferred over changes
.
Fields
changes: Option<HashMap<Url, Vec<TextEdit>>>
Holds changes to existing resources.
document_changes: Option<DocumentChanges>
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.
change_annotations: Option<HashMap<ChangeAnnotationIdentifier, ChangeAnnotation>>
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
.
@since 3.16.0
Implementations
sourceimpl WorkspaceEdit
impl WorkspaceEdit
Trait Implementations
sourceimpl Clone for WorkspaceEdit
impl Clone for WorkspaceEdit
sourcefn clone(&self) -> WorkspaceEdit
fn clone(&self) -> WorkspaceEdit
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more