YeonGyu-Kim 02a9402472 feat(hooks): add comment-checker hook for detecting unnecessary comments
- Port Go comment-checker to TypeScript using web-tree-sitter
- Support 38 programming languages via tree-sitter-wasms
- Filter out valid comments: BDD patterns, lint directives, docstrings, shebangs
- Integrate with OpenCode's tool.execute.before/after hooks
- Attach feedback to Write/Edit/MultiEdit tool output
2025-12-05 02:49:47 +09:00

25 lines
668 B
TypeScript

import type { FileComments } from "../types"
function escapeXml(text: string): string {
return text
.replace(/&/g, "&")
.replace(/</g, "&lt;")
.replace(/>/g, "&gt;")
.replace(/"/g, "&quot;")
.replace(/'/g, "&apos;")
}
export function buildCommentsXml(fileCommentsList: FileComments[]): string {
const lines: string[] = []
for (const fc of fileCommentsList) {
lines.push(`<comments file="${escapeXml(fc.filePath)}">`)
for (const comment of fc.comments) {
lines.push(`\t<comment line-number="${comment.lineNumber}">${escapeXml(comment.text)}</comment>`)
}
lines.push(`</comments>`)
}
return lines.join("\n")
}