feat: Add external link handler

- Add new openLink handler to manage external URL navigation
- Register openLink handler in message handler system
- Implement URL opening functionality using vscode.env.openExternal
This commit is contained in:
bobo.yang 2024-12-29 20:29:37 +08:00
parent 81d0f5d5aa
commit 5f12c02c89
2 changed files with 21 additions and 0 deletions

View File

@ -14,6 +14,7 @@ import { doVscodeCommand } from './vscodeCommandHandler';
import { readFile, writeFile, getIDEServicePort, getCurrentFileInfo } from './fileHandler';
import { getTopics, deleteTopic } from './topicHandler';
import { readConfig, writeConfig, readServerConfigBase, writeServerConfigBase } from './configHandler';
import { openLink } from './openlinkHandler';
// According to the context menu selected by the user, add the corresponding context file
@ -83,4 +84,5 @@ messageHandler.registerHandler('getIDEServicePort', getIDEServicePort);
messageHandler.registerHandler('readServerConfigBase', readServerConfigBase);
messageHandler.registerHandler('writeServerConfigBase', writeServerConfigBase);
messageHandler.registerHandler('openLink', openLink);

View File

@ -0,0 +1,19 @@
/*
Commands for handling configuration read and write
*/
import * as fs from 'fs';
import * as path from 'path';
import * as vscode from 'vscode';
import yaml from 'yaml';
import { regInMessage, regOutMessage } from '../util/reg_messages';
import { MessageHandler } from './messageHandler';
import { DevChatConfig } from '../util/config';
import { logger } from '../util/logger';
regInMessage({command: 'openLink', url: 'http://...'}); // when key is "", it will rewrite all config values
export async function openLink(message: any, panel: vscode.WebviewPanel|vscode.WebviewView): Promise<void> {
const url = message.url;
vscode.env.openExternal(vscode.Uri.parse(url));
}