summaryrefslogtreecommitdiff
path: root/cli/lsp/language_server.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/lsp/language_server.rs')
-rw-r--r--cli/lsp/language_server.rs110
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(&params));
+ let mark = self.performance.mark_with_args("lsp.initialize", &params);
// 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(&params));
+ let mark = self.performance.mark_with_args("lsp.did_open", &params);
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(&params));
+ let mark = self.performance.mark_with_args("lsp.did_change", &params);
let specifier = self
.url_map
.normalize_url(&params.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(&params));
+ let mark = self.performance.mark_with_args("lsp.did_close", &params);
self.diagnostics_state.clear(&params.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(&params));
+ .mark_with_args("lsp.did_change_watched_files", &params);
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(&params));
+ let mark = self
+ .performance
+ .mark_with_args("lsp.document_symbol", &params);
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(&params));
+ let mark = self.performance.mark_with_args("lsp.formatting", &params);
// 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(&params));
+ let mark = self.performance.mark_with_args("lsp.hover", &params);
let asset_or_doc = self.get_asset_or_document(&specifier)?;
let hover = if let Some((_, dep, range)) = asset_or_doc
.get_maybe_dependency(&params.text_document_position_params.position)
@@ -1861,7 +1863,7 @@ impl Inner {
return Ok(None);
}
- let mark = self.performance.mark("code_action", Some(&params));
+ let mark = self.performance.mark_with_args("lsp.code_action", &params);
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(&params));
+ let mark = self
+ .performance
+ .mark_with_args("lsp.code_action_resolve", &params);
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(&params));
+ let mark = self.performance.mark_with_args("lsp.code_lens", &params);
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(&params));
+ let mark = self
+ .performance
+ .mark_with_args("lsp.document_highlight", &params);
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(&params));
+ let mark = self.performance.mark_with_args("lsp.references", &params);
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(&params));
+ let mark = self
+ .performance
+ .mark_with_args("lsp.goto_definition", &params);
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(&params));
+ let mark = self
+ .performance
+ .mark_with_args("lsp.goto_definition", &params);
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(&params));
+ let mark = self.performance.mark_with_args("lsp.completion", &params);
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(&params));
+ let mark = self
+ .performance
+ .mark_with_args("lsp.completion_resolve", &params);
let completion_item = if let Some(data) = &params.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(&params));
+ let mark = self
+ .performance
+ .mark_with_args("lsp.goto_implementation", &params);
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(&params));
+ let mark = self
+ .performance
+ .mark_with_args("lsp.folding_range", &params);
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(&params));
+ let mark = self
+ .performance
+ .mark_with_args("lsp.incoming_calls", &params);
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(&params));
+ let mark = self
+ .performance
+ .mark_with_args("lsp.outgoing_calls", &params);
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(&params));
+ .mark_with_args("lsp.prepare_call_hierarchy", &params);
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(&params));
+ let mark = self.performance.mark_with_args("lsp.rename", &params);
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(&params));
+ let mark = self
+ .performance
+ .mark_with_args("lsp.selection_range", &params);
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(&params));
+ let mark = self
+ .performance
+ .mark_with_args("lsp.semantic_tokens_full", &params);
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(&params));
+ .mark_with_args("lsp.semantic_tokens_range", &params);
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(&params));
+ let mark = self
+ .performance
+ .mark_with_args("lsp.signature_help", &params);
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(&params));
+ let mark = self.performance.mark_with_args("lsp.symbol", &params);
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(&params))
+ .mark_with_args("lsp.did_change_configuration", &params)
};
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(&params));
+ .mark_with_args("lsp.did_change_workspace_folders", &params);
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(&params));
+ let mark = self.performance.mark_with_args("lsp.cache", &params);
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(&params));
+ let mark = self.performance.mark_with_args("lsp.inlay_hint", &params);
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(&params));
+ .mark_with_args("lsp.virtual_text_document", &params);
let specifier = self
.url_map
.normalize_url(&params.text_document.uri, LspUrlKind::File);