@@ -549,7 +549,7 @@ pub(crate) fn handle_will_rename_files(
549
549
) -> anyhow:: Result < Option < lsp_types:: WorkspaceEdit > > {
550
550
let _p = profile:: span ( "handle_will_rename_files" ) ;
551
551
552
- if let Err ( err) = resource_ops_supported ( & snap. config , & ResourceOperationKind :: Rename ) {
552
+ if let Err ( err) = resource_ops_supported ( & snap. config , ResourceOperationKind :: Rename ) {
553
553
return Err ( err) ;
554
554
}
555
555
@@ -1043,14 +1043,9 @@ pub(crate) fn handle_rename(
1043
1043
{
1044
1044
for op in ops {
1045
1045
if let lsp_types:: DocumentChangeOperation :: Op ( doc_change_op) = op {
1046
- if let Err ( err) = resource_ops_supported (
1047
- & snap. config ,
1048
- match doc_change_op {
1049
- ResourceOp :: Create ( _) => & ResourceOperationKind :: Create ,
1050
- ResourceOp :: Rename ( _) => & ResourceOperationKind :: Rename ,
1051
- ResourceOp :: Delete ( _) => & ResourceOperationKind :: Delete ,
1052
- } ,
1053
- ) {
1046
+ if let Err ( err) =
1047
+ resource_ops_supported ( & snap. config , resolve_resource_op ( doc_change_op) )
1048
+ {
1054
1049
return Err ( err) ;
1055
1050
}
1056
1051
}
@@ -1168,14 +1163,9 @@ pub(crate) fn handle_code_action(
1168
1163
if let Some ( changes) = & code_action. edit . as_ref ( ) . unwrap ( ) . document_changes {
1169
1164
for change in changes {
1170
1165
if let lsp_ext:: SnippetDocumentChangeOperation :: Op ( res_op) = change {
1171
- if let Err ( err) = resource_ops_supported (
1172
- & snap. config ,
1173
- match res_op {
1174
- ResourceOp :: Create ( _) => & ResourceOperationKind :: Create ,
1175
- ResourceOp :: Rename ( _) => & ResourceOperationKind :: Rename ,
1176
- ResourceOp :: Delete ( _) => & ResourceOperationKind :: Delete ,
1177
- } ,
1178
- ) {
1166
+ if let Err ( err) =
1167
+ resource_ops_supported ( & snap. config , resolve_resource_op ( res_op) )
1168
+ {
1179
1169
return Err ( err) ;
1180
1170
}
1181
1171
}
@@ -1269,14 +1259,9 @@ pub(crate) fn handle_code_action_resolve(
1269
1259
if let Some ( changes) = edit. document_changes . as_ref ( ) {
1270
1260
for change in changes {
1271
1261
if let lsp_ext:: SnippetDocumentChangeOperation :: Op ( res_op) = change {
1272
- if let Err ( err) = resource_ops_supported (
1273
- & snap. config ,
1274
- match res_op {
1275
- ResourceOp :: Create ( _) => & ResourceOperationKind :: Create ,
1276
- ResourceOp :: Rename ( _) => & ResourceOperationKind :: Rename ,
1277
- ResourceOp :: Delete ( _) => & ResourceOperationKind :: Delete ,
1278
- } ,
1279
- ) {
1262
+ if let Err ( err) =
1263
+ resource_ops_supported ( & snap. config , resolve_resource_op ( res_op) )
1264
+ {
1280
1265
return Err ( err) ;
1281
1266
}
1282
1267
}
@@ -2056,7 +2041,7 @@ fn to_url(path: VfsPath) -> Option<Url> {
2056
2041
Url :: from_file_path ( str_path) . ok ( )
2057
2042
}
2058
2043
2059
- fn resource_ops_supported ( config : & Config , kind : & ResourceOperationKind ) -> anyhow:: Result < ( ) > {
2044
+ fn resource_ops_supported ( config : & Config , kind : ResourceOperationKind ) -> anyhow:: Result < ( ) > {
2060
2045
let ctn = config
2061
2046
. caps ( )
2062
2047
. workspace
@@ -2068,7 +2053,7 @@ fn resource_ops_supported(config: &Config, kind: &ResourceOperationKind) -> anyh
2068
2053
. resource_operations
2069
2054
. as_ref ( )
2070
2055
. unwrap ( )
2071
- . contains ( kind) ;
2056
+ . contains ( & kind) ;
2072
2057
2073
2058
if !ctn {
2074
2059
return Err ( LspError :: new (
@@ -2087,3 +2072,11 @@ fn resource_ops_supported(config: &Config, kind: &ResourceOperationKind) -> anyh
2087
2072
2088
2073
Ok ( ( ) )
2089
2074
}
2075
+
2076
+ fn resolve_resource_op ( op : & ResourceOp ) -> ResourceOperationKind {
2077
+ match op {
2078
+ ResourceOp :: Create ( _) => ResourceOperationKind :: Create ,
2079
+ ResourceOp :: Rename ( _) => ResourceOperationKind :: Rename ,
2080
+ ResourceOp :: Delete ( _) => ResourceOperationKind :: Delete ,
2081
+ }
2082
+ }
0 commit comments