mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-27 04:19:13 +00:00
Minor changes. Add resolve_resource_op()
This commit is contained in:
parent
96cebca116
commit
b96796ce5e
1 changed files with 20 additions and 27 deletions
|
@ -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,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue