AI Slop Code Risk Monitor

Tencent/cherry-markdown

SlopCodeMonitor badge for Tencent/cherry-markdown Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

✨ A Markdown Editor

3.4 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for Tencent/cherry-markdown, a TypeScript project with 4,914 GitHub stars. SynthScan examined 303,038 lines of code across 1002 source files, recording 219 pattern matches distributed across 8 syntactic categories. The legacy adjusted pattern signal is 3.4 (Low pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

3.4
Adjusted Signal
3.4
Raw Pattern Score
100%
Time Factor
2026-10-29
Last Push
4.9K
Stars
TypeScript
Language
303.0K
Lines of Code
1.0K
Files
219
Pattern Hits
2026-10-31
Scan Date
0.08
HC Hit Rate

Risk Review · Payload v1

Use each vector to guide manual verification of the underlying findings.

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 1.6/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 90 finding(s).

Hallucinated Dependency & Supply Chain Risk 12.4/100 · LOW

Are imports declared and package/API names verified? 91 finding(s).

Agent Over-Engineering Ratio 2.6/100 · LOW

Are wrappers, guards, and repeated structures necessary? 83 finding(s).

PR Review Velocity Impact 14.9/100 · LOW

Which changes need focused human review? 219 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 73HIGH 5MEDIUM 38LOW 103

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 219 distinct pattern matches across 8 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Hallucination Indicators73 hits · 765 pts
SeverityFileLineSnippetContext
CRITICAL⚡examples/assets/scripts/index-demo.js88 window.cherry.toolbar.menus.hooks.customMenuCName.fire(null, 'shortKey');CODE
CRITICAL⚡examples/assets/scripts/index-demo.js95 window.cherry.toolbar.menus.hooks.customMenuCName.fire(null, 'github');CODE
CRITICAL⚡examples/assets/scripts/index-demo.js102 window.cherry.toolbar.menus.hooks.customMenuCName.fire(null, 'release');CODE
CRITICALexamples/assets/drawio_lib/Graph.js7489 this.state.view.graph.model.isEdge(this.state.cell) &&CODE
CRITICALexamples/assets/drawio_lib/Graph.js13778 this.state.view.graph.container.appendChild(this.hint);CODE
CRITICALexamples/assets/drawio_lib/Graph.js13863 this.state.view.graph.container.appendChild(this.hint);CODE
CRITICALexamples/assets/drawio_lib/Graph.js14460 if (this.state.view.graph.model.isVertex(this.state.cell) &&CODE
CRITICALexamples/assets/drawio_lib/Graph.js14764 return this.state.view.graph.connectionHandler.isEnabled();CODE
CRITICALexamples/assets/drawio_lib/Format.js1470 this.editorUi.editor.graph.container.focus();CODE
CRITICALexamples/assets/drawio_lib/Format.js1480 this.editorUi.editor.graph.container.focus();CODE
CRITICALexamples/assets/drawio_lib/Format.js2109 return this.editorUi.editor.graph.view.formatUnitText(pixels);CODE
CRITICALexamples/assets/drawio_lib/EditorUi.js4582 this.editor.graph.cellEditor.textarea.focus();CODE
CRITICALexamples/assets/drawio_lib/Shapes.js2370 var ctor = this.state.view.graph.cellRenderer.getShape(participant);CODE
CRITICALexamples/assets/drawio_lib/Menus.js1895 this.editorUi.editor.graph.popupMenuHandler.hideMenu();CODE
CRITICALexamples/assets/drawio_lib/Toolbar.js100 this.editorUi.editor.graph.view.addListener(mxEvent.EVENT_SCALE, this.updateZoom);CODE
CRITICALexamples/assets/drawio_lib/src/js/mxClient.min.js499null))};mxText.prototype.getShapeRotation=function(){return 0};mxText.prototype.getTextRotation=function(){return null!=CODE
CRITICALexamples/assets/drawio_lib/src/js/mxClient.min.js1512function mxVertexHandler(a){null!=a&&(this.state=a,this.init(),this.escapeHandler=mxUtils.bind(this,function(a,c){this.lCODE
CRITICALexamples/assets/drawio_lib/src/js/mxClient.min.js1532mxVertexHandler.prototype.start=function(a,b,c){this.inTolerance=!0;this.childOffsetY=this.childOffsetX=0;this.index=c;tCODE
CRITICALexamples/assets/drawio_lib/src/js/mxClient.min.js1549null!=b&&(c=b.offset||this.EMPTY_POINT,null==c||b.relative||(this.state.absoluteOffset.x=this.state.view.scale*c.x,this.CODE
CRITICAL…es/assets/drawio_lib/src/js/handler/mxVertexHandler.js33 this.state.view.graph.cellRenderer.redraw(this.state, true);CODE
CRITICAL…es/assets/drawio_lib/src/js/handler/mxVertexHandler.js622 this.parentState = this.state.view.graph.view.getState(parent);CODE
CRITICAL…es/assets/drawio_lib/src/js/handler/mxVertexHandler.js1096 this.state.view.graph.cellRenderer.redraw(this.state, true);CODE
CRITICALexamples/assets/drawio_lib/src/js/shape/mxText.js639 return !this.horizontal && this.state != null && this.state.view.graph.model.isVertex(this.state.cell);CODE
CRITICALexamples/assets/mxgraph/mxClient.js503this.margin.y*this.boundingBox.height,this.unrotatedBoundingBox=null))};mxText.prototype.getShapeRotation=function(){retCODE
CRITICALexamples/assets/mxgraph/mxClient.js1577function mxVertexHandler(a){null!=a&&(this.state=a,this.init(),this.escapeHandler=mxUtils.bind(this,function(b,c){this.lCODE
CRITICALexamples/assets/mxgraph/mxClient.js1596(this.parentState=this.state.view.graph.view.getState(b));this.selectionBorder.node.style.display=c==mxEvent.ROTATION_HACODE
CRITICALexamples/assets/mxgraph/mxClient.js1605this.rotateVertex(b):this.resizeVertex(b),this.updateHint(b))),b.consume())};mxVertexHandler.prototype.isGhostPreview=fuCODE
CRITICALexamples/assets/mxgraph/mxClient.js1616this.EMPTY_POINT,null==c||b.relative||(this.state.absoluteOffset.x=this.state.view.scale*c.x,this.state.absoluteOffset.yCODE
CRITICALexamples/assets/mxgraph/mxClient.js1618mxVertexHandler.prototype.moveToFront=function(){if(null!=this.state.text&&null!=this.state.text.node&&null!=this.state.CODE
CRITICAL…ages/cherry-markdown/test/core/hooks/Suggester.spec.ts925 mockCherry.editor.editor.view.coordsAtPos.mockReturnValue({ left: 150, top: 200, bottom: 220 });CODE
CRITICAL…ages/cherry-markdown/test/core/hooks/Suggester.spec.ts955 mockCherry.editor.editor.view.coordsAtPos.mockReturnValue(coords);CODE
CRITICAL…ages/cherry-markdown/test/core/hooks/Suggester.spec.ts1011 mockCherry.editor.editor.state.doc.sliceString.mockReturnValue(' ');CODE
CRITICAL…ages/cherry-markdown/test/core/hooks/Suggester.spec.ts1027 mockCherry.editor.editor.state.doc.lineAt.mockReturnValue({ number: 4, from: 10 });CODE
CRITICAL…ages/cherry-markdown/test/core/hooks/Suggester.spec.ts1028 mockCherry.editor.editor.state.doc.line.mockReturnValue({ from: 3, length: 1 });CODE
CRITICAL…ages/cherry-markdown/test/core/hooks/Suggester.spec.ts1068 mockCherry.editor.editor.view.coordsAtPos.mockReturnValue(null);CODE
CRITICAL…ages/cherry-markdown/test/core/hooks/Suggester.spec.ts1081 const changeCallback = mockCherry.editor.editor.on.mock.calls.find(([name]) => name === 'change')?.[1];CODE
CRITICALpackages/cherry-markdown/src/Cherry.js1162 markdown: this.editor.editor.view.state.doc.toString(), // CodeMirror 6 APICODE
CRITICALpackages/cherry-markdown/src/Editor.js454 return this.view.state.selection.ranges.map((range) => this.view.state.doc.sliceString(range.from, range.to));CODE
CRITICALpackages/cherry-markdown/src/Previewer.js955 this.editor.options.editorDom.classList.remove('cherry-editor--full', 'cherry-editor--hidden');CODE
CRITICALpackages/cherry-markdown/src/core/hooks/AutoLink.js328 this.$engine.$cherry.options.engine.syntax.autoLink.attrRender(processedURL, processedURL) ?? '';CODE
CRITICALpackages/cherry-markdown/src/core/hooks/Link.js105 this.$engine.$cherry.options.engine.syntax.link.attrRender(processedText, processedURL) ?? '';CODE
CRITICAL…s/cherry-markdown/src/utils/codeBlockContentHandler.js108 this.codeMirror.view.state.doc.toString().replace(this.codeBlockReg, function (whole, ...args) {CODE
CRITICAL…s/cherry-markdown/src/utils/codeBlockContentHandler.js122 const whole = this.codeMirror.view.state.doc.toString();CODE
CRITICAL…s/cherry-markdown/src/utils/codeBlockContentHandler.js140 const whole = this.codeMirror.view.state.doc.toString();CODE
CRITICAL…kages/cherry-markdown/src/utils/tableContentHandler.js157 this.tableEditor.editorDom.symbolContainer.parentNode.removeChild(this.tableEditor.editorDom.symbolContainer);CODE
CRITICAL…kages/cherry-markdown/src/utils/tableContentHandler.js175 const editorValue = this.codeMirror.view.state.doc.toString();CODE
CRITICAL…kages/cherry-markdown/src/utils/tableContentHandler.js309 const whole = this.codeMirror.view.state.doc.toString();CODE
CRITICAL…kages/cherry-markdown/src/utils/tableContentHandler.js874 this.tableEditor.editorDom.boundaryTriggerSymbol.rows.forEach((row) => {CODE
CRITICAL…s/cherry-markdown/src/toolbars/MermaidBubbleSession.js64 const rawContent = editor.editor.view.state.doc.toString();CODE
CRITICAL…s/cherry-markdown/src/toolbars/MermaidBubbleSession.js125 editor.editor.view.state.doc.toString(),CODE
CRITICAL…ckages/cherry-markdown/src/toolbars/PreviewerBubble.js313 const contents = getValueWithoutCode(this.editor.editor.view.state.doc.toString()).split('\n');CODE
CRITICAL…ckages/cherry-markdown/src/toolbars/PreviewerBubble.js425 this.bubbleHandler.hover.unExpandDom.classList.remove('hidden');CODE
CRITICAL…ckages/cherry-markdown/src/toolbars/PreviewerBubble.js456 const ret = this.previewer.$cherry.options.engine.syntax.footnote.refNumber.clickRefNumberCallback(CODE
CRITICAL…ckages/cherry-markdown/src/toolbars/PreviewerBubble.js902 const content = getValueWithoutCode(this.editor.editor.view.state.doc.toString());CODE
CRITICAL…ckages/cherry-markdown/src/toolbars/PreviewerBubble.js955 const content = getValueWithoutCode(this.editor.editor.view.state.doc.toString());CODE
CRITICAL…ckages/cherry-markdown/src/toolbars/hooks/Underline.js52 const newSelection = this.editor.editor.view.state.doc.sliceString(from, to);CODE
CRITICAL…es/cherry-markdown/src/toolbars/hooks/Strikethrough.js55 const newSelection = this.editor.editor.view.state.doc.sliceString(from, to);CODE
CRITICALpackages/cherry-markdown/src/toolbars/hooks/Size.js89 const newSelection = this.editor.editor.view.state.doc.sliceString(from, to);CODE
CRITICALpackages/cherry-markdown/src/toolbars/hooks/Ruby.js42 const newSelection = this.editor.editor.view.state.doc.sliceString(from, to);CODE
CRITICALpackages/cherry-markdown/src/toolbars/hooks/H2.js43 // const newSelection = this.editor.editor.state.doc.sliceString(from, to);COMMENT
13 more matches not shown…
Decorative Section Separators38 hits · 114 pts
SeverityFileLineSnippetContext
MEDIUMpackages/cherry-markdown/types/env.d.ts15// ─── 全局类型扩展 ─────────────────────────────────────────COMMENT
MEDIUMpackages/cherry-markdown/types/modules.d.ts34// ─── Addon 插件 ─────────────────────────────────────────COMMENT
MEDIUM.github/workflows/release.yml1# =============================================================================COMMENT
MEDIUM.github/workflows/release.yml14# =============================================================================COMMENT
MEDIUM.github/workflows/pr-test.yml1# =============================================================================COMMENT
MEDIUM.github/workflows/pr-test.yml7# =============================================================================COMMENT
MEDIUM.github/workflows/reusable-playground-build.yml1# =============================================================================COMMENT
MEDIUM.github/workflows/reusable-playground-build.yml6# =============================================================================COMMENT
MEDIUM.github/workflows/pr-preview-deploy.yml1# =============================================================================COMMENT
MEDIUM.github/workflows/pr-preview-deploy.yml12# =============================================================================COMMENT
MEDIUM.github/workflows/reusable-vscode-plugin.yml1# =============================================================================COMMENT
MEDIUM.github/workflows/reusable-vscode-plugin.yml14# =============================================================================COMMENT
MEDIUM.github/workflows/reusable-client-build.yml1# =============================================================================COMMENT
MEDIUM.github/workflows/reusable-client-build.yml9# =============================================================================COMMENT
MEDIUM.github/workflows/reusable-client-build.yml99 # =========================================================================COMMENT
MEDIUM.github/workflows/reusable-client-build.yml101 # =========================================================================COMMENT
MEDIUM.github/workflows/reusable-client-build.yml163 # =========================================================================COMMENT
MEDIUM.github/workflows/reusable-client-build.yml165 # =========================================================================COMMENT
MEDIUM.github/workflows/reusable-npm-release.yml73 # =========================================================================COMMENT
MEDIUM.github/workflows/reusable-npm-release.yml75 # =========================================================================COMMENT
MEDIUM.github/workflows/deploy-pages.yml1# =============================================================================COMMENT
MEDIUM.github/workflows/deploy-pages.yml7# =============================================================================COMMENT
MEDIUM.github/workflows/merge-dev-preview.yml1# =============================================================================COMMENT
MEDIUM.github/workflows/merge-dev-preview.yml8# =============================================================================COMMENT
MEDIUM.github/workflows/pr-ci.yml1# =============================================================================COMMENT
MEDIUM.github/workflows/pr-ci.yml7# =============================================================================COMMENT
MEDIUM.github/workflows/sync-cnb.yml1# =============================================================================COMMENT
MEDIUM.github/workflows/sync-cnb.yml9# =============================================================================COMMENT
MEDIUM.github/workflows/pr-changeset-check.yml1# =============================================================================COMMENT
MEDIUM.github/workflows/pr-changeset-check.yml9# =============================================================================COMMENT
MEDIUM.github/workflows/pr-preview-pkg.yml1# =============================================================================COMMENT
MEDIUM.github/workflows/pr-preview-pkg.yml7# =============================================================================COMMENT
MEDIUM.github/workflows/pr-compressed-size.yml1# =============================================================================COMMENT
MEDIUM.github/workflows/pr-compressed-size.yml6# =============================================================================COMMENT
MEDIUM.github/workflows/pr-spell-check.yml1# =============================================================================COMMENT
MEDIUM.github/workflows/pr-spell-check.yml6# =============================================================================COMMENT
MEDIUM.github/workflows/pr-preview-build.yml1# =============================================================================COMMENT
MEDIUM.github/workflows/pr-preview-build.yml12# =============================================================================COMMENT
Hyper-Verbose Identifiers45 hits · 45 pts
SeverityFileLineSnippetContext
LOWexamples/assets/scripts/ai-chat-stream-demo.js547 async function ensureCheckedPluginsLoaded() {CODE
LOWexamples/assets/drawio_lib/Shapes.js2931 function ProvidedRequiredInterfaceShape()CODE
LOWexamples/assets/drawio_lib/Shapes.js5803 function createTrapezoidHandleFunction(max, defaultValue, fixedDefaultValue)CODE
LOWexamples/assets/drawio_lib/Shapes.js5832 function createDisplayHandleFunction(defaultValue, allowArcHandle, max, redrawEdges, fixedDefaultValue)CODE
LOWexamples/assets/drawio_lib/Shapes.js5886 function createCylinderHandleFunction(defaultValue)CODE
LOWexamples/assets/drawio_lib/Shapes.js5902 function createArrowHandleFunction(maxSize)CODE
LOWexamples/assets/drawio_lib/Shapes.js5920 function createWedgeHandleFunction(defaultValue, spacing)CODE
LOWexamples/assets/drawio_lib/src/js/mxClient.min.js635function mxGraphAbstractHierarchyCell(){this.x=[];this.y=[];this.temp=[]}mxGraphAbstractHierarchyCell.prototype.maxRank=CODE
LOWexamples/assets/drawio_lib/src/js/mxClient.min.js670this.extendedDfs(b,l,f,d,e,b.hashCode,g,k+1)}else d(a,b,c,k,1)};function mxHierarchicalLayoutStage(){}mxHierarchicalLayoCODE
LOW…out/hierarchical/model/mxGraphAbstractHierarchyCell.js20function mxGraphAbstractHierarchyCell()CODE
LOW…/hierarchical/stage/mxMedianHybridCrossingReduction.js23function mxMedianHybridCrossingReduction(layout)CODE
LOW…layout/hierarchical/stage/mxHierarchicalLayoutStage.js16function mxHierarchicalLayoutStage() { };CODE
LOWexamples/assets/mxgraph/mxClient.js652function mxGraphAbstractHierarchyCell(){this.x=[];this.y=[];this.temp=[]}mxGraphAbstractHierarchyCell.prototype.maxRank=CODE
LOWexamples/assets/mxgraph/mxClient.js687this.extendedDfs(b,l,f,d,e,b.hashCode,g,k+1)}else d(a,b,c,k,1)};function mxHierarchicalLayoutStage(){}mxHierarchicalLayoCODE
LOWpackages/miniProgram/src/shared/renderer.js28export function markdownToMiniProgramView(engine, markdown, options = {}) {CODE
LOWpackages/miniProgram/src/shared/engine.js46 engine.$clearFlowSessionCursorCache = function clearFlowSessionCursorCache(md) {CODE
LOWpackages/miniProgram/src/shared/transform.js789export function markdownToMiniProgramBlocks(engine, markdown, options = {}) {CODE
LOWpackages/vscodePlugin/src/protocol.ts52function isFiniteNonNegativeNumber(value: unknown): value is number {CODE
LOWpackages/vscodePlugin/src/config.ts101export function normalizeBackfillImageProps(value: unknown): BackfillImageProp[] {CODE
LOWpackages/vscodePlugin/src/config.ts128function readLegacyImageUploadMode(resource?: vscode.Uri): ImageUploadMode | undefined {CODE
LOWpackages/vscodePlugin/src/config.ts141function hasExplicitImageUploadMode(configuration: vscode.WorkspaceConfiguration): boolean {CODE
LOW…rc/components/composables/milkdown/selectionTooltip.ts183export function configureSelectionTooltip(ctx: Ctx): {CODE
LOWpackages/cherry-markdown/vite.plugins.ts81 function addonFileNameToGlobalName(fileName: string): string {CODE
LOWpackages/cherry-markdown/src/core/HookCenter.js96function isRegisteredCustomSyntaxClass(value) {CODE
LOWpackages/cherry-markdown/src/core/hooks/CodeBlock.js442 function addBlockQuoteSignToResult(result) {CODE
LOWpackages/cherry-markdown/src/utils/lineFeed.js21export function prependLineFeedForParagraph(match, processedContent, canNestedInList = false) {CODE
LOWpackages/cherry-markdown/src/utils/lineFeed.js41export function calculateLinesOfParagraph(preLinesMatch, contentLines) {CODE
LOWpackages/cherry-markdown/src/utils/exportWord.js68async function replaceSvgContainerWithImage(el, display) {CODE
LOW…kages/cherry-markdown/src/utils/mermaidEditorHelper.js45export function parseMermaidLayoutFromLangLine(fullLangLine) {CODE
LOW…kages/cherry-markdown/src/utils/mermaidEditorHelper.js123export function getMermaidBlockAtPreviewIndex(rawContent, previewIndex) {CODE
LOW…kages/cherry-markdown/src/utils/mermaidEditorHelper.js138export function findMermaidBlockIndexByCodeBody(rawContent, codeBody, preferredIndex = -1) {CODE
LOW…ages/cherry-markdown/src/utils/mermaidPreviewHelper.js81export function hasMermaidRenderedContent(root) {CODE
LOWpackages/cherry-markdown/src/utils/dom.js48export function getBlockTopAndHeightWithMargin(element) {CODE
LOWpackages/cherry-markdown/src/utils/sanitize.js324export function escapeHTMLEntitiesWithoutSemicolon(content) {CODE
LOWpackages/cherry-markdown/src/utils/sanitize.js409export function escapeHTMLSpecialCharOnce(content, enableQuote) {CODE
LOWpackages/cherry-markdown/src/utils/sanitize.js423export function unescapeHTMLNumberEntities(html) {CODE
LOW…ges/cherry-markdown/src/toolbars/searcher/panel-dom.js95export function applyReplaceExpandedDomState(root, replaceExpanded) {CODE
LOWpackages/milkdown/src/markdown-reconcile.ts6export function reconcileSerializedMarkdown(CODE
LOWpackages/milkdown/src/wysiwyg/plugin.ts33function createCustomMarkdownPlugin(sourceBlockTypes: readonly string[]): RemarkPluginRaw<unknown> {CODE
LOWpackages/milkdown/src/wysiwyg/transform.ts609function normalizeFootnoteReferences(tree: MarkdownNode, source: string) {CODE
LOWpackages/milkdown/src/wysiwyg/transform.ts674function relocateFootnoteDefinitions(tree: MarkdownNode) {CODE
LOWpackages/milkdown/src/wysiwyg/transform.ts692export function transformCherryWysiwygTree(CODE
LOWpackages/milkdown/src/wysiwyg/diagram-runtime.ts14export function destroyCherryRenderedContent(engine: CherryEngineLike, container: Element) {CODE
LOW…ages/milkdown/src/wysiwyg/table-chart-render-engine.ts29export function decodeTableChartDescriptor(value: string, ownerDocument = document): CherryTableChartDescriptor {CODE
LOW…ages/milkdown/src/wysiwyg/table-chart-render-engine.ts52export function tableChartDescriptorSource(descriptor: CherryTableChartDescriptor) {CODE
Over-Commented Block36 hits · 36 pts
SeverityFileLineSnippetContext
LOW.code.yml1source:COMMENT
LOWcommitlint.config.js21 // 待补充COMMENT
LOWexamples/assets/scripts/index-demo.js381 },COMMENT
LOWexamples/assets/drawio_lib/EditorUi.js5801 // var remote = src.substring(0, 7) == 'http://' || src.substring(0, 8) == 'https://';COMMENT
LOW…/js/layout/hierarchical/model/mxGraphHierarchyModel.js621 // to the visitor.visit() in the seen parameter. The HashSet clone wasCOMMENT
LOW…ib/src/js/layout/hierarchical/model/mxSwimlaneModel.js221 // Create internal edges, but don't do any rank assignment yetCOMMENT
LOW…ib/src/js/layout/hierarchical/model/mxSwimlaneModel.js441 // Normalize the ranks down from their large starting value to placeCOMMENT
LOW…ib/src/js/layout/hierarchical/model/mxSwimlaneModel.js721 // meant there is a cycle in the graph and this information is passedCOMMENT
LOWpackages/client/src/main.ts1import { createApp } from 'vue';COMMENT
LOWpackages/client/src/components/CherryMarkdown.ts441 autoLoadImgNum: 5,COMMENT
LOW…s/client/src/components/composables/useCherryExport.ts561 // ── 分片截图 + 主画布拼接 ──COMMENT
LOWpackages/cherry-markdown/vite.plugins.ts261COMMENT
LOWpackages/cherry-markdown/src/Cherry.config.js581 // icon: 'h1',COMMENT
LOWpackages/cherry-markdown/src/Cherry.config.js601 // keyword: 'code',COMMENT
LOWpackages/cherry-markdown/src/Cherry.config.js621 // keyword: 'template temp',COMMENT
LOWpackages/cherry-markdown/src/Cherry.config.js641 // suggestList(word, callback) {COMMENT
LOWpackages/cherry-markdown/src/Cherry.config.js661 // const suggestions = filtered.map((user) => ({COMMENT
LOWpackages/cherry-markdown/src/Cherry.config.js681 // return '';COMMENT
LOWpackages/cherry-markdown/src/Cherry.config.js701 // searchTerm === ''COMMENT
LOWpackages/cherry-markdown/src/Cherry.config.js781 // 'Ctrl-b': 'bold',COMMENT
LOWpackages/cherry-markdown/src/core/SentenceBase.js41COMMENT
LOWpackages/cherry-markdown/src/core/hooks/AutoLink.js281 rule() {COMMENT
LOWpackages/cherry-markdown/src/core/hooks/SuggestList.js101 // },COMMENT
LOWpackages/cherry-markdown/src/core/hooks/Table.js261 // const mapDataSourceRegex = /<!--[\s\S]*?mapDataSource:\s*([^\s>]+)[\s\S]*?-->/i;COMMENT
LOW…kages/cherry-markdown/src/utils/tableContentHandler.js1581 // - ['row']: 只在行控制中显示(右侧按钮)COMMENT
LOWpackages/cherry-markdown/src/libs/rawdeflate.js41 // var zip_HASH_BITS = 14;COMMENT
LOWpackages/cherry-markdown/src/toolbars/hooks/H2.js41 // this.getMoreSelection('\n', '', () => {COMMENT
LOWpackages/cherry-markdown/src/toolbars/hooks/ProTable.js41 */COMMENT
LOWpackages/cherry-markdown/src/toolbars/hooks/Header.js81 * @returns {string} 回填到编辑器光标位置/选中文本区域的内容COMMENT
LOWpackages/cherry-markdown/src/toolbars/hooks/H3.js41 // this.getMoreSelection('\n', '', () => {COMMENT
LOWpackages/cherry-markdown/src/toolbars/hooks/H1.js41 // if (!this.isSelections && !this.$testIsHead($selection)) {COMMENT
LOW…ckages/cherry-markdown/src/sass/components/bubble.scss1// 气泡浮层的「基础盒模型」样式(定位、边框、背景、阴影等)。COMMENT
LOW.github/workflows/release.yml1# =============================================================================COMMENT
LOW.github/workflows/pr-preview-deploy.yml1# =============================================================================COMMENT
LOW.github/workflows/reusable-vscode-plugin.yml1# =============================================================================COMMENT
LOW.github/workflows/pr-preview-build.yml1# =============================================================================COMMENT
Cross-Language Confusion (JS/TS)5 hits · 25 pts
SeverityFileLineSnippetContext
HIGHexamples/assets/drawio_lib/src/js/util/mxUtils.js4061 print();CODE
HIGHpackages/miniProgram/test/stream.spec.ts11 ['python', 'def example():\n return True', 'token keyword'],CODE
HIGH…kages/cherry-markdown/test/core/PrismLanguages.spec.ts31 ['python', 'def example():\n return True', 'keyword', 'def'],CODE
HIGH…kages/cherry-markdown/test/core/PrismLanguages.spec.ts44 const code = language === 'python' ? 'def example():\n return True' : 'echo "hello"';CODE
HIGHpackages/milkdown/e2e/shared-behavior.spec.ts94 expect(await markdown(page)).toContain('return True');CODE
Fake / Example Data13 hits · 13 pts
SeverityFileLineSnippetContext
LOWexamples/assets/drawio_lib/Graph.js2291Graph.prototype.builtInProperties = ['label', 'tooltip', 'placeholders', 'placeholder'];CODE
LOWexamples/assets/drawio_lib/Graph.js3999 if (result != null && this.isReplacePlaceholders(cell) && cell.getAttribute('placeholder') == null)CODE
LOWexamples/assets/drawio_lib/Graph.js4955 if (this.isReplacePlaceholders(cell) && cell.getAttribute('placeholder') != null)CODE
LOWexamples/assets/drawio_lib/Graph.js4957 var name = cell.getAttribute('placeholder');CODE
LOWexamples/assets/drawio_lib/Graph.js9708 cell.getAttribute('placeholder') != null)CODE
LOWexamples/assets/drawio_lib/Graph.js9711 var name = cell.getAttribute('placeholder');CODE
LOWexamples/assets/drawio_lib/Sidebar.js984 input.setAttribute('placeholder', mxResources.get('searchShapes'));CODE
LOWexamples/assets/drawio_lib/Sidebar.js1322 '<h1>Heading</h1><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labCODE
LOWexamples/assets/drawio_lib/Sidebar.js1322 '<h1>Heading</h1><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labCODE
LOWexamples/assets/drawio_lib/Dialogs.js1632 nameInput.setAttribute('placeholder', mxResources.get('enterPropertyName'));CODE
LOWexamples/assets/drawio_lib/Dialogs.js1770 removeLabel = removeLabel || (names[i] == 'placeholder' &&CODE
LOWexamples/assets/drawio_lib/Dialogs.js1931 linkInput.setAttribute('placeholder', 'http://www.example.com/');CODE
LOWexamples/assets/drawio_lib/lib/purify.min.js2!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&defineCODE
Verbosity Indicators5 hits · 10 pts
SeverityFileLineSnippetContext
LOW…amples/assets/drawio_lib/src/js/view/mxCellRenderer.js423 // under the mouse, so we need to check if this is the case and forceCOMMENT
LOW⚡packages/cherry-markdown/src/core/hooks/InlineMath.js161 // Step 1: 先跑一次 makeInlineMath 把原生 ~D..~D 段冻结到 cacheCOMMENT
LOW⚡packages/cherry-markdown/src/core/hooks/InlineMath.js164 // Step 2: 归一化 \[..\] → ~D..~DCOMMENT
LOW⚡packages/cherry-markdown/src/core/hooks/InlineMath.js166 // Step 3: 归一化 \(..\) → ~D..~DCOMMENT
LOW⚡packages/cherry-markdown/src/core/hooks/InlineMath.js168 // Step 4: selfClosing 仅最后一个 td 生效——补开 \(COMMENT
Structural Annotation Overuse4 hits · 9 pts
SeverityFileLineSnippetContext
LOW⚡packages/cherry-markdown/src/core/hooks/InlineMath.js161 // Step 1: 先跑一次 makeInlineMath 把原生 ~D..~D 段冻结到 cacheCOMMENT
LOW⚡packages/cherry-markdown/src/core/hooks/InlineMath.js164 // Step 2: 归一化 \[..\] → ~D..~DCOMMENT
LOW⚡packages/cherry-markdown/src/core/hooks/InlineMath.js166 // Step 3: 归一化 \(..\) → ~D..~DCOMMENT
LOW⚡packages/cherry-markdown/src/core/hooks/InlineMath.js168 // Step 4: selfClosing 仅最后一个 td 生效——补开 \(COMMENT