Skip to content

Commit

Permalink
fix(chat): instantiate ChatPanelViewProvider within Command to proper… (
Browse files Browse the repository at this point in the history
#3221)

* fix(chat): instantiate ChatPanelViewProvider within Command to properly support multiple tab

* update

* Apply suggestions from code review

* update
  • Loading branch information
wsxiaoys authored Sep 30, 2024
1 parent 906e2c2 commit 1b103aa
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 20 deletions.
5 changes: 3 additions & 2 deletions clients/vscode/src/Commands.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ export class Commands {
private readonly inlineCompletionProvider: InlineCompletionProvider,
private readonly chatViewProvider: ChatSideViewProvider,
private readonly gitProvider: GitProvider,
private readonly chatPanelViewProvider: ChatPanelViewProvider,
) {
const registrations = Object.keys(this.commands).map((key) => {
const commandName = `tabby.${key}`;
Expand Down Expand Up @@ -284,7 +283,9 @@ export class Commands {
retainContextWhenHidden: true,
});

this.chatPanelViewProvider.resolveWebviewView(panel);
const chatPanelViewProvider = new ChatPanelViewProvider(this.context, this.client.agent, this.gitProvider);

chatPanelViewProvider.resolveWebviewView(panel);
},
"chat.edit.start": async (userCommand?: string) => {
const editor = window.activeTextEditor;
Expand Down
7 changes: 3 additions & 4 deletions clients/vscode/src/chat/ChatPanelViewProvider.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import { ExtensionContext, LogOutputChannel, TextEditor, window, commands, WebviewPanel } from "vscode";
import { ExtensionContext, TextEditor, window, WebviewPanel } from "vscode";
import type { ServerApi, ChatMessage, Context } from "tabby-chat-panel";
import { WebviewHelper } from "./WebviewHelper";
import type { AgentFeature as Agent } from "../lsp/AgentFeature";
import { GitProvider } from "../git/GitProvider";
import { getLogger } from "../logger";

export class ChatPanelViewProvider {
webview?: WebviewPanel;
Expand All @@ -12,9 +13,9 @@ export class ChatPanelViewProvider {
constructor(
private readonly context: ExtensionContext,
agent: Agent,
logger: LogOutputChannel,
gitProvider: GitProvider,
) {
const logger = getLogger();
this.webviewHelper = new WebviewHelper(context, agent, logger, gitProvider);
}

Expand Down Expand Up @@ -50,8 +51,6 @@ export class ChatPanelViewProvider {
if (webviewView.visible) {
this.webviewHelper.refreshChatPage();
}

commands.executeCommand("setContext", "tabby.chatViewVisible", webviewView.visible);
});

webviewView.webview.onDidReceiveMessage((message) => {
Expand Down
12 changes: 1 addition & 11 deletions clients/vscode/src/chat/ChatSideViewProvider.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,4 @@
import {
ExtensionContext,
WebviewViewProvider,
WebviewView,
LogOutputChannel,
TextEditor,
window,
commands,
} from "vscode";
import { ExtensionContext, WebviewViewProvider, WebviewView, LogOutputChannel, TextEditor, window } from "vscode";
import type { ServerApi, ChatMessage, Context } from "tabby-chat-panel";
import { WebviewHelper } from "./WebviewHelper";
import type { AgentFeature as Agent } from "../lsp/AgentFeature";
Expand Down Expand Up @@ -74,8 +66,6 @@ export class ChatSideViewProvider implements WebviewViewProvider {
if (webviewView.visible) {
this.webviewHelper.refreshChatPage();
}

commands.executeCommand("setContext", "tabby.chatViewVisible", webviewView.visible);
});

webviewView.webview.onDidReceiveMessage((message) => {
Expand Down
3 changes: 0 additions & 3 deletions clients/vscode/src/extension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import { GitProvider } from "./git/GitProvider";
import { ContextVariables } from "./ContextVariables";
import { StatusBarItem } from "./StatusBarItem";
import { ChatSideViewProvider } from "./chat/ChatSideViewProvider";
import { ChatPanelViewProvider } from "./chat/ChatPanelViewProvider";
import { Commands } from "./Commands";
import { Status } from "tabby-agent";
import { CodeActions } from "./CodeActions";
Expand Down Expand Up @@ -86,7 +85,6 @@ export async function activate(context: ExtensionContext) {
}),
);
// Create chat panel view
const chatPanelViewProvider = new ChatPanelViewProvider(context, client.agent, logger, gitProvider);
await gitProvider.init();
await client.start();

Expand All @@ -105,7 +103,6 @@ export async function activate(context: ExtensionContext) {
inlineCompletionProvider,
chatViewProvider,
gitProvider,
chatPanelViewProvider,
);
/* eslint-disable-next-line @typescript-eslint/ban-ts-comment */ /* eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error */
/* eslint-disable-next-line @typescript-eslint/no-unused-vars */ // @ts-ignore noUnusedLocals
Expand Down

0 comments on commit 1b103aa

Please sign in to comment.