diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2022-01-17 17:09:43 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-17 17:09:43 -0500 |
commit | 1ab5dea367800defa264b633705f8b535bb167d9 (patch) | |
tree | 02a11d914b2efa629216142d910fdcdf65e35c40 /cli/lsp/language_server.rs | |
parent | 3595f37b075b4f1f78081e240f29dfb3060e9225 (diff) |
refactor(lsp): remove `performance` from `StateSnapshot` (#13403)
Diffstat (limited to 'cli/lsp/language_server.rs')
-rw-r--r-- | cli/lsp/language_server.rs | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs index 24fbb2021..5b04b8a25 100644 --- a/cli/lsp/language_server.rs +++ b/cli/lsp/language_server.rs @@ -37,6 +37,7 @@ use super::config::ConfigSnapshot; use super::config::SETTINGS_SECTION; use super::diagnostics; use super::diagnostics::DiagnosticSource; +use super::diagnostics::DiagnosticsServer; use super::documents::to_hover_text; use super::documents::to_lsp_range; use super::documents::AssetOrDocument; @@ -80,7 +81,6 @@ pub(crate) struct StateSnapshot { pub maybe_lint_config: Option<LintConfig>, pub maybe_fmt_config: Option<FmtConfig>, pub module_registries: registries::ModuleRegistry, - pub performance: Performance, pub url_map: urls::LspUrlMap, } @@ -118,7 +118,7 @@ pub(crate) struct Inner { /// The URL for the import map which is used to determine relative imports. maybe_import_map_uri: Option<Url>, /// A collection of measurements which instrument that performance of the LSP. - performance: Performance, + performance: Arc<Performance>, /// A memoized version of fixable diagnostic codes retrieved from TypeScript. ts_fixable_diagnostics: Vec<String>, /// An abstraction that handles interactions with TypeScript. @@ -143,14 +143,20 @@ impl Inner { registries::ModuleRegistry::new(&module_registries_location); let location = dir.root.join(CACHE_PATH); let documents = Documents::new(&location); - let ts_server = Arc::new(TsServer::new()); + let performance = Arc::new(Performance::default()); + let ts_server = Arc::new(TsServer::new(performance.clone())); let config = Config::new(client.clone()); + let diagnostics_server = DiagnosticsServer::new( + client.clone(), + performance.clone(), + ts_server.clone(), + ); Self { assets: Default::default(), client, config, - diagnostics_server: Default::default(), + diagnostics_server, documents, maybe_cache_path: None, maybe_lint_config: None, @@ -161,7 +167,7 @@ impl Inner { maybe_import_map_uri: None, module_registries, module_registries_location, - performance: Default::default(), + performance, ts_fixable_diagnostics: Default::default(), ts_server, url_map: Default::default(), @@ -370,7 +376,6 @@ impl Inner { maybe_lint_config: self.maybe_lint_config.clone(), maybe_fmt_config: self.maybe_fmt_config.clone(), module_registries: self.module_registries.clone(), - performance: self.performance.clone(), url_map: self.url_map.clone(), })) } @@ -2360,11 +2365,7 @@ impl lspower::LanguageServer for LanguageServer { params: InitializeParams, ) -> LspResult<InitializeResult> { let mut language_server = self.0.lock().await; - let client = language_server.client.clone(); - let ts_server = language_server.ts_server.clone(); - language_server - .diagnostics_server - .start(self.0.clone(), client, ts_server); + language_server.diagnostics_server.start(self.0.clone()); language_server.initialize(params).await } |