@@ -98,13 +98,17 @@ pub(crate) fn assist_kind(kind: lsp_types::CodeActionKind) -> Option<AssistKind>
9898pub ( crate ) fn annotation (
9999 snap : & GlobalStateSnapshot ,
100100 code_lens : lsp_types:: CodeLens ,
101- ) -> Result < Annotation > {
101+ ) -> Result < Option < Annotation > > {
102102 let data =
103103 code_lens. data . ok_or_else ( || invalid_params_error ( "code lens without data" . to_string ( ) ) ) ?;
104104 let resolve = from_json :: < lsp_ext:: CodeLensResolveData > ( "CodeLensResolveData" , & data) ?;
105105
106- match resolve {
107- lsp_ext:: CodeLensResolveData :: Impls ( params) => {
106+ match resolve. kind {
107+ lsp_ext:: CodeLensResolveDataKind :: Impls ( params) => {
108+ if matches ! ( snap. url_file_version( & params. text_document_position_params. text_document. uri) , Some ( version) if version == resolve. version)
109+ {
110+ return Ok ( None ) ;
111+ }
108112 let pos @ FilePosition { file_id, .. } =
109113 file_position ( snap, params. text_document_position_params ) ?;
110114 let line_index = snap. file_line_index ( file_id) ?;
@@ -114,7 +118,11 @@ pub(crate) fn annotation(
114118 kind : AnnotationKind :: HasImpls { pos, data : None } ,
115119 } )
116120 }
117- lsp_ext:: CodeLensResolveData :: References ( params) => {
121+ lsp_ext:: CodeLensResolveDataKind :: References ( params) => {
122+ if matches ! ( snap. url_file_version( & params. text_document. uri) , Some ( version) if version == resolve. version)
123+ {
124+ return Ok ( None ) ;
125+ }
118126 let pos @ FilePosition { file_id, .. } = file_position ( snap, params) ?;
119127 let line_index = snap. file_line_index ( file_id) ?;
120128
@@ -123,5 +131,5 @@ pub(crate) fn annotation(
123131 kind : AnnotationKind :: HasReferences { pos, data : None } ,
124132 } )
125133 }
126- }
134+ } . map ( Some )
127135}
0 commit comments