@@ -180,6 +180,12 @@ impl LanguageClient {
180180 ) ) ;
181181 }
182182
183+ let cld = self . get_config ( |c| c. code_lens_display . clone ( ) ) ?;
184+ cmds. push ( format ! (
185+ "sign define LanguageClientCodeLens text={} texthl={}" ,
186+ cld. sign_text, cld. sign_texthl
187+ ) ) ;
188+
183189 self . vim ( ) ?. command ( cmds) ?;
184190 Ok ( ( ) )
185191 }
@@ -2912,10 +2918,11 @@ impl LanguageClient {
29122918 #[ tracing:: instrument( level = "info" , skip( self ) ) ]
29132919 fn get_signs_to_display ( & self , filename : & str , viewport : & Viewport ) -> Result < Vec < Sign > > {
29142920 let max_signs = self . get_config ( |c| c. diagnostics_signs_max . unwrap_or ( std:: usize:: MAX ) ) ?;
2915- let signs: Vec < _ > = self . get_state ( |state| {
2921+ let mut signs = vec ! [ ] ;
2922+ let mut diagnostics: Vec < Sign > = self . get_state ( |state| {
29162923 let diagnostics = state. diagnostics . get ( filename) . cloned ( ) . unwrap_or_default ( ) ;
29172924 let mut diagnostics = diagnostics
2918- . iter ( )
2925+ . into_iter ( )
29192926 . filter ( |diag| viewport. overlaps ( diag. range ) )
29202927 . sorted_by_key ( |diag| {
29212928 (
@@ -2925,14 +2932,22 @@ impl LanguageClient {
29252932 } )
29262933 . collect_vec ( ) ;
29272934 diagnostics. dedup_by_key ( |diag| diag. range . start . line ) ;
2928- diagnostics
2929- . into_iter ( )
2930- . take ( max_signs)
2935+ diagnostics. iter ( ) . map ( Into :: into) . collect_vec ( )
2936+ } ) ?;
2937+
2938+ let mut code_lenses: Vec < Sign > = self . get_state ( |state| {
2939+ let ccll = state. code_lens . get ( filename) . cloned ( ) . unwrap_or_default ( ) ;
2940+ let ccll = ccll
2941+ . iter ( )
2942+ . filter ( |cl| viewport. overlaps ( cl. range ) )
29312943 . map ( Into :: into)
2932- . collect ( )
2944+ . collect_vec ( ) ;
2945+ ccll
29332946 } ) ?;
29342947
2935- Ok ( signs)
2948+ signs. append ( & mut diagnostics) ;
2949+ signs. append ( & mut code_lenses) ;
2950+ Ok ( signs. into_iter ( ) . take ( max_signs) . collect ( ) )
29362951 }
29372952
29382953 #[ tracing:: instrument( level = "info" , skip( self ) ) ]
0 commit comments