aboutsummaryrefslogtreecommitdiff
path: root/crates
diff options
context:
space:
mode:
Diffstat (limited to 'crates')
-rw-r--r--crates/rust-analyzer/src/main_loop.rs32
1 files changed, 16 insertions, 16 deletions
diff --git a/crates/rust-analyzer/src/main_loop.rs b/crates/rust-analyzer/src/main_loop.rs
index f6d8daeed..ac95e428e 100644
--- a/crates/rust-analyzer/src/main_loop.rs
+++ b/crates/rust-analyzer/src/main_loop.rs
@@ -97,22 +97,6 @@ impl fmt::Debug for Event {
97} 97}
98 98
99impl GlobalState { 99impl GlobalState {
100 fn next_event(&self, inbox: &Receiver<lsp_server::Message>) -> Option<Event> {
101 select! {
102 recv(inbox) -> msg =>
103 msg.ok().map(Event::Lsp),
104
105 recv(self.task_pool.receiver) -> task =>
106 Some(Event::Task(task.unwrap())),
107
108 recv(self.loader.receiver) -> task =>
109 Some(Event::Vfs(task.unwrap())),
110
111 recv(self.flycheck_receiver) -> task =>
112 Some(Event::Flycheck(task.unwrap())),
113 }
114 }
115
116 fn run(mut self, inbox: Receiver<lsp_server::Message>) -> Result<()> { 100 fn run(mut self, inbox: Receiver<lsp_server::Message>) -> Result<()> {
117 if self.config.linked_projects.is_empty() && self.config.notifications.cargo_toml_not_found 101 if self.config.linked_projects.is_empty() && self.config.notifications.cargo_toml_not_found
118 { 102 {
@@ -169,6 +153,22 @@ impl GlobalState {
169 Err("client exited without proper shutdown sequence")? 153 Err("client exited without proper shutdown sequence")?
170 } 154 }
171 155
156 fn next_event(&self, inbox: &Receiver<lsp_server::Message>) -> Option<Event> {
157 select! {
158 recv(inbox) -> msg =>
159 msg.ok().map(Event::Lsp),
160
161 recv(self.task_pool.receiver) -> task =>
162 Some(Event::Task(task.unwrap())),
163
164 recv(self.loader.receiver) -> task =>
165 Some(Event::Vfs(task.unwrap())),
166
167 recv(self.flycheck_receiver) -> task =>
168 Some(Event::Flycheck(task.unwrap())),
169 }
170 }
171
172 fn handle_event(&mut self, event: Event) -> Result<()> { 172 fn handle_event(&mut self, event: Event) -> Result<()> {
173 let loop_start = Instant::now(); 173 let loop_start = Instant::now();
174 // NOTE: don't count blocking select! call as a loop-turn time 174 // NOTE: don't count blocking select! call as a loop-turn time