aboutsummaryrefslogtreecommitdiff
path: root/crates/server/src
diff options
context:
space:
mode:
Diffstat (limited to 'crates/server/src')
-rw-r--r--crates/server/src/main.rs45
1 files changed, 21 insertions, 24 deletions
diff --git a/crates/server/src/main.rs b/crates/server/src/main.rs
index fccfe9b3b..4b250acfa 100644
--- a/crates/server/src/main.rs
+++ b/crates/server/src/main.rs
@@ -72,33 +72,30 @@ fn main_inner() -> Result<()> {
72} 72}
73 73
74fn initialize(io: &mut Io) -> Result<()> { 74fn initialize(io: &mut Io) -> Result<()> {
75 loop { 75 match io.recv()? {
76 match io.recv()? { 76 RawMsg::Notification(n) =>
77 RawMsg::Notification(n) => 77 bail!("expected initialize request, got {:?}", n),
78 bail!("expected initialize request, got {:?}", n), 78 RawMsg::Response(res) =>
79 RawMsg::Response(res) => 79 bail!("expected initialize request, got {:?}", res),
80 bail!("expected initialize request, got {:?}", res),
81 80
82 RawMsg::Request(req) => { 81 RawMsg::Request(req) => {
83 let mut req = Some(req); 82 let mut req = Some(req);
84 dispatch::handle_request::<req::Initialize, _>(&mut req, |_params, resp| { 83 dispatch::handle_request::<req::Initialize, _>(&mut req, |_params, resp| {
85 let res = req::InitializeResult { capabilities: caps::SERVER_CAPABILITIES }; 84 let res = req::InitializeResult { capabilities: caps::SERVER_CAPABILITIES };
86 let resp = resp.into_response(Ok(res))?; 85 let resp = resp.into_response(Ok(res))?;
87 io.send(RawMsg::Response(resp)); 86 io.send(RawMsg::Response(resp));
88 Ok(()) 87 Ok(())
89 })?; 88 })?;
90 if let Some(req) = req { 89 if let Some(req) = req {
91 bail!("expected initialize request, got {:?}", req) 90 bail!("expected initialize request, got {:?}", req)
92 } 91 }
93 match io.recv()? { 92 match io.recv()? {
94 RawMsg::Notification(n) => { 93 RawMsg::Notification(n) => {
95 if n.method != "initialized" { 94 if n.method != "initialized" {
96 bail!("expected initialized notification"); 95 bail!("expected initialized notification");
97 }
98 } 96 }
99 _ => bail!("expected initialized notification"),
100 } 97 }
101 break; 98 _ => bail!("expected initialized notification"),
102 } 99 }
103 } 100 }
104 } 101 }