about summary refs log tree commit diff
path: root/editors/code/src
diff options
context:
space:
mode:
authorLukas Wirth <lukastw97@gmail.com>2023-01-23 13:10:25 +0100
committerLukas Wirth <lukastw97@gmail.com>2023-01-23 13:24:42 +0100
commitb9fe5afb30d00e14aaf5d02ff12a74efb774d4f1 (patch)
tree88b5937a91eeaea0eb80c66aa881412bcf3f55cf /editors/code/src
parent84239a14543b5a22a9662bc926c9ae033067c977 (diff)
downloadrust-b9fe5afb30d00e14aaf5d02ff12a74efb774d4f1.tar.gz
rust-b9fe5afb30d00e14aaf5d02ff12a74efb774d4f1.zip
Add a 'open server logs' button to the error notification
Diffstat (limited to 'editors/code/src')
-rw-r--r--editors/code/src/client.ts1
-rw-r--r--editors/code/src/ctx.ts5
-rw-r--r--editors/code/src/lsp_ext.ts1
3 files changed, 7 insertions, 0 deletions
diff --git a/editors/code/src/client.ts b/editors/code/src/client.ts
index 1fbe9d4ea03..9335e9abb30 100644
--- a/editors/code/src/client.ts
+++ b/editors/code/src/client.ts
@@ -316,6 +316,7 @@ class ExperimentalFeatures implements lc.StaticFeature {
         caps.hoverActions = true;
         caps.serverStatusNotification = true;
         caps.colorDiagnosticOutput = true;
+        caps.openServerLogs = true;
         caps.commands = {
             commands: [
                 "rust-analyzer.runSingle",
diff --git a/editors/code/src/ctx.ts b/editors/code/src/ctx.ts
index d6cee5c8fc6..1860924c6de 100644
--- a/editors/code/src/ctx.ts
+++ b/editors/code/src/ctx.ts
@@ -187,6 +187,11 @@ export class Ctx {
                     this.setServerStatus(params)
                 )
             );
+            this.pushClientCleanup(
+                this._client.onNotification(ra.openServerLogs, () => {
+                    this.outputChannel!.show();
+                })
+            );
         }
         return this._client;
     }
diff --git a/editors/code/src/lsp_ext.ts b/editors/code/src/lsp_ext.ts
index 29349cc20f5..6ddf83799c0 100644
--- a/editors/code/src/lsp_ext.ts
+++ b/editors/code/src/lsp_ext.ts
@@ -21,6 +21,7 @@ export interface ServerStatusParams {
 export const serverStatus = new lc.NotificationType<ServerStatusParams>(
     "experimental/serverStatus"
 );
+export const openServerLogs = new lc.NotificationType0("rust-analyzer/openServerLogs");
 
 export const reloadWorkspace = new lc.RequestType0<null, void>("rust-analyzer/reloadWorkspace");