feat(ui): 实现 @ 文件提及自动补全功能
- Core: 添加 file-index 模块,使用 ripgrep 索引文件,fuzzysort 模糊搜索 - Server: 添加 /api/files/search 端点,支持文件模糊搜索 - Server: WebSocket 消息处理中将 @filepath 转换为 ./filepath 格式 - UI: 新增 FileMenu 组件,显示文件搜索结果列表 - UI: 新增 FileMentionTag 组件,高亮显示文件提及 - UI: 新增 useFileMention hook,管理文件提及状态 - UI: ChatInput 集成 @ 触发的文件自动补全 - UI: ChatMessage 用户消息中高亮显示 @filepath
This commit is contained in:
@@ -105,13 +105,16 @@ export async function handleWebSocketMessage(
|
||||
switch (message.type) {
|
||||
case 'message': {
|
||||
// 用户发送消息
|
||||
const content = message.payload?.content || '';
|
||||
let content = message.payload?.content || '';
|
||||
|
||||
// 将 @filepath 转换为 ./filepath 格式(方便 AI 识别为文件路径)
|
||||
content = content.replace(/@([\w./-]+)/g, './$1');
|
||||
|
||||
// 广播确认收到消息
|
||||
broadcastToSession(sessionId, {
|
||||
type: 'message_received',
|
||||
sessionId,
|
||||
payload: { content },
|
||||
payload: { content: message.payload?.content || '' }, // 广播原始内容
|
||||
});
|
||||
|
||||
// 调用 Agent 处理消息(异步,不阻塞)
|
||||
|
||||
Reference in New Issue
Block a user