File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -211,6 +211,9 @@ impl LanguageServer for Backend {
211211 else {
212212 return Ok ( None ) ;
213213 } ;
214+ let Ok ( ( start, end) ) = span_to_positions ( call. span ( ) ) else {
215+ return Ok ( None ) ;
216+ } ;
214217
215218 match call. name ( ) {
216219 parse:: CallName :: Jet ( jet) => {
@@ -219,15 +222,21 @@ impl LanguageServer for Backend {
219222 ) else {
220223 return Ok ( None ) ;
221224 } ;
222- let Ok ( ( start, end) ) = span_to_positions ( call. span ( ) ) else {
223- return Ok ( None ) ;
224- } ;
225+
226+ let template = completion:: jet:: jet_to_template ( element) ;
227+ let description = format ! (
228+ "```simplicityhl\n fn jet::{}({}) -> {}\n ```\n {}" ,
229+ template. display_name,
230+ template. args. join( ", " ) ,
231+ template. return_type,
232+ completion:: jet:: documentation( element)
233+ ) ;
225234
226235 return Ok ( Some ( Hover {
227236 contents : tower_lsp_server:: lsp_types:: HoverContents :: Markup (
228237 MarkupContent {
229238 kind : MarkupKind :: Markdown ,
230- value : completion :: jet :: documentation ( element ) . to_string ( ) ,
239+ value : description ,
231240 } ,
232241 ) ,
233242 range : Some ( Range { start, end } ) ,
Original file line number Diff line number Diff line change @@ -5,21 +5,19 @@ use simplicityhl::simplicity::jet::Elements;
55
66/// Convert all jets to `FunctionCompletionTemplate`.
77pub fn get_jets_completions ( ) -> Vec < types:: FunctionTemplate > {
8- Elements :: ALL
9- . iter ( )
10- . copied ( )
11- . map ( |jet| {
12- types:: FunctionTemplate :: simple (
13- jet. to_string ( ) ,
14- jet:: source_type ( jet)
15- . iter ( )
16- . map ( |item| format ! ( "{item}" ) )
17- . collect :: < Vec < String > > ( ) ,
18- jet:: target_type ( jet) . to_string ( ) . as_str ( ) ,
19- documentation ( jet) ,
20- )
21- } )
22- . collect ( )
8+ Elements :: ALL . iter ( ) . copied ( ) . map ( jet_to_template) . collect ( )
9+ }
10+
11+ pub fn jet_to_template ( jet : Elements ) -> types:: FunctionTemplate {
12+ types:: FunctionTemplate :: simple (
13+ jet. to_string ( ) ,
14+ jet:: source_type ( jet)
15+ . iter ( )
16+ . map ( |item| format ! ( "{item}" ) )
17+ . collect :: < Vec < String > > ( ) ,
18+ jet:: target_type ( jet) . to_string ( ) . as_str ( ) ,
19+ documentation ( jet) ,
20+ )
2321}
2422
2523// copied from https://github.com/BlockstreamResearch/SimplicityHL/blob/master/codegen/src/jet.rs
You can’t perform that action at this time.
0 commit comments