Skip to content

Commit 2714e34

Browse files
authored
[ty] Enable pull-diagnostics by default in E2E tests (#24516)
1 parent d8bc700 commit 2714e34

16 files changed

Lines changed: 19 additions & 88 deletions

crates/ty_server/src/server/api/diagnostics.rs

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -173,18 +173,6 @@ impl LspDiagnostics {
173173
}
174174
}
175175

176-
pub(super) fn clear_diagnostics_if_needed(
177-
document: &DocumentHandle,
178-
session: &Session,
179-
client: &Client,
180-
) {
181-
if session.client_capabilities().supports_pull_diagnostics() && !document.is_cell_or_notebook()
182-
{
183-
return;
184-
}
185-
session.clear_diagnostics(client, document.url());
186-
}
187-
188176
/// Publishes the diagnostics for the given document snapshot using the [publish diagnostics
189177
/// notification] .
190178
///

crates/ty_server/src/server/api/notifications/did_close.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ use lsp_types::{DidCloseTextDocumentParams, TextDocumentIdentifier};
44

55
use crate::server::Result;
66
use crate::server::api::LSPResult;
7-
use crate::server::api::diagnostics::clear_diagnostics_if_needed;
87
use crate::server::api::traits::{NotificationHandler, SyncNotificationHandler};
98
use crate::session::Session;
109
use crate::session::client::Client;
@@ -34,7 +33,7 @@ impl SyncNotificationHandler for DidCloseTextDocumentHandler {
3433
.with_failure_code(ErrorCode::InternalError)?;
3534

3635
if should_clear_diagnostics {
37-
clear_diagnostics_if_needed(&document, session, client);
36+
session.clear_diagnostics_if_needed(&document, client);
3837
}
3938

4039
Ok(())

crates/ty_server/src/session.rs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -845,14 +845,22 @@ impl Session {
845845
})
846846
.collect();
847847
for doc in documents_to_clear {
848-
self.clear_diagnostics(client, doc.url());
848+
self.clear_diagnostics_if_needed(&doc, client);
849849
}
850850

851851
self.bump_revision();
852852

853853
Ok(())
854854
}
855855

856+
pub(crate) fn clear_diagnostics_if_needed(&self, document: &DocumentHandle, client: &Client) {
857+
if self.client_capabilities().supports_pull_diagnostics() && !document.is_cell_or_notebook()
858+
{
859+
return;
860+
}
861+
self.clear_diagnostics(client, document.url());
862+
}
863+
856864
/// Clears the diagnostics for the document identified by `uri`.
857865
///
858866
/// This is done by notifying the client with an empty list of diagnostics for the document.

crates/ty_server/tests/e2e/code_actions.rs

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ unused-ignore-comment = \"warn\"
6161
.with_workspace(workspace_root, None)?
6262
.with_file(ty_toml, ty_toml_content)?
6363
.with_file(foo, foo_content)?
64-
.enable_pull_diagnostics(true)
6564
.build()
6665
.wait_until_workspaces_are_initialized();
6766

@@ -99,7 +98,6 @@ unused-ignore-comment = \"warn\"
9998
.with_workspace(workspace_root, None)?
10099
.with_file(ty_toml, ty_toml_content)?
101100
.with_file(foo, foo_content)?
102-
.enable_pull_diagnostics(true)
103101
.build()
104102
.wait_until_workspaces_are_initialized();
105103

@@ -138,7 +136,6 @@ x: Literal[1] = 1
138136
.with_workspace(workspace_root, None)?
139137
.with_file(ty_toml, ty_toml_content)?
140138
.with_file(foo, foo_content)?
141-
.enable_pull_diagnostics(true)
142139
.build()
143140
.wait_until_workspaces_are_initialized();
144141

@@ -175,7 +172,6 @@ def my_func(): ...
175172
.with_workspace(workspace_root, None)?
176173
.with_file(ty_toml, ty_toml_content)?
177174
.with_file(foo, foo_content)?
178-
.enable_pull_diagnostics(true)
179175
.build()
180176
.wait_until_workspaces_are_initialized();
181177

