Minor changes. Add resolve_resource_op()

This commit is contained in:
Ali Bektas 2023-06-23 19:22:59 +02:00
parent 96cebca116
commit b96796ce5e

View file

@ -549,7 +549,7 @@ pub(crate) fn handle_will_rename_files(
) -> anyhow::Result<Option<lsp_types::WorkspaceEdit>> { ) -> anyhow::Result<Option<lsp_types::WorkspaceEdit>> {
let _p = profile::span("handle_will_rename_files"); let _p = profile::span("handle_will_rename_files");
if let Err(err) = resource_ops_supported(&snap.config, &ResourceOperationKind::Rename) { if let Err(err) = resource_ops_supported(&snap.config, ResourceOperationKind::Rename) {
return Err(err); return Err(err);
} }
@ -1043,14 +1043,9 @@ pub(crate) fn handle_rename(
{ {
for op in ops { for op in ops {
if let lsp_types::DocumentChangeOperation::Op(doc_change_op) = op { if let lsp_types::DocumentChangeOperation::Op(doc_change_op) = op {
if let Err(err) = resource_ops_supported( if let Err(err) =
&snap.config, resource_ops_supported(&snap.config, resolve_resource_op(doc_change_op))
match doc_change_op { {
ResourceOp::Create(_) => &ResourceOperationKind::Create,
ResourceOp::Rename(_) => &ResourceOperationKind::Rename,
ResourceOp::Delete(_) => &ResourceOperationKind::Delete,
},
) {
return Err(err); return Err(err);
} }
} }
@ -1168,14 +1163,9 @@ pub(crate) fn handle_code_action(
if let Some(changes) = &code_action.edit.as_ref().unwrap().document_changes { if let Some(changes) = &code_action.edit.as_ref().unwrap().document_changes {
for change in changes { for change in changes {
if let lsp_ext::SnippetDocumentChangeOperation::Op(res_op) = change { if let lsp_ext::SnippetDocumentChangeOperation::Op(res_op) = change {
if let Err(err) = resource_ops_supported( if let Err(err) =
&snap.config, resource_ops_supported(&snap.config, resolve_resource_op(res_op))
match res_op { {
ResourceOp::Create(_) => &ResourceOperationKind::Create,
ResourceOp::Rename(_) => &ResourceOperationKind::Rename,
ResourceOp::Delete(_) => &ResourceOperationKind::Delete,
},
) {
return Err(err); return Err(err);
} }
} }
@ -1269,14 +1259,9 @@ pub(crate) fn handle_code_action_resolve(
if let Some(changes) = edit.document_changes.as_ref() { if let Some(changes) = edit.document_changes.as_ref() {
for change in changes { for change in changes {
if let lsp_ext::SnippetDocumentChangeOperation::Op(res_op) = change { if let lsp_ext::SnippetDocumentChangeOperation::Op(res_op) = change {
if let Err(err) = resource_ops_supported( if let Err(err) =
&snap.config, resource_ops_supported(&snap.config, resolve_resource_op(res_op))
match res_op { {
ResourceOp::Create(_) => &ResourceOperationKind::Create,
ResourceOp::Rename(_) => &ResourceOperationKind::Rename,
ResourceOp::Delete(_) => &ResourceOperationKind::Delete,
},
) {
return Err(err); return Err(err);
} }
} }
@ -2056,7 +2041,7 @@ fn to_url(path: VfsPath) -> Option<Url> {
Url::from_file_path(str_path).ok() Url::from_file_path(str_path).ok()
} }
fn resource_ops_supported(config: &Config, kind: &ResourceOperationKind) -> anyhow::Result<()> { fn resource_ops_supported(config: &Config, kind: ResourceOperationKind) -> anyhow::Result<()> {
let ctn = config let ctn = config
.caps() .caps()
.workspace .workspace
@ -2068,7 +2053,7 @@ fn resource_ops_supported(config: &Config, kind: &ResourceOperationKind) -> anyh
.resource_operations .resource_operations
.as_ref() .as_ref()
.unwrap() .unwrap()
.contains(kind); .contains(&kind);
if !ctn { if !ctn {
return Err(LspError::new( return Err(LspError::new(
@ -2087,3 +2072,11 @@ fn resource_ops_supported(config: &Config, kind: &ResourceOperationKind) -> anyh
Ok(()) Ok(())
} }
fn resolve_resource_op(op: &ResourceOp) -> ResourceOperationKind {
match op {
ResourceOp::Create(_) => ResourceOperationKind::Create,
ResourceOp::Rename(_) => ResourceOperationKind::Rename,
ResourceOp::Delete(_) => ResourceOperationKind::Delete,
}
}