Skip to content

Commit d3d311d

Browse files
committed
Handle exit notification properly
1 parent 9f426b1 commit d3d311d

File tree

1 file changed

+15
-12
lines changed

1 file changed

+15
-12
lines changed

src/editor/server.rs

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -34,26 +34,30 @@ impl TechniqueLanguageServer {
3434
mut self,
3535
connection: Connection,
3636
) -> Result<(), Box<dyn std::error::Error + Sync + Send>> {
37-
info!("Starting Technique Language Server main loop");
37+
info!("Starting Language Server main loop");
3838

39-
for msg in &connection.receiver {
40-
match msg {
41-
Message::Request(req) => {
42-
if let Err(err) = self.handle_request(req, &|msg| {
39+
for message in &connection.receiver {
40+
match message {
41+
Message::Request(request) => {
42+
if let Err(err) = self.handle_request(request, &|msg| {
4343
connection
4444
.sender
4545
.send(msg)
4646
}) {
4747
error!("Error handling request: {}", err);
4848
}
4949
}
50-
Message::Notification(not) => {
51-
if let Err(err) = self.handle_notification(not, &|msg| {
50+
Message::Notification(notification) => {
51+
if notification.method == "exit" {
52+
break;
53+
}
54+
55+
if let Err(error) = self.handle_notification(notification, &|message| {
5256
connection
5357
.sender
54-
.send(msg)
58+
.send(message)
5559
}) {
56-
error!("Error handling notification: {}", err);
60+
error!("Error handling notification: {}", error);
5761
}
5862
}
5963
Message::Response(_resp) => {
@@ -102,10 +106,9 @@ impl TechniqueLanguageServer {
102106
}
103107
}
104108
"shutdown" => {
105-
info!("Technique Language Server shutting down");
109+
info!("Language Server received shutdown request");
106110
let response = Response::new_ok(req.id, Value::Null);
107111
sender(Message::Response(response))?;
108-
return Ok(());
109112
}
110113
_ => {
111114
warn!("Unhandled request method: {}", req.method);
@@ -163,7 +166,7 @@ impl TechniqueLanguageServer {
163166
&self,
164167
_params: InitializeParams,
165168
) -> Result<InitializeResult, Box<dyn std::error::Error + Sync + Send>> {
166-
info!("Technique Language Server initializing");
169+
info!("Language Server initializing");
167170

168171
Ok(InitializeResult {
169172
server_info: None,

0 commit comments

Comments
 (0)