Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
B
bit-pm
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
燕伟桐
bit-pm
Commits
3ceb3e23
提交
3ceb3e23
authored
4月 14, 2025
作者:
Will Chen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
strip out code fences (fix gemini occasional mis-format)
上级
f093a659
显示空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
42 行增加
和
2 行删除
+42
-2
chat_stream_handlers.test.ts
src/__tests__/chat_stream_handlers.test.ts
+34
-1
response_processor.ts
src/ipc/processors/response_processor.ts
+8
-1
没有找到文件。
src/__tests__/chat_stream_handlers.test.ts
浏览文件 @
3ceb3e23
...
@@ -55,6 +55,39 @@ describe("getDyadWriteTags", () => {
...
@@ -55,6 +55,39 @@ describe("getDyadWriteTags", () => {
expect
(
result
).
toEqual
([]);
expect
(
result
).
toEqual
([]);
});
});
it
(
"should return a dyad-write tag"
,
()
=>
{
const
result
=
getDyadWriteTags
(
`<dyad-write path="src/components/TodoItem.tsx" description="Creating a component for individual todo items">
import React from "react";
console.log("TodoItem");
</dyad-write>`
);
expect
(
result
).
toEqual
([
{
path
:
"src/components/TodoItem.tsx"
,
content
:
`import React from \"react\";
console.log(\"TodoItem\");`
,
},
]);
});
it
(
"should strip out code fence (if needed) from a dyad-write tag"
,
()
=>
{
const
result
=
getDyadWriteTags
(
`<dyad-write path="src/components/TodoItem.tsx" description="Creating a component for individual todo items">
\`\`\`tsx
import React from "react";
console.log("TodoItem");
\`\`\`
</dyad-write>
`
);
expect
(
result
).
toEqual
([
{
path
:
"src/components/TodoItem.tsx"
,
content
:
`import React from \"react\";
console.log(\"TodoItem\");`
,
},
]);
});
it
(
"should return an array of dyad-write tags"
,
()
=>
{
it
(
"should return an array of dyad-write tags"
,
()
=>
{
const
result
=
getDyadWriteTags
(
const
result
=
getDyadWriteTags
(
`I'll create a simple todo list app using React, TypeScript, and shadcn/ui components. Let's get started!
`I'll create a simple todo list app using React, TypeScript, and shadcn/ui components. Let's get started!
...
@@ -557,7 +590,7 @@ describe("processFullResponse", () => {
...
@@ -557,7 +590,7 @@ describe("processFullResponse", () => {
expect
(
fs
.
writeFileSync
).
toHaveBeenNthCalledWith
(
expect
(
fs
.
writeFileSync
).
toHaveBeenNthCalledWith
(
3
,
3
,
"/mock/user/data/path/mock-app-path/src/components/Button.tsx"
,
"/mock/user/data/path/mock-app-path/src/components/Button.tsx"
,
"
\
n import React from 'react';
\
n export const Button = ({ children }) => <button>{children}</button>;
\
n
"
"
import React from 'react';
\
n export const Button = ({ children }) => <button>{children}</button>;
"
);
);
// Verify git operations were called for each file
// Verify git operations were called for each file
...
...
src/ipc/processors/response_processor.ts
浏览文件 @
3ceb3e23
...
@@ -15,7 +15,14 @@ export function getDyadWriteTags(fullResponse: string): {
...
@@ -15,7 +15,14 @@ export function getDyadWriteTags(fullResponse: string): {
let
match
;
let
match
;
const
tags
:
{
path
:
string
;
content
:
string
}[]
=
[];
const
tags
:
{
path
:
string
;
content
:
string
}[]
=
[];
while
((
match
=
dyadWriteRegex
.
exec
(
fullResponse
))
!==
null
)
{
while
((
match
=
dyadWriteRegex
.
exec
(
fullResponse
))
!==
null
)
{
tags
.
push
({
path
:
match
[
1
],
content
:
match
[
2
]
});
const
content
=
match
[
2
].
trim
().
split
(
"
\
n"
);
if
(
content
[
0
].
startsWith
(
"```"
))
{
content
.
shift
();
}
if
(
content
[
content
.
length
-
1
].
startsWith
(
"```"
))
{
content
.
pop
();
}
tags
.
push
({
path
:
match
[
1
],
content
:
content
.
join
(
"
\
n"
)
});
}
}
return
tags
;
return
tags
;
}
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论