@@ -68,6 +68,7 @@ impl LanguageServer for Backend {
6868 ) ) ,
6969 completion_provider : Some ( CompletionOptions {
7070 resolve_provider : Some ( false ) ,
71+ // TODO: maybe use double-colon (via filtering)?
7172 trigger_characters : Some ( vec ! [ ":" . to_string( ) ] ) ,
7273 work_done_progress_options : WorkDoneProgressOptions :: default ( ) ,
7374 all_commit_characters : None ,
@@ -223,6 +224,7 @@ impl Backend {
223224 if let Some ( mut doc) = self . document_map . get_mut ( uri) {
224225 doc. functions . push ( func. to_owned ( ) ) ;
225226
227+ // TODO: avoid cloning Rope and repeated Rope conversions
226228 let rope = doc. text . clone ( ) ;
227229 let start_line =
228230 u32:: try_from ( func. as_ref ( ) . start . line . get ( ) ) . unwrap_or_default ( ) - 1 ;
@@ -253,6 +255,7 @@ impl Backend {
253255
254256 match err {
255257 None => {
258+ // TODO: Is this really needed on the INFO level?
256259 self . client
257260 . log_message ( MessageType :: INFO , "errors not found!" . to_string ( ) )
258261 . await ;
@@ -264,6 +267,7 @@ impl Backend {
264267 let ( start, end) = match span_to_positions ( err. span ( ) ) {
265268 Ok ( result) => result,
266269 Err ( err) => {
270+ // TODO: Replace dbg! with structured logging to client.log_message
267271 dbg ! ( "catch error: {}" , err) ;
268272 return ;
269273 }
@@ -301,6 +305,7 @@ impl Backend {
301305 simplicityhl:: simplicity:: jet:: Elements :: from_str ( format ! ( "{jet}" ) . as_str ( ) )
302306 . ok ( ) ?;
303307
308+ // TODO: For consistency use `template.get_signature()` instead of reconstructing
304309 let template = completion:: jet:: jet_to_template ( element) ;
305310 let description = format ! (
306311 "```simplicityhl\n fn jet::{}({}) -> {}\n ```\n {}" ,
@@ -427,6 +432,13 @@ fn find_related_call(
427432 . iter ( )
428433 . find ( |func| span_contains ( func. span ( ) , & token_span) ) ?;
429434
435+ // Replace with?
436+ // parse::ExprTree::Expression(func.body())
437+ // .pre_order_iter()
438+ // .filter_map(|expr| if let parse::ExprTree::Call(call) = expr { Some(call) } else { None })
439+ // .filter(|c| span_contains(c.span(), &token_span))
440+ // .last()
441+
430442 let calls = parse:: ExprTree :: Expression ( func. body ( ) )
431443 . pre_order_iter ( )
432444 . filter_map ( |expr| match expr {
0 commit comments