From 86318a31dd74be595ca2a439a1b6240118c61937 Mon Sep 17 00:00:00 2001 From: skcd Date: Mon, 3 Jun 2024 13:31:16 +0100 Subject: [PATCH] [ide] pass editor url to the agent --- .../src/completions/providers/chatprovider.ts | 4 ++ extensions/codestory/src/extension.ts | 47 ++----------------- 2 files changed, 7 insertions(+), 44 deletions(-) diff --git a/extensions/codestory/src/completions/providers/chatprovider.ts b/extensions/codestory/src/completions/providers/chatprovider.ts index 3235c29170e..c1cc02c88af 100644 --- a/extensions/codestory/src/completions/providers/chatprovider.ts +++ b/extensions/codestory/src/completions/providers/chatprovider.ts @@ -76,6 +76,8 @@ export class CSChatAgentProvider implements vscode.Disposable { private _sideCarClient: SideCarClient; private _currentRepoRef: RepoRef; private _projectContext: ProjectContext; + // Pass this when talking to the agent + private _editorUrl: string; constructor( workingDirectory: string, @@ -85,6 +87,7 @@ export class CSChatAgentProvider implements vscode.Disposable { sideCarClient: SideCarClient, repoRef: RepoRef, projectContext: ProjectContext, + editorUrl: string, ) { this._workingDirectory = workingDirectory; this._repoHash = repoHash; @@ -93,6 +96,7 @@ export class CSChatAgentProvider implements vscode.Disposable { this._sideCarClient = sideCarClient; this._currentRepoRef = repoRef; this._projectContext = projectContext; + this._editorUrl = editorUrl; this.chatAgent = vscode.chat.createChatParticipant('aide', this.defaultAgentRequestHandler); this.chatAgent.isDefault = true; diff --git a/extensions/codestory/src/extension.ts b/extensions/codestory/src/extension.ts index 1ec952e7cf5..a8b615f9934 100644 --- a/extensions/codestory/src/extension.ts +++ b/extensions/codestory/src/extension.ts @@ -162,6 +162,8 @@ export async function activate(context: ExtensionContext) { } }); + const editorUrl = `http://localhost:${port}`; + // Register a disposable to stop the server when the extension is deactivated context.subscriptions.push({ dispose: () => { @@ -243,7 +245,7 @@ export async function activate(context: ExtensionContext) { const chatAgentProvider = new CSChatAgentProvider( rootPath, repoName, repoHash, uniqueUserId, - sidecarClient, currentRepo, projectContext, + sidecarClient, currentRepo, projectContext, editorUrl, ); context.subscriptions.push(chatAgentProvider); @@ -289,47 +291,4 @@ export async function activate(context: ExtensionContext) { ); } }); - - - // TODO(skcd): I promise to clean this up better, I am trying to see if things still - // work if I wait here and check the diagnostics and if its working - // await new Promise(resolve => setTimeout(resolve, 20000)); - // // over here we will execute the code action provider - // try { - // const textDocumentUri = Uri.file('/Users/skcd/scratch/sidecar/llm_client/src/clients/types.rs'); - // // opens the text document as required - // await workspace.openTextDocument(textDocumentUri); - // const range = new vscode.Range(new Position(571, 27), new Position(571, 28)); - // const codeActions: vscode.CodeAction[] = await commands.executeCommand( - // 'vscode.executeCodeActionProvider', - // textDocumentUri, - // range, - // ); - // console.log('code actions worked'); - // // lets see what happens over here - // console.log(codeActions); - // const firstCodeActionCommand = codeActions[1].command; - // const firstCodeArguments = codeActions[1].command?.arguments; - // try { - // if (firstCodeActionCommand !== undefined && firstCodeArguments !== undefined) { - // // console.log(firstCodeAction.command); - // // console.log(firstCodeAction.arguments); - // console.log(firstCodeArguments[0]); - // const firstArgument = firstCodeArguments[0][0].arguments; - // console.log(firstArgument); - // const result = await commands.executeCommand('rust-analyzer.resolveCodeAction', firstArgument); - // // const result = await commands.executeCommand(firstCodeActionCommand.command, ...firstCodeArguments); - // console.log('sub results from result'); - // console.log(result); - // } else { - // console.log('missing command'); - // } - // } catch (exception) { - // console.log(exception); - // } - // // await commands.executeCommand(codeActions[0].command, ...codeActions[1].arguments); - // } catch (exception) { - // console.log('code action execution error'); - // console.error(exception); - // } }