@@ -12,27 +12,33 @@ use crate::Message;
1212/// Creates an LSP connection via stdio.
1313pub ( crate ) fn stdio_transport ( ) -> ( Sender < Message > , Receiver < Message > , IoThreads ) {
1414 let ( writer_sender, writer_receiver) = bounded :: < Message > ( 0 ) ;
15- let writer = thread:: spawn ( move || {
16- let stdout = stdout ( ) ;
17- let mut stdout = stdout. lock ( ) ;
18- writer_receiver. into_iter ( ) . try_for_each ( |it| it. write ( & mut stdout) )
19- } ) ;
15+ let writer = thread:: Builder :: new ( )
16+ . name ( "LspServerWriter" . to_owned ( ) )
17+ . spawn ( move || {
18+ let stdout = stdout ( ) ;
19+ let mut stdout = stdout. lock ( ) ;
20+ writer_receiver. into_iter ( ) . try_for_each ( |it| it. write ( & mut stdout) )
21+ } )
22+ . unwrap ( ) ;
2023 let ( reader_sender, reader_receiver) = bounded :: < Message > ( 0 ) ;
21- let reader = thread:: spawn ( move || {
22- let stdin = stdin ( ) ;
23- let mut stdin = stdin. lock ( ) ;
24- while let Some ( msg) = Message :: read ( & mut stdin) ? {
25- let is_exit = matches ! ( & msg, Message :: Notification ( n) if n. is_exit( ) ) ;
24+ let reader = thread:: Builder :: new ( )
25+ . name ( "LspServerReader" . to_owned ( ) )
26+ . spawn ( move || {
27+ let stdin = stdin ( ) ;
28+ let mut stdin = stdin. lock ( ) ;
29+ while let Some ( msg) = Message :: read ( & mut stdin) ? {
30+ let is_exit = matches ! ( & msg, Message :: Notification ( n) if n. is_exit( ) ) ;
2631
27- debug ! ( "sending message {:#?}" , msg) ;
28- reader_sender. send ( msg) . expect ( "receiver was dropped, failed to send a message" ) ;
32+ debug ! ( "sending message {:#?}" , msg) ;
33+ reader_sender. send ( msg) . expect ( "receiver was dropped, failed to send a message" ) ;
2934
30- if is_exit {
31- break ;
35+ if is_exit {
36+ break ;
37+ }
3238 }
33- }
34- Ok ( ( ) )
35- } ) ;
39+ Ok ( ( ) )
40+ } )
41+ . unwrap ( ) ;
3642 let threads = IoThreads { reader, writer } ;
3743 ( writer_sender, reader_receiver, threads)
3844}
0 commit comments