@@ -214,7 +210,6 @@ def my_func(): ...
214210
.with_workspace(workspace_root, None)?
215211
.with_file(ty_toml, ty_toml_content)?
216212
.with_file(foo, foo_content)?
217-
.enable_pull_diagnostics(true)
218213
.build()
219214
.wait_until_workspaces_are_initialized();
220215

@@ -250,7 +245,6 @@ x: typing.Literal[1] = 1
250245
.with_workspace(workspace_root, None)?
251246
.with_file(ty_toml, ty_toml_content)?
252247
.with_file(foo, foo_content)?
253-
.enable_pull_diagnostics(true)
254248
.build()
255249
.wait_until_workspaces_are_initialized();
256250

@@ -287,7 +281,6 @@ html.parser
287281
.with_workspace(workspace_root, None)?
288282
.with_file(ty_toml, ty_toml_content)?
289283
.with_file(foo, foo_content)?
290-
.enable_pull_diagnostics(true)
291284
.build()
292285
.wait_until_workspaces_are_initialized();
293286

crates/ty_server/tests/e2e/completions.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use anyhow::Result;
2-
use lsp_types::{Position, notification::PublishDiagnostics};
2+
use lsp_types::Position;
33
use ruff_db::system::SystemPath;
44
use ty_server::ClientOptions;
55

@@ -22,7 +22,6 @@ walktr
2222
.wait_until_workspaces_are_initialized();
2323

2424
server.open_text_document(foo, foo_content, 1);
25-
let _ = server.await_notification::<PublishDiagnostics>();
2625

2726
let completions = server.completion_request(&server.file_uri(foo), Position::new(0, 6));
2827

@@ -72,7 +71,6 @@ walktr
7271
.wait_until_workspaces_are_initialized();
7372

7473
server.open_text_document(foo, foo_content, 1);
75-
let _ = server.await_notification::<PublishDiagnostics>();
7674

7775
let completions = server.completion_request(&server.file_uri(foo), Position::new(0, 6));
7876

@@ -103,7 +101,6 @@ TypedDi<CURSOR>
103101
.wait_until_workspaces_are_initialized();
104102

105103
server.open_text_document(foo, foo_content, 1);
106-
let _ = server.await_notification::<PublishDiagnostics>();
107104

108105
let completions = server.completion_request(&server.file_uri(foo), Position::new(2, 7));
109106

@@ -188,7 +185,6 @@ TypedDi<CURSOR>
188185
.wait_until_workspaces_are_initialized();
189186

190187
server.open_text_document(foo, foo_content, 1);
191-
let _ = server.await_notification::<PublishDiagnostics>();
192188

193189
let completions = server.completion_request(&server.file_uri(foo), Position::new(0, 7));
194190

@@ -303,7 +299,6 @@ re.match('', '', fla<CURSOR>
303299
.wait_until_workspaces_are_initialized();
304300

305301
server.open_text_document(foo, foo_content, 1);
306-
let _ = server.await_notification::<PublishDiagnostics>();
307302

308303
let completions = server.completion_request(&server.file_uri(foo), Position::new(1, 20));
309304

crates/ty_server/tests/e2e/configuration.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ def foo() -> str:
4141
unresolved-reference="warn"
4242
"#,
4343
)?
44-
.enable_pull_diagnostics(true)
4544
.build()
4645
.wait_until_workspaces_are_initialized();
4746

@@ -87,7 +86,6 @@ def foo() -> str:
8786
unresolved-reference="warn"
8887
"#,
8988
)?
90-
.enable_pull_diagnostics(true)
9189
.build()
9290
.wait_until_workspaces_are_initialized();
9391

@@ -135,7 +133,6 @@ def foo() -> str:
135133
}),
136134
)?
137135
.with_file(foo, foo_content)?
138-
.enable_pull_diagnostics(true)
139136
.build()
140137
.wait_until_workspaces_are_initialized();
141138

@@ -188,7 +185,6 @@ def foo() -> str:
188185
unresolved-reference="warn"
189186
"#,
190187
)?
191-
.enable_pull_diagnostics(true)
192188
.build()
193189
.wait_until_workspaces_are_initialized();
194190

