diff options
Diffstat (limited to 'cli/lsp/language_server.rs')
-rw-r--r-- | cli/lsp/language_server.rs | 110 |
1 files changed, 69 insertions, 41 deletions
diff --git a/cli/lsp/language_server.rs b/cli/lsp/language_server.rs index 5ee2ef776..1104acc9c 100644 --- a/cli/lsp/language_server.rs +++ b/cli/lsp/language_server.rs @@ -546,9 +546,9 @@ impl Inner { &self, specifier: &ModuleSpecifier, ) -> Result<Arc<tsc::NavigationTree>, AnyError> { - let mark = self.performance.mark( - "get_navigation_tree", - Some(json!({ "specifier": specifier })), + let mark = self.performance.mark_with_args( + "lsp.get_navigation_tree", + json!({ "specifier": specifier }), ); let asset_or_doc = self.get_asset_or_document(specifier)?; let navigation_tree = @@ -715,7 +715,7 @@ impl Inner { } pub async fn update_cache(&mut self) -> Result<(), AnyError> { - let mark = self.performance.mark("update_cache", None::<()>); + let mark = self.performance.mark("lsp.update_cache"); self.performance.measure(mark); let maybe_cache = &self.config.workspace_settings().cache; let maybe_global_cache_path = if let Some(cache_str) = maybe_cache { @@ -844,7 +844,7 @@ impl Inner { } pub async fn update_import_map(&mut self) -> Result<(), AnyError> { - let mark = self.performance.mark("update_import_map", None::<()>); + let mark = self.performance.mark("lsp.update_import_map"); let maybe_import_map_url = self.resolve_import_map_specifier()?; if let Some(import_map_url) = maybe_import_map_url { @@ -979,7 +979,7 @@ impl Inner { } async fn update_registries(&mut self) -> Result<(), AnyError> { - let mark = self.performance.mark("update_registries", None::<()>); + let mark = self.performance.mark("lsp.update_registries"); self.recreate_http_client_and_dependents().await?; let workspace_settings = self.config.workspace_settings(); for (registry, enabled) in workspace_settings.suggest.imports.hosts.iter() { @@ -1035,7 +1035,7 @@ impl Inner { } async fn update_tsconfig(&mut self) -> Result<(), AnyError> { - let mark = self.performance.mark("update_tsconfig", None::<()>); + let mark = self.performance.mark("lsp.update_tsconfig"); let mut tsconfig = TsConfig::new(json!({ "allowJs": true, "esModuleInterop": true, @@ -1129,7 +1129,7 @@ impl Inner { params: InitializeParams, ) -> LspResult<InitializeResult> { lsp_log!("Starting Deno language server..."); - let mark = self.performance.mark("initialize", Some(¶ms)); + let mark = self.performance.mark_with_args("lsp.initialize", ¶ms); // exit this process when the parent is lost if let Some(parent_pid) = params.process_id { @@ -1295,7 +1295,7 @@ impl Inner { specifier: &ModuleSpecifier, params: DidOpenTextDocumentParams, ) -> Document { - let mark = self.performance.mark("did_open", Some(¶ms)); + let mark = self.performance.mark_with_args("lsp.did_open", ¶ms); let language_id = params .text_document @@ -1324,7 +1324,7 @@ impl Inner { } async fn did_change(&mut self, params: DidChangeTextDocumentParams) { - let mark = self.performance.mark("did_change", Some(¶ms)); + let mark = self.performance.mark_with_args("lsp.did_change", ¶ms); let specifier = self .url_map .normalize_url(¶ms.text_document.uri, LspUrlKind::File); @@ -1367,7 +1367,7 @@ impl Inner { } async fn did_close(&mut self, params: DidCloseTextDocumentParams) { - let mark = self.performance.mark("did_close", Some(¶ms)); + let mark = self.performance.mark_with_args("lsp.did_close", ¶ms); self.diagnostics_state.clear(¶ms.text_document.uri); if params.text_document.uri.scheme() == "deno" { // we can ignore virtual text documents closing, as they don't need to @@ -1506,7 +1506,7 @@ impl Inner { let mark = self .performance - .mark("did_change_watched_files", Some(¶ms)); + .mark_with_args("lsp.did_change_watched_files", ¶ms); let mut touched = false; let changes: IndexSet<Url> = params .changes @@ -1660,7 +1660,9 @@ impl Inner { return Ok(None); } - let mark = self.performance.mark("document_symbol", Some(¶ms)); + let mark = self + .performance + .mark_with_args("lsp.document_symbol", ¶ms); let asset_or_document = self.get_asset_or_document(&specifier)?; let line_index = asset_or_document.line_index(); @@ -1714,7 +1716,7 @@ impl Inner { error!("{}", err); LspError::invalid_request() })?; - let mark = self.performance.mark("formatting", Some(¶ms)); + let mark = self.performance.mark_with_args("lsp.formatting", ¶ms); // spawn a blocking task to allow doing other work while this is occurring let text_edits = deno_core::unsync::spawn_blocking({ @@ -1780,7 +1782,7 @@ impl Inner { return Ok(None); } - let mark = self.performance.mark("hover", Some(¶ms)); + let mark = self.performance.mark_with_args("lsp.hover", ¶ms); let asset_or_doc = self.get_asset_or_document(&specifier)?; let hover = if let Some((_, dep, range)) = asset_or_doc .get_maybe_dependency(¶ms.text_document_position_params.position) @@ -1861,7 +1863,7 @@ impl Inner { return Ok(None); } - let mark = self.performance.mark("code_action", Some(¶ms)); + let mark = self.performance.mark_with_args("lsp.code_action", ¶ms); let mut all_actions = CodeActionResponse::new(); let asset_or_doc = self.get_asset_or_document(&specifier)?; let line_index = asset_or_doc.line_index(); @@ -2044,7 +2046,9 @@ impl Inner { return Ok(params); } - let mark = self.performance.mark("code_action_resolve", Some(¶ms)); + let mark = self + .performance + .mark_with_args("lsp.code_action_resolve", ¶ms); let kind = params.kind.clone().unwrap(); let data = params.data.clone().unwrap(); @@ -2151,7 +2155,7 @@ impl Inner { return Ok(None); } - let mark = self.performance.mark("code_lens", Some(¶ms)); + let mark = self.performance.mark_with_args("lsp.code_lens", ¶ms); let asset_or_doc = self.get_asset_or_document(&specifier)?; let settings = self.config.workspace_settings_for_specifier(&specifier); let mut code_lenses = Vec::new(); @@ -2208,7 +2212,9 @@ impl Inner { &self, code_lens: CodeLens, ) -> LspResult<CodeLens> { - let mark = self.performance.mark("code_lens_resolve", Some(&code_lens)); + let mark = self + .performance + .mark_with_args("lsp.code_lens_resolve", &code_lens); let result = if code_lens.data.is_some() { code_lens::resolve_code_lens(code_lens, self) .await @@ -2239,7 +2245,9 @@ impl Inner { return Ok(None); } - let mark = self.performance.mark("document_highlight", Some(¶ms)); + let mark = self + .performance + .mark_with_args("lsp.document_highlight", ¶ms); let asset_or_doc = self.get_asset_or_document(&specifier)?; let line_index = asset_or_doc.line_index(); let files_to_search = vec![specifier.clone()]; @@ -2280,7 +2288,7 @@ impl Inner { return Ok(None); } - let mark = self.performance.mark("references", Some(¶ms)); + let mark = self.performance.mark_with_args("lsp.references", ¶ms); let asset_or_doc = self.get_asset_or_document(&specifier)?; let line_index = asset_or_doc.line_index(); let maybe_referenced_symbols = self @@ -2336,7 +2344,9 @@ impl Inner { return Ok(None); } - let mark = self.performance.mark("goto_definition", Some(¶ms)); + let mark = self + .performance + .mark_with_args("lsp.goto_definition", ¶ms); let asset_or_doc = self.get_asset_or_document(&specifier)?; let line_index = asset_or_doc.line_index(); let maybe_definition = self @@ -2372,7 +2382,9 @@ impl Inner { return Ok(None); } - let mark = self.performance.mark("goto_definition", Some(¶ms)); + let mark = self + .performance + .mark_with_args("lsp.goto_definition", ¶ms); let asset_or_doc = self.get_asset_or_document(&specifier)?; let line_index = asset_or_doc.line_index(); let maybe_definition_info = self @@ -2418,7 +2430,7 @@ impl Inner { return Ok(None); } - let mark = self.performance.mark("completion", Some(¶ms)); + let mark = self.performance.mark_with_args("lsp.completion", ¶ms); let asset_or_doc = self.get_asset_or_document(&specifier)?; // Import specifiers are something wholly internal to Deno, so for // completions, we will use internal logic and if there are completions @@ -2498,7 +2510,9 @@ impl Inner { &self, params: CompletionItem, ) -> LspResult<CompletionItem> { - let mark = self.performance.mark("completion_resolve", Some(¶ms)); + let mark = self + .performance + .mark_with_args("lsp.completion_resolve", ¶ms); let completion_item = if let Some(data) = ¶ms.data { let data: completions::CompletionItemData = serde_json::from_value(data.clone()).map_err(|err| { @@ -2580,7 +2594,9 @@ impl Inner { return Ok(None); } - let mark = self.performance.mark("goto_implementation", Some(¶ms)); + let mark = self + .performance + .mark_with_args("lsp.goto_implementation", ¶ms); let asset_or_doc = self.get_asset_or_document(&specifier)?; let line_index = asset_or_doc.line_index(); @@ -2622,7 +2638,9 @@ impl Inner { return Ok(None); } - let mark = self.performance.mark("folding_range", Some(¶ms)); + let mark = self + .performance + .mark_with_args("lsp.folding_range", ¶ms); let asset_or_doc = self.get_asset_or_document(&specifier)?; let outlining_spans = self @@ -2663,7 +2681,9 @@ impl Inner { return Ok(None); } - let mark = self.performance.mark("incoming_calls", Some(¶ms)); + let mark = self + .performance + .mark_with_args("lsp.incoming_calls", ¶ms); let asset_or_doc = self.get_asset_or_document(&specifier)?; let line_index = asset_or_doc.line_index(); @@ -2706,7 +2726,9 @@ impl Inner { return Ok(None); } - let mark = self.performance.mark("outgoing_calls", Some(¶ms)); + let mark = self + .performance + .mark_with_args("lsp.outgoing_calls", ¶ms); let asset_or_doc = self.get_asset_or_document(&specifier)?; let line_index = asset_or_doc.line_index(); @@ -2753,7 +2775,7 @@ impl Inner { let mark = self .performance - .mark("prepare_call_hierarchy", Some(¶ms)); + .mark_with_args("lsp.prepare_call_hierarchy", ¶ms); let asset_or_doc = self.get_asset_or_document(&specifier)?; let line_index = asset_or_doc.line_index(); @@ -2814,7 +2836,7 @@ impl Inner { return Ok(None); } - let mark = self.performance.mark("rename", Some(¶ms)); + let mark = self.performance.mark_with_args("lsp.rename", ¶ms); let asset_or_doc = self.get_asset_or_document(&specifier)?; let line_index = asset_or_doc.line_index(); @@ -2857,7 +2879,9 @@ impl Inner { return Ok(None); } - let mark = self.performance.mark("selection_range", Some(¶ms)); + let mark = self + .performance + .mark_with_args("lsp.selection_range", ¶ms); let asset_or_doc = self.get_asset_or_document(&specifier)?; let line_index = asset_or_doc.line_index(); @@ -2890,7 +2914,9 @@ impl Inner { return Ok(None); } - let mark = self.performance.mark("semantic_tokens_full", Some(¶ms)); + let mark = self + .performance + .mark_with_args("lsp.semantic_tokens_full", ¶ms); let asset_or_doc = self.get_asset_or_document(&specifier)?; let line_index = asset_or_doc.line_index(); @@ -2927,7 +2953,7 @@ impl Inner { let mark = self .performance - .mark("semantic_tokens_range", Some(¶ms)); + .mark_with_args("lsp.semantic_tokens_range", ¶ms); let asset_or_doc = self.get_asset_or_document(&specifier)?; let line_index = asset_or_doc.line_index(); @@ -2966,7 +2992,9 @@ impl Inner { return Ok(None); } - let mark = self.performance.mark("signature_help", Some(¶ms)); + let mark = self + .performance + .mark_with_args("lsp.signature_help", ¶ms); let asset_or_doc = self.get_asset_or_document(&specifier)?; let line_index = asset_or_doc.line_index(); let options = if let Some(context) = params.context { @@ -3047,7 +3075,7 @@ impl Inner { &self, params: WorkspaceSymbolParams, ) -> LspResult<Option<Vec<SymbolInformation>>> { - let mark = self.performance.mark("symbol", Some(¶ms)); + let mark = self.performance.mark_with_args("lsp.symbol", ¶ms); let navigate_to_items = self .ts_server @@ -3322,7 +3350,7 @@ impl tower_lsp::LanguageServer for LanguageServer { let inner = self.0.read().await; inner .performance - .mark("did_change_configuration", Some(¶ms)) + .mark_with_args("lsp.did_change_configuration", ¶ms) }; self.refresh_configuration().await; @@ -3347,7 +3375,7 @@ impl tower_lsp::LanguageServer for LanguageServer { let mut ls = self.0.write().await; let mark = ls .performance - .mark("did_change_workspace_folders", Some(¶ms)); + .mark_with_args("lsp.did_change_workspace_folders", ¶ms); ls.did_change_workspace_folders(params); (ls.performance.clone(), mark) }; @@ -3559,7 +3587,7 @@ impl Inner { return Ok(None); } - let mark = self.performance.mark("cache", Some(¶ms)); + let mark = self.performance.mark_with_args("lsp.cache", ¶ms); let roots = if !params.uris.is_empty() { params .uris @@ -3665,7 +3693,7 @@ impl Inner { return Ok(None); } - let mark = self.performance.mark("inlay_hint", Some(¶ms)); + let mark = self.performance.mark_with_args("lsp.inlay_hint", ¶ms); let asset_or_doc = self.get_asset_or_document(&specifier)?; let line_index = asset_or_doc.line_index(); let text_span = @@ -3718,7 +3746,7 @@ impl Inner { ) -> LspResult<Option<String>> { let mark = self .performance - .mark("virtual_text_document", Some(¶ms)); + .mark_with_args("lsp.virtual_text_document", ¶ms); let specifier = self .url_map .normalize_url(¶ms.text_document.uri, LspUrlKind::File); |