@@ -549,7 +549,7 @@ pub(crate) fn handle_will_rename_files(
549549) -> anyhow:: Result < Option < lsp_types:: WorkspaceEdit > > {
550550 let _p = profile:: span ( "handle_will_rename_files" ) ;
551551
552- if let Err ( err) = resource_ops_supported ( & snap. config , & ResourceOperationKind :: Rename ) {
552+ if let Err ( err) = resource_ops_supported ( & snap. config , ResourceOperationKind :: Rename ) {
553553 return Err ( err) ;
554554 }
555555
@@ -1043,14 +1043,9 @@ pub(crate) fn handle_rename(
10431043 {
10441044 for op in ops {
10451045 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+ {
10541049 return Err ( err) ;
10551050 }
10561051 }
@@ -1168,14 +1163,9 @@ pub(crate) fn handle_code_action(
11681163 if let Some ( changes) = & code_action. edit . as_ref ( ) . unwrap ( ) . document_changes {
11691164 for change in changes {
11701165 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+ {
11791169 return Err ( err) ;
11801170 }
11811171 }
@@ -1269,14 +1259,9 @@ pub(crate) fn handle_code_action_resolve(
12691259 if let Some ( changes) = edit. document_changes . as_ref ( ) {
12701260 for change in changes {
12711261 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+ {
12801265 return Err ( err) ;
12811266 }
12821267 }
@@ -2056,7 +2041,7 @@ fn to_url(path: VfsPath) -> Option<Url> {
20562041 Url :: from_file_path ( str_path) . ok ( )
20572042}
20582043
2059- fn resource_ops_supported ( config : & Config , kind : & ResourceOperationKind ) -> anyhow:: Result < ( ) > {
2044+ fn resource_ops_supported ( config : & Config , kind : ResourceOperationKind ) -> anyhow:: Result < ( ) > {
20602045 let ctn = config
20612046 . caps ( )
20622047 . workspace
@@ -2068,7 +2053,7 @@ fn resource_ops_supported(config: &Config, kind: &ResourceOperationKind) -> anyh
20682053 . resource_operations
20692054 . as_ref ( )
20702055 . unwrap ( )
2071- . contains ( kind) ;
2056+ . contains ( & kind) ;
20722057
20732058 if !ctn {
20742059 return Err ( LspError :: new (
@@ -2087,3 +2072,11 @@ fn resource_ops_supported(config: &Config, kind: &ResourceOperationKind) -> anyh
20872072
20882073 Ok ( ( ) )
20892074}
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