| 886 | } |
| 887 | |
| 888 | async fn prepare_rename( |
| 889 | &self, |
| 890 | params: TextDocumentPositionParams, |
| 891 | ) -> Result<Option<PrepareRenameResponse>> { |
| 892 | let uri = params.text_document.uri.to_string(); |
| 893 | let position = params.position; |
| 894 | |
| 895 | let backend = self.clone_for_blocking(); |
| 896 | let uri_clone = uri.clone(); |
| 897 | tokio::task::spawn_blocking(move || { |
| 898 | backend.handle_with_position("prepare_rename", &uri_clone, position, |content, pos| { |
| 899 | backend |
| 900 | .handle_prepare_rename(&uri_clone, content, pos) |
| 901 | .map(|res| match res { |
| 902 | PrepareRenameResponse::Range(r) => PrepareRenameResponse::Range(Range { |
| 903 | start: backend.translate_php_to_blade(&uri_clone, r.start), |
| 904 | end: backend.translate_php_to_blade(&uri_clone, r.end), |
| 905 | }), |
| 906 | PrepareRenameResponse::RangeWithPlaceholder { range, placeholder } => { |
| 907 | PrepareRenameResponse::RangeWithPlaceholder { |
| 908 | range: Range { |
| 909 | start: backend.translate_php_to_blade(&uri_clone, range.start), |
| 910 | end: backend.translate_php_to_blade(&uri_clone, range.end), |
| 911 | }, |
| 912 | placeholder, |
| 913 | } |
| 914 | } |
| 915 | PrepareRenameResponse::DefaultBehavior { default_behavior } => { |
| 916 | PrepareRenameResponse::DefaultBehavior { default_behavior } |
| 917 | } |
| 918 | }) |
| 919 | }) |
| 920 | }) |
| 921 | .await |
| 922 | .unwrap_or(Ok(None)) |
| 923 | } |
| 924 | |
| 925 | async fn rename(&self, params: RenameParams) -> Result<Option<WorkspaceEdit>> { |
| 926 | let uri = params.text_document_position.text_document.uri.to_string(); |