11//! `ra_lsp_server` binary
22
33use lsp_server:: Connection ;
4- use ra_lsp_server:: { show_message, Result , ServerConfig } ;
4+ use ra_lsp_server:: { from_json , show_message, Result , ServerConfig } ;
55use ra_prof;
66
77fn main ( ) -> Result < ( ) > {
@@ -45,7 +45,8 @@ fn run_server() -> Result<()> {
4545 let server_capabilities = serde_json:: to_value ( ra_lsp_server:: server_capabilities ( ) ) . unwrap ( ) ;
4646
4747 let initialize_params = connection. initialize ( server_capabilities) ?;
48- let initialize_params: lsp_types:: InitializeParams = serde_json:: from_value ( initialize_params) ?;
48+ let initialize_params =
49+ from_json :: < lsp_types:: InitializeParams > ( "InitializeParams" , initialize_params) ?;
4950
5051 if let Some ( client_info) = initialize_params. client_info {
5152 log:: info!( "Client '{}' {}" , client_info. name, client_info. version. unwrap_or_default( ) ) ;
@@ -62,17 +63,13 @@ fn run_server() -> Result<()> {
6263 . filter ( |workspaces| !workspaces. is_empty ( ) )
6364 . unwrap_or_else ( || vec ! [ root] ) ;
6465
65- let server_config: ServerConfig = initialize_params
66+ let server_config = initialize_params
6667 . initialization_options
6768 . and_then ( |v| {
68- serde_json :: from_value ( v)
69+ from_json :: < ServerConfig > ( "config" , v)
6970 . map_err ( |e| {
70- log:: error!( "failed to deserialize config: {}" , e) ;
71- show_message (
72- lsp_types:: MessageType :: Error ,
73- format ! ( "failed to deserialize config: {}" , e) ,
74- & connection. sender ,
75- ) ;
71+ log:: error!( "{}" , e) ;
72+ show_message ( lsp_types:: MessageType :: Error , e. to_string ( ) , & connection. sender ) ;
7673 } )
7774 . ok ( )
7875 } )
0 commit comments