crates/ty_server/tests/e2e/folding_range.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ fn folding_range_basic_functionality() -> Result<()> {
1717
"#;
1818

1919
let mut server = TestServerBuilder::new()?
20-
.enable_pull_diagnostics(true)
2120
.with_workspace(workspace_root, None)?
2221
.with_file(foo, foo_content)?
2322
.build()

crates/ty_server/tests/e2e/initialize.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,6 @@ def foo() -> str:
290290
let mut server = TestServerBuilder::new()?
291291
.with_initialization_options(ClientOptions::default().with_disable_language_services(true))
292292
.with_workspace(workspace_root, None)?
293-
.enable_pull_diagnostics(true)
294293
.with_file(foo, foo_content)?
295294
.build()
296295
.wait_until_workspaces_are_initialized();
@@ -322,7 +321,6 @@ def foo() -> str:
322321
workspace_root,
323322
Some(ClientOptions::default().with_disable_language_services(true)),
324323
)?
325-
.enable_pull_diagnostics(true)
326324
.with_file(foo, foo_content)?
327325
.build()
328326
.wait_until_workspaces_are_initialized();
@@ -362,7 +360,6 @@ def bar() -> str:
362360
Some(ClientOptions::default().with_disable_language_services(true)),
363361
)?
364362
.with_workspace(workspace_b, None)?
365-
.enable_pull_diagnostics(true)
366363
.with_file(foo, foo_content)?
367364
.with_file(bar, bar_content)?
368365
.build()

crates/ty_server/tests/e2e/inlay_hints.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use anyhow::Result;
2-
use lsp_types::notification::{DidOpenTextDocument, PublishDiagnostics};
2+
use lsp_types::notification::DidOpenTextDocument;
33
use lsp_types::request::InlayHintRequest;
44
use lsp_types::{
55
DidOpenTextDocumentParams, InlayHintParams, Position, Range, TextDocumentIdentifier,
@@ -34,7 +34,6 @@ y = foo(1)
3434
.wait_until_workspaces_are_initialized();
3535

3636
server.open_text_document(foo, foo_content, 1);
37-
let _ = server.await_notification::<PublishDiagnostics>();
3837

3938
let hints = server
4039
.inlay_hints_request(foo, Range::new(Position::new(0, 0), Position::new(6, 0)))
@@ -138,7 +137,6 @@ fn variable_inlay_hints_disabled() -> Result<()> {
138137
.wait_until_workspaces_are_initialized();
139138

140139
server.open_text_document(foo, foo_content, 1);
141-
let _ = server.await_notification::<PublishDiagnostics>();
142140

143141
let hints = server
144142
.inlay_hints_request(foo, Range::new(Position::new(0, 0), Position::new(0, 5)))
@@ -180,8 +178,6 @@ fn variable_inlay_hints_disabled_for_virtual_file() -> Result<()> {
180178
},
181179
});
182180

183-
let _ = server.await_notification::<PublishDiagnostics>();
184-
185181
let hints = server
186182
.send_request_await::<InlayHintRequest>(InlayHintParams {
187183
text_document: TextDocumentIdentifier { uri: virtual_uri },
@@ -227,7 +223,6 @@ def get_a() -> A:
227223
.wait_until_workspaces_are_initialized();
228224

229225
server.open_text_document(foo, foo_content, 1);
230-
let _ = server.await_notification::<PublishDiagnostics>();
231226

232227
let hints = server
233228
.inlay_hints_request(foo, Range::new(Position::new(0, 0), Position::new(6, 0)))

crates/ty_server/tests/e2e/main.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1181,10 +1181,12 @@ impl TestServerBuilder {
11811181
// These are enabled by default for convenience but can be disabled using the builder
11821182
// methods:
11831183
// - Supports pulling workspace configuration
1184+
// - Support for pull diagnostics
11841185
let client_capabilities = ClientCapabilities {
11851186
text_document: Some(TextDocumentClientCapabilities {
11861187
publish_diagnostics: Some(PublishDiagnosticsClientCapabilities::default()),
1187-
..Default::default()
1188+
diagnostic: Some(DiagnosticClientCapabilities::default()),
1189+
..TextDocumentClientCapabilities::default()
11881190
}),
11891191
workspace: Some(WorkspaceClientCapabilities {
11901192
configuration: Some(true),

0 commit comments

Comments
 (0)