@@ -49,6 +49,7 @@ pub fn hover_function_type(
4949 function_member,
5050 func_name,
5151 is_local,
52+ false ,
5253 )
5354 . unwrap_or_else ( || {
5455 builder. signature_overload = None ;
@@ -103,6 +104,7 @@ fn hover_union_function_type(
103104 function_member,
104105 func_name,
105106 false ,
107+ true ,
106108 ) {
107109 overloads. push ( type_description) ;
108110 }
@@ -197,8 +199,12 @@ fn hover_signature_type(
197199 owner_member : Option < & LuaMember > ,
198200 func_name : & str ,
199201 is_local : bool ,
202+ is_form_union : bool ,
200203) -> Option < String > {
201204 let signature = db. get_signature_index ( ) . get ( & signature_id) ?;
205+ if is_form_union && signature. param_docs . is_empty ( ) {
206+ return None ;
207+ }
202208 let call_signature = builder. get_call_signature ( ) ;
203209
204210 let mut type_label = "function " ;
@@ -359,42 +365,43 @@ fn build_signature_rets(
359365 }
360366 } ;
361367 result. push_str ( rets. as_str ( ) ) ;
368+ return result;
369+ }
370+
371+ let rets = if !overload_rets_string. is_empty ( ) {
372+ overload_rets_string
362373 } else {
363- let rets = if !overload_rets_string. is_empty ( ) {
364- overload_rets_string
374+ let rets = & signature. return_docs ;
375+ if rets. is_empty ( ) {
376+ "" . to_string ( )
365377 } else {
366- let rets = & signature. return_docs ;
367- if rets. is_empty ( ) {
368- "" . to_string ( )
369- } else {
370- let mut rets_string_multiline = String :: new ( ) ;
371- rets_string_multiline. push_str ( "\n " ) ;
378+ let mut rets_string_multiline = String :: new ( ) ;
379+ rets_string_multiline. push_str ( "\n " ) ;
372380
373- for ( i, ret) in rets. iter ( ) . enumerate ( ) {
374- let type_text = build_signature_ret_type ( builder, ret, i) ;
375- let prefix = if i == 0 {
376- "-> " . to_string ( )
377- } else {
378- format ! ( "{}. " , i + 1 )
379- } ;
380- let name = ret. name . clone ( ) . unwrap_or_default ( ) ;
381+ for ( i, ret) in rets. iter ( ) . enumerate ( ) {
382+ let type_text = build_signature_ret_type ( builder, ret, i) ;
383+ let prefix = if i == 0 {
384+ "-> " . to_string ( )
385+ } else {
386+ format ! ( "{}. " , i + 1 )
387+ } ;
388+ let name = ret. name . clone ( ) . unwrap_or_default ( ) ;
381389
382- rets_string_multiline. push_str ( & format ! (
383- " {}{}{}\n " ,
384- prefix,
385- if !name. is_empty( ) {
386- format!( "{}: " , name)
387- } else {
388- "" . to_string( )
389- } ,
390- type_text,
391- ) ) ;
392- }
393- rets_string_multiline
390+ rets_string_multiline. push_str ( & format ! (
391+ " {}{}{}\n " ,
392+ prefix,
393+ if !name. is_empty( ) {
394+ format!( "{}: " , name)
395+ } else {
396+ "" . to_string( )
397+ } ,
398+ type_text,
399+ ) ) ;
394400 }
395- } ;
396- result . push_str ( rets . as_str ( ) ) ;
401+ rets_string_multiline
402+ }
397403 } ;
404+ result. push_str ( rets. as_str ( ) ) ;
398405 result
399406}
400407
0 commit comments