Skip to content

Commit 13d2e6f

Browse files
authored
Merge pull request #560 from devchat-ai/handle_get_current_file_path
feat: Add getCurrentFileInfo and getIDEServicePort handlers
2 parents 2a1da12 + 2bdf9d0 commit 13d2e6f

File tree

4 files changed

+43
-1
lines changed

4 files changed

+43
-1
lines changed

src/handler/fileHandler.ts

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,30 @@ export async function readFile(message: any, panel: vscode.WebviewPanel | vscode
3030
logger.channel()?.error(`Error reading file ${message.file}: ${error}`);
3131
}
3232
}
33+
34+
regInMessage({ command: 'getCurrentFileInfo'});
35+
regOutMessage({ command: 'getCurrentFileInfo', result: '' });
36+
// Read content from specified file and return it
37+
export async function getCurrentFileInfo(message: any, panel: vscode.WebviewPanel | vscode.WebviewView): Promise<void> {
38+
try {
39+
// 获取当前文件的绝对路径
40+
const fileUri = vscode.window.activeTextEditor?.document.uri;
41+
const filePath = fileUri?.fsPath;
42+
MessageHandler.sendMessage(panel, { command: 'getCurrentFileInfo', result: filePath ?? "" });
43+
} catch (error) {
44+
logger.channel()?.error(`Error getting current file info: ${error}`);
45+
}
46+
}
47+
48+
regInMessage({ command: 'getIDEServicePort'});
49+
regOutMessage({ command: 'getIDEServicePort', result: 8090 });
50+
// Read content from specified file and return it
51+
export async function getIDEServicePort(message: any, panel: vscode.WebviewPanel | vscode.WebviewView): Promise<void> {
52+
try {
53+
// Get IDE service port
54+
const port = process.env.DEVCHAT_IDE_SERVICE_PORT;
55+
MessageHandler.sendMessage(panel, { command: 'getIDEServicePort', result: port ?? 0 });
56+
} catch (error) {
57+
logger.channel()?.error(`Error getting IDE service port: ${error}`);
58+
}
59+
}

src/handler/handlerRegister.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import {createAndOpenFile} from './codeBlockHandler';
1313
import { listAllMessages } from './listMessages';
1414
import { doVscodeCommand } from './vscodeCommandHandler';
1515
import { featureToggle, getFeatureToggles } from './featureToggleHandler';
16-
import { readFile, writeFile } from './fileHandler';
16+
import { readFile, writeFile, getIDEServicePort, getCurrentFileInfo } from './fileHandler';
1717
import { getTopics, deleteTopic } from './topicHandler';
1818
import { readConfig, writeConfig, readServerConfigBase, writeServerConfigBase } from './configHandler';
1919
import { getSetting, getUserAccessKey, getValidLlmModelList, updateSetting } from './removehandler';
@@ -86,6 +86,9 @@ messageHandler.registerHandler('deleteTopic', deleteTopic);
8686
messageHandler.registerHandler('readConfig', readConfig);
8787
messageHandler.registerHandler('writeConfig', writeConfig);
8888

89+
messageHandler.registerHandler('getCurrentFileInfo', getCurrentFileInfo);
90+
messageHandler.registerHandler('getIDEServicePort', getIDEServicePort);
91+
8992
messageHandler.registerHandler('readServerConfigBase', readServerConfigBase);
9093
messageHandler.registerHandler('writeServerConfigBase', writeServerConfigBase);
9194

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import * as vscode from 'vscode';
2+
3+
export async function getCurrentFileInfo() {
4+
const fileUri = vscode.window.activeTextEditor?.document.uri;
5+
const filePath = fileUri?.fsPath;
6+
return {"path": filePath ?? ""};
7+
}

src/ide_services/services.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import { UnofficialEndpoints } from "./endpoints/unofficial";
1313
import { getDocumentSymbols } from "./endpoints/getDocumentSymbols";
1414
import { findTypeDefinitionLocations } from "./endpoints/findTypeDefs";
1515
import { findDefinitionLocations } from "./endpoints/findDefs";
16+
import { getCurrentFileInfo } from "./endpoints/getCurrentFileInfo";
1617

1718
const functionRegistry: any = {
1819
/**
@@ -85,6 +86,10 @@ const functionRegistry: any = {
8586
keys: ["code"],
8687
handler: UnofficialEndpoints.runCode,
8788
},
89+
"/getCurrentFileInfo": {
90+
keys: [],
91+
handler: getCurrentFileInfo,
92+
}
8893
};
8994

9095
let server: http.Server | null = null;

0 commit comments

Comments
 (0)