eff-u-code 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +256 -0
- package/bin/fuck-u-code-mcp.js +2 -0
- package/bin/fuck-u-code.js +2 -0
- package/bin/postinstall.js +53 -0
- package/dist/ai/index.d.ts +34 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +227 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/prompts/code-review.d.ts +9 -0
- package/dist/ai/prompts/code-review.d.ts.map +1 -0
- package/dist/ai/prompts/code-review.js +61 -0
- package/dist/ai/prompts/code-review.js.map +1 -0
- package/dist/ai/providers/anthropic.d.ts +11 -0
- package/dist/ai/providers/anthropic.d.ts.map +1 -0
- package/dist/ai/providers/anthropic.js +60 -0
- package/dist/ai/providers/anthropic.js.map +1 -0
- package/dist/ai/providers/fetch.d.ts +10 -0
- package/dist/ai/providers/fetch.d.ts.map +1 -0
- package/dist/ai/providers/fetch.js +50 -0
- package/dist/ai/providers/fetch.js.map +1 -0
- package/dist/ai/providers/gemini.d.ts +12 -0
- package/dist/ai/providers/gemini.d.ts.map +1 -0
- package/dist/ai/providers/gemini.js +66 -0
- package/dist/ai/providers/gemini.js.map +1 -0
- package/dist/ai/providers/ollama.d.ts +11 -0
- package/dist/ai/providers/ollama.d.ts.map +1 -0
- package/dist/ai/providers/ollama.js +54 -0
- package/dist/ai/providers/ollama.js.map +1 -0
- package/dist/ai/providers/openai.d.ts +11 -0
- package/dist/ai/providers/openai.d.ts.map +1 -0
- package/dist/ai/providers/openai.js +52 -0
- package/dist/ai/providers/openai.js.map +1 -0
- package/dist/ai/selector.d.ts +19 -0
- package/dist/ai/selector.d.ts.map +1 -0
- package/dist/ai/selector.js +145 -0
- package/dist/ai/selector.js.map +1 -0
- package/dist/ai/types.d.ts +120 -0
- package/dist/ai/types.d.ts.map +1 -0
- package/dist/ai/types.js +6 -0
- package/dist/ai/types.js.map +1 -0
- package/dist/analyzer/concurrent-analyzer.d.ts +11 -0
- package/dist/analyzer/concurrent-analyzer.d.ts.map +1 -0
- package/dist/analyzer/concurrent-analyzer.js +67 -0
- package/dist/analyzer/concurrent-analyzer.js.map +1 -0
- package/dist/analyzer/file-discovery.d.ts +23 -0
- package/dist/analyzer/file-discovery.d.ts.map +1 -0
- package/dist/analyzer/file-discovery.js +64 -0
- package/dist/analyzer/file-discovery.js.map +1 -0
- package/dist/analyzer/index.d.ts +27 -0
- package/dist/analyzer/index.d.ts.map +1 -0
- package/dist/analyzer/index.js +64 -0
- package/dist/analyzer/index.js.map +1 -0
- package/dist/cli/commands/ai-review.d.ts +6 -0
- package/dist/cli/commands/ai-review.d.ts.map +1 -0
- package/dist/cli/commands/ai-review.js +213 -0
- package/dist/cli/commands/ai-review.js.map +1 -0
- package/dist/cli/commands/analyze.d.ts +6 -0
- package/dist/cli/commands/analyze.d.ts.map +1 -0
- package/dist/cli/commands/analyze.js +145 -0
- package/dist/cli/commands/analyze.js.map +1 -0
- package/dist/cli/commands/config.d.ts +6 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +147 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/mcp-install.d.ts +9 -0
- package/dist/cli/commands/mcp-install.d.ts.map +1 -0
- package/dist/cli/commands/mcp-install.js +102 -0
- package/dist/cli/commands/mcp-install.js.map +1 -0
- package/dist/cli/index.d.ts +7 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +69 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/output/ai-review-output.d.ts +20 -0
- package/dist/cli/output/ai-review-output.d.ts.map +1 -0
- package/dist/cli/output/ai-review-output.js +324 -0
- package/dist/cli/output/ai-review-output.js.map +1 -0
- package/dist/cli/output/console.d.ts +31 -0
- package/dist/cli/output/console.d.ts.map +1 -0
- package/dist/cli/output/console.js +571 -0
- package/dist/cli/output/console.js.map +1 -0
- package/dist/cli/output/html.d.ts +20 -0
- package/dist/cli/output/html.d.ts.map +1 -0
- package/dist/cli/output/html.js +339 -0
- package/dist/cli/output/html.js.map +1 -0
- package/dist/cli/output/json.d.ts +8 -0
- package/dist/cli/output/json.d.ts.map +1 -0
- package/dist/cli/output/json.js +46 -0
- package/dist/cli/output/json.js.map +1 -0
- package/dist/cli/output/markdown.d.ts +17 -0
- package/dist/cli/output/markdown.d.ts.map +1 -0
- package/dist/cli/output/markdown.js +323 -0
- package/dist/cli/output/markdown.js.map +1 -0
- package/dist/cli/output/stats.d.ts +35 -0
- package/dist/cli/output/stats.d.ts.map +1 -0
- package/dist/cli/output/stats.js +63 -0
- package/dist/cli/output/stats.js.map +1 -0
- package/dist/cli/output/terminal-markdown.d.ts +23 -0
- package/dist/cli/output/terminal-markdown.d.ts.map +1 -0
- package/dist/cli/output/terminal-markdown.js +159 -0
- package/dist/cli/output/terminal-markdown.js.map +1 -0
- package/dist/config/index.d.ts +27 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +266 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/schema.d.ts +179 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +85 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/gitignore/index.d.ts +5 -0
- package/dist/gitignore/index.d.ts.map +1 -0
- package/dist/gitignore/index.js +5 -0
- package/dist/gitignore/index.js.map +1 -0
- package/dist/gitignore/parser.d.ts +32 -0
- package/dist/gitignore/parser.d.ts.map +1 -0
- package/dist/gitignore/parser.js +110 -0
- package/dist/gitignore/parser.js.map +1 -0
- package/dist/gitignore/parser.test.d.ts +2 -0
- package/dist/gitignore/parser.test.d.ts.map +1 -0
- package/dist/gitignore/parser.test.js +217 -0
- package/dist/gitignore/parser.test.js.map +1 -0
- package/dist/i18n/index.d.ts +19 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +43 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/locales/en.json +320 -0
- package/dist/i18n/locales/ru.json +320 -0
- package/dist/i18n/locales/zh.json +320 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/server.d.ts +9 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +156 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/metrics/complexity/cognitive.d.ts +25 -0
- package/dist/metrics/complexity/cognitive.d.ts.map +1 -0
- package/dist/metrics/complexity/cognitive.js +109 -0
- package/dist/metrics/complexity/cognitive.js.map +1 -0
- package/dist/metrics/complexity/cyclomatic.d.ts +21 -0
- package/dist/metrics/complexity/cyclomatic.d.ts.map +1 -0
- package/dist/metrics/complexity/cyclomatic.js +111 -0
- package/dist/metrics/complexity/cyclomatic.js.map +1 -0
- package/dist/metrics/complexity/nesting-depth.d.ts +19 -0
- package/dist/metrics/complexity/nesting-depth.d.ts.map +1 -0
- package/dist/metrics/complexity/nesting-depth.js +97 -0
- package/dist/metrics/complexity/nesting-depth.js.map +1 -0
- package/dist/metrics/documentation/comment-ratio.d.ts +21 -0
- package/dist/metrics/documentation/comment-ratio.d.ts.map +1 -0
- package/dist/metrics/documentation/comment-ratio.js +91 -0
- package/dist/metrics/documentation/comment-ratio.js.map +1 -0
- package/dist/metrics/duplication/code-duplication.d.ts +24 -0
- package/dist/metrics/duplication/code-duplication.d.ts.map +1 -0
- package/dist/metrics/duplication/code-duplication.js +167 -0
- package/dist/metrics/duplication/code-duplication.js.map +1 -0
- package/dist/metrics/duplication/code-duplication.test.d.ts +2 -0
- package/dist/metrics/duplication/code-duplication.test.d.ts.map +1 -0
- package/dist/metrics/duplication/code-duplication.test.js +612 -0
- package/dist/metrics/duplication/code-duplication.test.js.map +1 -0
- package/dist/metrics/error/error-handling.d.ts +23 -0
- package/dist/metrics/error/error-handling.d.ts.map +1 -0
- package/dist/metrics/error/error-handling.js +164 -0
- package/dist/metrics/error/error-handling.js.map +1 -0
- package/dist/metrics/error/error-handling.test.d.ts +2 -0
- package/dist/metrics/error/error-handling.test.d.ts.map +1 -0
- package/dist/metrics/error/error-handling.test.js +349 -0
- package/dist/metrics/error/error-handling.test.js.map +1 -0
- package/dist/metrics/index.d.ts +21 -0
- package/dist/metrics/index.d.ts.map +1 -0
- package/dist/metrics/index.js +50 -0
- package/dist/metrics/index.js.map +1 -0
- package/dist/metrics/naming/convention.d.ts +22 -0
- package/dist/metrics/naming/convention.d.ts.map +1 -0
- package/dist/metrics/naming/convention.js +117 -0
- package/dist/metrics/naming/convention.js.map +1 -0
- package/dist/metrics/size/file-length.d.ts +19 -0
- package/dist/metrics/size/file-length.d.ts.map +1 -0
- package/dist/metrics/size/file-length.js +68 -0
- package/dist/metrics/size/file-length.js.map +1 -0
- package/dist/metrics/size/function-length.d.ts +20 -0
- package/dist/metrics/size/function-length.d.ts.map +1 -0
- package/dist/metrics/size/function-length.js +101 -0
- package/dist/metrics/size/function-length.js.map +1 -0
- package/dist/metrics/size/parameter-count.d.ts +19 -0
- package/dist/metrics/size/parameter-count.d.ts.map +1 -0
- package/dist/metrics/size/parameter-count.js +97 -0
- package/dist/metrics/size/parameter-count.js.map +1 -0
- package/dist/metrics/structure/structure-analysis.d.ts +24 -0
- package/dist/metrics/structure/structure-analysis.d.ts.map +1 -0
- package/dist/metrics/structure/structure-analysis.js +223 -0
- package/dist/metrics/structure/structure-analysis.js.map +1 -0
- package/dist/metrics/structure/structure-analysis.test.d.ts +2 -0
- package/dist/metrics/structure/structure-analysis.test.d.ts.map +1 -0
- package/dist/metrics/structure/structure-analysis.test.js +342 -0
- package/dist/metrics/structure/structure-analysis.test.js.map +1 -0
- package/dist/metrics/types.d.ts +71 -0
- package/dist/metrics/types.d.ts.map +1 -0
- package/dist/metrics/types.js +5 -0
- package/dist/metrics/types.js.map +1 -0
- package/dist/parser/generic-parser.d.ts +28 -0
- package/dist/parser/generic-parser.d.ts.map +1 -0
- package/dist/parser/generic-parser.js +218 -0
- package/dist/parser/generic-parser.js.map +1 -0
- package/dist/parser/index.d.ts +19 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +52 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/parser/regex-parser.d.ts +46 -0
- package/dist/parser/regex-parser.d.ts.map +1 -0
- package/dist/parser/regex-parser.js +560 -0
- package/dist/parser/regex-parser.js.map +1 -0
- package/dist/parser/tree-sitter-parser.d.ts +50 -0
- package/dist/parser/tree-sitter-parser.d.ts.map +1 -0
- package/dist/parser/tree-sitter-parser.js +707 -0
- package/dist/parser/tree-sitter-parser.js.map +1 -0
- package/dist/parser/types.d.ts +52 -0
- package/dist/parser/types.d.ts.map +1 -0
- package/dist/parser/types.js +49 -0
- package/dist/parser/types.js.map +1 -0
- package/dist/scoring/index.d.ts +14 -0
- package/dist/scoring/index.d.ts.map +1 -0
- package/dist/scoring/index.js +80 -0
- package/dist/scoring/index.js.map +1 -0
- package/dist/utils/fs.d.ts +24 -0
- package/dist/utils/fs.d.ts.map +1 -0
- package/dist/utils/fs.js +61 -0
- package/dist/utils/fs.js.map +1 -0
- package/dist/utils/logger.d.ts +13 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +43 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/markdown.d.ts +16 -0
- package/dist/utils/markdown.d.ts.map +1 -0
- package/dist/utils/markdown.js +303 -0
- package/dist/utils/markdown.js.map +1 -0
- package/dist/utils/progress.d.ts +24 -0
- package/dist/utils/progress.d.ts.map +1 -0
- package/dist/utils/progress.js +79 -0
- package/dist/utils/progress.js.map +1 -0
- package/dist/utils/terminal.d.ts +62 -0
- package/dist/utils/terminal.d.ts.map +1 -0
- package/dist/utils/terminal.js +207 -0
- package/dist/utils/terminal.js.map +1 -0
- package/package.json +77 -0
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
{
|
|
2
|
+
"analyzing": "Sniffing code quality...",
|
|
3
|
+
"analysisComplete": "Sniffing complete",
|
|
4
|
+
"analysisFailed": "Sniffing failed",
|
|
5
|
+
"aiReviewing": "AI reviewing code...",
|
|
6
|
+
"aiReviewComplete": "AI review complete",
|
|
7
|
+
"aiReviewFailed": "AI review failed",
|
|
8
|
+
"reviewingFile": "Reviewing {file}...",
|
|
9
|
+
"noAIProvider": "No AI provider configured",
|
|
10
|
+
"aiProviderHint": "Set OPENAI_API_KEY, ANTHROPIC_API_KEY, DEEPSEEK_API_KEY, GEMINI_API_KEY, or OLLAMA_HOST environment variable",
|
|
11
|
+
"outputWritten": "Output written to {file}",
|
|
12
|
+
"filesAnalyzed": "{count} files analyzed",
|
|
13
|
+
"skippedFiles": "{count} files skipped",
|
|
14
|
+
"analysisTime": "Analysis completed in {time}ms",
|
|
15
|
+
"noFilesFound": "No files found to analyze",
|
|
16
|
+
"report_title": "Code Quality Analysis Report",
|
|
17
|
+
"report_overall_score": "Overall Score: {score} / 100",
|
|
18
|
+
"report_level": "Quality Level: {level}",
|
|
19
|
+
"report_metrics_details": "Metrics Details",
|
|
20
|
+
"report_worst_files": "Problem Files Ranking",
|
|
21
|
+
"report_conclusion": "Diagnosis",
|
|
22
|
+
"report_file_score": "Issue Score: {score}",
|
|
23
|
+
"report_more_issues": "...and {count} more issues too smelly to list",
|
|
24
|
+
"report_score_calc": "Score Calculation",
|
|
25
|
+
"report_no_issues": "Congratulations! No problematic files found!",
|
|
26
|
+
"overallScore": "Issue Score",
|
|
27
|
+
"worstFiles": "Problem Files Ranking",
|
|
28
|
+
"metricsSummary": "Metrics Summary",
|
|
29
|
+
"file": "File",
|
|
30
|
+
"score": "Score",
|
|
31
|
+
"issues": "Issues",
|
|
32
|
+
"complexity": "Complexity",
|
|
33
|
+
"size": "Size",
|
|
34
|
+
"duplication": "Duplication",
|
|
35
|
+
"documentation": "Documentation",
|
|
36
|
+
"naming": "Naming",
|
|
37
|
+
"structure": "Structure",
|
|
38
|
+
"error": "Error Handling",
|
|
39
|
+
"level_clean": "Fresh as spring breeze",
|
|
40
|
+
"level_clean_desc": "Code so clean, it's a joy to read—like a spa day for your eyes",
|
|
41
|
+
"level_mild": "A whiff of trouble",
|
|
42
|
+
"level_mild_desc": "Mostly fine, but a little stinky. Air it out and you'll survive",
|
|
43
|
+
"level_moderate": "Slightly stinky youth",
|
|
44
|
+
"level_moderate_desc": "A faint whiff, open a window and hope for the best",
|
|
45
|
+
"level_bad": "Code reeks, mask up",
|
|
46
|
+
"level_bad_desc": "Code is starting to stink, approach with caution and a mask",
|
|
47
|
+
"level_terrible": "Medium legacy mess",
|
|
48
|
+
"level_terrible_desc": "Obvious code odor, even fresh air can't save it",
|
|
49
|
+
"level_disaster": "Hidden toxic tumor",
|
|
50
|
+
"level_disaster_desc": "Fun to write, but you'll cry when you have to fix it",
|
|
51
|
+
"level_severe": "Severe legacy mess",
|
|
52
|
+
"level_severe_desc": "Toxic fumes everywhere, gas mask recommended",
|
|
53
|
+
"level_very_bad": "Code graveyard",
|
|
54
|
+
"level_very_bad_desc": "No programmer enters and leaves alive—abandon hope",
|
|
55
|
+
"level_extreme": "Nuclear disaster zone",
|
|
56
|
+
"level_extreme_desc": "A crime against humanity, best to incinerate it",
|
|
57
|
+
"level_worst": "Generational legacy mess",
|
|
58
|
+
"level_worst_desc": "Legacy mess, built by generations, impossible to maintain",
|
|
59
|
+
"level_ultimate": "Ultimate King of Mess",
|
|
60
|
+
"level_ultimate_desc": "So wild your own mother would disown you for writing it",
|
|
61
|
+
"score_comment_0": "Like a spring breeze, code kissed by angels—heals your soul",
|
|
62
|
+
"score_comment_10": "Fresh and pleasant, like morning dew—almost makes you want to refactor for fun",
|
|
63
|
+
"score_comment_20": "A hint of fragrance, sometimes a whiff of funk—still safe to touch",
|
|
64
|
+
"score_comment_30": "A bit smelly, but not lethal—just hold your nose and keep going",
|
|
65
|
+
"score_comment_40": "Stench hits you, mask recommended—read at your own risk",
|
|
66
|
+
"score_comment_50": "Toxic fumes everywhere, code review is torture—bring snacks and tissues",
|
|
67
|
+
"score_comment_60": "Stench fills the air, maintainers coughing blood—pray for mercy",
|
|
68
|
+
"score_comment_70": "Biohazard zone, write your will before taking over—may luck be with you",
|
|
69
|
+
"score_comment_80": "Nuclear waste site, bring a hazmat suit—every edit is a gamble",
|
|
70
|
+
"score_comment_90": "Disaster level tumor, every glance shortens your life by ten years—run while you can",
|
|
71
|
+
"metric_cyclomatic_complexity": "Cyclomatic Complexity",
|
|
72
|
+
"metric_cognitive_complexity": "Cognitive Complexity",
|
|
73
|
+
"metric_nesting_depth": "Nesting Depth",
|
|
74
|
+
"metric_function_length": "Function Length",
|
|
75
|
+
"metric_file_length": "File Length",
|
|
76
|
+
"metric_parameter_count": "Parameter Count",
|
|
77
|
+
"metric_comment_ratio": "Comment Ratio",
|
|
78
|
+
"metric_naming_convention": "Naming Convention",
|
|
79
|
+
"metric_error_handling": "Error Handling",
|
|
80
|
+
"metric_code_duplication": "Code Duplication",
|
|
81
|
+
"metric_structure_analysis": "Structure Analysis",
|
|
82
|
+
"metric_complexity_good": "Clear structure, no unnecessary complexity, great!",
|
|
83
|
+
"metric_complexity_medium": "Winding logic, like a maze for your brain",
|
|
84
|
+
"metric_complexity_bad": "Functions like labyrinths, maintenance like a dungeon raid",
|
|
85
|
+
"metric_length_good": "Short and sweet, easy to understand",
|
|
86
|
+
"metric_length_medium": "Getting long, consider splitting",
|
|
87
|
+
"metric_length_bad": "Long and smelly, eyes bleeding after reading",
|
|
88
|
+
"metric_comment_good": "Good comments, they'll help you survive",
|
|
89
|
+
"metric_comment_medium": "Sparse comments, readers need imagination",
|
|
90
|
+
"metric_comment_bad": "No comments, understanding depends on luck",
|
|
91
|
+
"metric_naming_good": "Clear naming, the light of programmer civilization",
|
|
92
|
+
"metric_naming_medium": "Naming is okay, some guesswork needed",
|
|
93
|
+
"metric_naming_bad": "Variable names look like keyboard smashes: x, y, z, tmp, xxx",
|
|
94
|
+
"metric_structure_good": "Beautiful structure, easy to follow",
|
|
95
|
+
"metric_structure_medium": "Structure is okay, but somewhat confusing",
|
|
96
|
+
"metric_structure_bad": "Nested like Russian dolls, dizzying to read",
|
|
97
|
+
"issue_category_complexity": "Complexity Issues",
|
|
98
|
+
"issue_category_comment": "Comment Issues",
|
|
99
|
+
"issue_category_naming": "Naming Issues",
|
|
100
|
+
"issue_category_structure": "Structure Issues",
|
|
101
|
+
"issue_category_duplication": "Duplication Issues",
|
|
102
|
+
"issue_category_error": "Error Handling Issues",
|
|
103
|
+
"issue_category_other": "Other Issues",
|
|
104
|
+
"advice_good": "Keep going, you're the clean freak of the coding world, a true code hygiene champion",
|
|
105
|
+
"advice_moderate": "This code is like a rebellious teenager, needs some tough love to become useful",
|
|
106
|
+
"advice_bad": "Delete the repo and run, or seal it for the next generation to suffer",
|
|
107
|
+
"severity_info": "Info",
|
|
108
|
+
"severity_warning": "Warning",
|
|
109
|
+
"severity_error": "Error",
|
|
110
|
+
"severity_critical": "Critical",
|
|
111
|
+
"detail_no_functions": "No functions found",
|
|
112
|
+
"detail_structure_issues": "{count} structure issues",
|
|
113
|
+
"detail_duplication": "{percent}% duplication ({duplicates}/{total})",
|
|
114
|
+
"detail_errors_ignored": "{ignored}/{total} errors ignored ({percent}%)",
|
|
115
|
+
"detail_no_error_prone_calls": "No error-prone calls detected",
|
|
116
|
+
"detail_file_length": "{code} code lines ({total} total)",
|
|
117
|
+
"issue_high_nesting": "High nesting: {depth}",
|
|
118
|
+
"issue_medium_nesting": "Medium nesting: {depth}",
|
|
119
|
+
"issue_file_too_large": "File too large: {lines} lines",
|
|
120
|
+
"issue_too_many_functions": "Too many functions: {count}",
|
|
121
|
+
"issue_too_many_imports": "Too many imports: {count}",
|
|
122
|
+
"issue_circular_deps": "Circular dependencies: {count}",
|
|
123
|
+
"issue_duplicate_pattern": "Duplicate pattern: {names}",
|
|
124
|
+
"issue_ignored_error": "Ignored error return value",
|
|
125
|
+
"issue_unhandled_error": "Unhandled error-prone call",
|
|
126
|
+
"detail_no_code_lines": "No code lines",
|
|
127
|
+
"detail_avg_max": "Avg: {avg}, Max: {max}",
|
|
128
|
+
"detail_avg_lines_max_lines": "Avg: {avg} lines, Max: {max} lines",
|
|
129
|
+
"detail_ratio": "{ratio}% ({comments}/{code})",
|
|
130
|
+
"detail_violations": "{count} violations found",
|
|
131
|
+
"detail_no_violations": "No naming violations",
|
|
132
|
+
"threshold_excellent": "Excellent (≤{value})",
|
|
133
|
+
"threshold_good": "Good ({min}-{max})",
|
|
134
|
+
"threshold_acceptable": "Acceptable ({min}-{max})",
|
|
135
|
+
"threshold_poor": "Poor (>{value})",
|
|
136
|
+
"verbose_basic_statistics": "Basic Statistics",
|
|
137
|
+
"verbose_total_files": "Total Files",
|
|
138
|
+
"verbose_total_lines": "Total Lines",
|
|
139
|
+
"verbose_total_issues": "Total Issues",
|
|
140
|
+
"verbose_file_good_quality": "Code quality is decent, nothing too tragic—keep it up!",
|
|
141
|
+
"verbose_file_stats": "Stats: {total} lines | {code} code | {comment} comments | {functions} functions | {classes} classes",
|
|
142
|
+
"verbose_function_details": "Function Details",
|
|
143
|
+
"verbose_all_issues": "All Issues ({count})",
|
|
144
|
+
"verbose_metric_details": "Metric Details",
|
|
145
|
+
"verbose_col_function": "Function",
|
|
146
|
+
"verbose_col_range": "Lines",
|
|
147
|
+
"verbose_col_line_count": "Count",
|
|
148
|
+
"verbose_col_complexity": "Complexity",
|
|
149
|
+
"verbose_col_nesting": "Nesting",
|
|
150
|
+
"verbose_col_params": "Params",
|
|
151
|
+
"verbose_col_docstring": "Doc",
|
|
152
|
+
"ai_review_title": "AI Code Review",
|
|
153
|
+
"ai_api_key_required": "API key required. Use --api-key or set environment variable.",
|
|
154
|
+
"ai_model_required": "Model required. Use --model to specify the model.",
|
|
155
|
+
"ai_example_usage": "Example usage:",
|
|
156
|
+
"ai_or_set_env": "Or set environment variables:",
|
|
157
|
+
"ai_no_provider": "No AI provider available",
|
|
158
|
+
"ai_score_excellent": "Excellent",
|
|
159
|
+
"ai_score_good": "Good",
|
|
160
|
+
"ai_score_acceptable": "Acceptable",
|
|
161
|
+
"ai_score_poor": "Poor",
|
|
162
|
+
"ai_score_critical": "Critical",
|
|
163
|
+
"ai_file_analysis_report": "File Analysis Report",
|
|
164
|
+
"ai_code_statistics": "Code Statistics",
|
|
165
|
+
"ai_metrics_analysis": "Metrics Analysis",
|
|
166
|
+
"ai_detected_issues": "Detected Issues",
|
|
167
|
+
"ai_function_analysis": "Function Analysis (sorted by complexity)",
|
|
168
|
+
"ai_no_issues_detected": "No significant issues detected",
|
|
169
|
+
"ai_no_functions_detected": "No functions detected",
|
|
170
|
+
"ai_total_lines": "Total lines",
|
|
171
|
+
"ai_code_lines": "Code lines",
|
|
172
|
+
"ai_comment_lines": "Comment lines",
|
|
173
|
+
"ai_blank_lines": "Blank lines",
|
|
174
|
+
"ai_comment_ratio": "Comment ratio",
|
|
175
|
+
"ai_functions": "Functions",
|
|
176
|
+
"ai_classes": "Classes",
|
|
177
|
+
"ai_high_complexity": "high complexity",
|
|
178
|
+
"ai_long_function": "long function",
|
|
179
|
+
"ai_deep_nesting": "deep nesting",
|
|
180
|
+
"ai_many_parameters": "many parameters",
|
|
181
|
+
"ai_review_request": "Based on the above local analysis results, please provide:",
|
|
182
|
+
"ai_review_request_1": "A summary of the most critical code quality issues",
|
|
183
|
+
"ai_review_request_2": "Specific, actionable refactoring suggestions with priority",
|
|
184
|
+
"ai_review_request_3": "Security concerns if any patterns indicate vulnerabilities",
|
|
185
|
+
"ai_review_request_4": "Recommendations for improving maintainability",
|
|
186
|
+
"ai_review_focus": "Focus on the issues with highest severity and functions with highest complexity.",
|
|
187
|
+
"ai_prompt_role": "You are a senior code reviewer. Analyze the provided static analysis metrics and source code, then produce a precise, actionable code review report.",
|
|
188
|
+
"ai_prompt_output_rules": "Output your review in well-structured Markdown. Use headings, bullet lists, code fences, and inline code as appropriate. Every suggestion must be specific and actionable — no vague advice, no pleasantries.",
|
|
189
|
+
"ai_prompt_metrics_title": "Metrics Definition",
|
|
190
|
+
"ai_prompt_metrics_complexity": "complexity (Cyclomatic Complexity): Measures code branching paths. CC = 1 + decision points (if/loop/case/catch/&&/||/ternary).",
|
|
191
|
+
"ai_prompt_metrics_nesting": "nesting (Nesting Depth): Code block nesting level, affects readability and cognitive load.",
|
|
192
|
+
"ai_prompt_metrics_params": "params (Parameter Count): Number of function parameters, too many reduces testability.",
|
|
193
|
+
"ai_prompt_metrics_lines": "lines (Function Length): Lines of code in function, excessive length may indicate too many responsibilities.",
|
|
194
|
+
"ai_prompt_metrics_duplication": "duplication (Code Duplication): Ratio of duplicate code patterns, >3% requires refactoring.",
|
|
195
|
+
"ai_prompt_metrics_structure": "structure (Structure Analysis): File organization, nesting depth, module complexity.",
|
|
196
|
+
"ai_prompt_metrics_error": "error (Error Handling): Error handling patterns, uncaught exceptions and ignored errors.",
|
|
197
|
+
"ai_prompt_metrics_note": "Metrics based on industry standards (SonarQube, ESLint, Clean Code). Thresholds vary by project complexity.",
|
|
198
|
+
"ai_prompt_constraints_title": "Constraints",
|
|
199
|
+
"ai_prompt_constraint_no_repeat": "Do NOT repeat raw metric data. Analyze root causes directly.",
|
|
200
|
+
"ai_prompt_constraint_location": "Each issue must specify: function name + line range.",
|
|
201
|
+
"ai_prompt_constraint_executable": "Refactoring suggestions must be immediately executable. Example: \"Extract lines 45-67 into calculateMetrics(data) returning MetricResult[]\".",
|
|
202
|
+
"ai_prompt_constraint_priority": "Priority: Performance bottlenecks > Security vulnerabilities > Maintainability risks > Code style.",
|
|
203
|
+
"ai_prompt_constraint_lang_aware": "Review according to the idioms and best practices of the target programming language.",
|
|
204
|
+
"ai_prompt_output_title": "Output Format",
|
|
205
|
+
"ai_prompt_output_instruction": "Use exactly the following Markdown heading structure. Each section is required. Keep the total response under 500 words.",
|
|
206
|
+
"ai_prompt_output_assessment": "One sentence identifying the root cause of the most critical issue. Explain why it matters, do not repeat metric numbers.",
|
|
207
|
+
"ai_prompt_output_critical_item": "For each issue use this format:\n- **`FunctionName` (L start-end)**: Root cause description + concrete fix suggestion",
|
|
208
|
+
"ai_prompt_output_refactor_item": "Numbered list of actionable steps. Each step ≤30 words, directly executable.",
|
|
209
|
+
"ai_prompt_output_security_item": "List any security concerns with affected code location + fix, or state \"No security issues found\".",
|
|
210
|
+
"ai_prompt_quality_title": "Quality Rules",
|
|
211
|
+
"ai_prompt_quality_specific": "Ban vague suggestions. Bad: \"Optimize code structure\". Good: \"Split Parser into Lexer and Evaluator classes\".",
|
|
212
|
+
"ai_prompt_quality_evidence": "All conclusions must be based on the provided metric data.",
|
|
213
|
+
"ai_prompt_quality_concise": "No pleasantries, no repetition, no filler text.",
|
|
214
|
+
"ai_prompt_quality_syntax": "Code examples must use the actual syntax of the target language.",
|
|
215
|
+
"ai_prompt_system": "You are a witty code reviewer with a playful personality. Analyze the provided code quality metrics and provide actionable feedback with a touch of humor.",
|
|
216
|
+
"ai_prompt_instruction_1": "Be concise and specific, but entertaining",
|
|
217
|
+
"ai_prompt_instruction_2": "Focus on the most impactful issues (the \"smelliest\" parts)",
|
|
218
|
+
"ai_prompt_instruction_3": "Provide concrete refactoring suggestions",
|
|
219
|
+
"ai_prompt_instruction_4": "Identify potential security concerns",
|
|
220
|
+
"ai_prompt_instruction_5": "Suggest improvements for maintainability",
|
|
221
|
+
"ai_prompt_summary": "Summary",
|
|
222
|
+
"ai_prompt_key_issues": "Key Issues (The Smelly Parts)",
|
|
223
|
+
"ai_prompt_refactoring": "Refactoring Suggestions",
|
|
224
|
+
"ai_prompt_security": "Security Concerns",
|
|
225
|
+
"ai_prompt_security_clear": "All clear! No security skeletons in this closet.",
|
|
226
|
+
"ai_prompt_word_limit": "Keep your response under 500 words. Be helpful but have fun with it!",
|
|
227
|
+
"warn_analyze_failed": "Failed to analyze {file}: {error}",
|
|
228
|
+
"warn_config_validation_failed": "Config validation failed: {error}",
|
|
229
|
+
"warn_config_load_failed": "Failed to load config: {error}",
|
|
230
|
+
"warn_no_model_specified": "{provider}_API_KEY set but no model specified. Use --model or set {provider}_MODEL",
|
|
231
|
+
"error_fatal": "Fatal error: {error}",
|
|
232
|
+
"progress_discovering": "Discovering files...",
|
|
233
|
+
"progress_discovered": "Found {count} files to analyze",
|
|
234
|
+
"progress_analyzing": "Analyzing",
|
|
235
|
+
"warn_file_too_large": "Skipping large file ({size}KB): {file}",
|
|
236
|
+
"warn_file_read_error": "Failed to read file: {file}",
|
|
237
|
+
"warn_parse_error": "Failed to parse file: {file}",
|
|
238
|
+
"warn_unsupported_language": "Unsupported language: {file}",
|
|
239
|
+
"warn_no_files_match": "No files match the include patterns",
|
|
240
|
+
"warn_all_files_excluded": "All files were excluded by .gitignore or exclude patterns",
|
|
241
|
+
"info_skipped_binary": "Skipped binary file: {file}",
|
|
242
|
+
"info_analysis_summary": "Analyzed {analyzed} files, skipped {skipped} files",
|
|
243
|
+
"error_path_not_found": "Path not found: {path}",
|
|
244
|
+
"error_not_a_directory": "Not a directory: {path}",
|
|
245
|
+
"config_current": "Current Configuration:",
|
|
246
|
+
"config_created": "Configuration file created: {path}",
|
|
247
|
+
"config_already_exists": "Configuration file already exists: {path}",
|
|
248
|
+
"config_unknown_action": "Unknown action: {action}. Use 'show' or 'init'.",
|
|
249
|
+
"config_init_success": "Configuration initialized successfully",
|
|
250
|
+
"html_skipped": "Skipped",
|
|
251
|
+
"html_time": "Time",
|
|
252
|
+
"html_status": "Status",
|
|
253
|
+
"html_lang": "en",
|
|
254
|
+
"output_table_of_contents": "Table of Contents",
|
|
255
|
+
"output_statistics": "Statistics",
|
|
256
|
+
"output_metric": "Metric",
|
|
257
|
+
"output_value": "Value",
|
|
258
|
+
"output_skipped": "Skipped",
|
|
259
|
+
"output_time": "Time",
|
|
260
|
+
"output_status": "Status",
|
|
261
|
+
"output_issues": "Issues",
|
|
262
|
+
"output_generated_by": "Generated by {tool}",
|
|
263
|
+
"cli_description": "Production-grade code quality analyzer with AST parsing and AI integration",
|
|
264
|
+
"cli_examples": "Examples:",
|
|
265
|
+
"cli_example_analyze_cwd": "Analyze current directory",
|
|
266
|
+
"cli_example_analyze_top": "Show top 10 worst files",
|
|
267
|
+
"cli_example_analyze_markdown": "Output as Markdown",
|
|
268
|
+
"cli_example_analyze_locale": "Use Chinese language",
|
|
269
|
+
"cli_example_ai_review": "AI-powered code review",
|
|
270
|
+
"cli_example_mcp_install": "Configure MCP Server for AI tools",
|
|
271
|
+
"cli_supported_languages": "Supported Languages:",
|
|
272
|
+
"cmd_analyze_description": "Analyze code quality of a project",
|
|
273
|
+
"cmd_analyze_example_cwd": "Analyze current directory",
|
|
274
|
+
"cmd_analyze_example_dir": "Analyze specific directory",
|
|
275
|
+
"cmd_analyze_example_top": "Show top 5 worst files",
|
|
276
|
+
"cmd_analyze_example_markdown": "Save Markdown report",
|
|
277
|
+
"cmd_analyze_example_html": "Save HTML report",
|
|
278
|
+
"cmd_analyze_example_exclude": "Exclude test files",
|
|
279
|
+
"cmd_analyze_example_locale": "Use Chinese output",
|
|
280
|
+
"cmd_ai_review_description": "AI-powered code review",
|
|
281
|
+
"cmd_ai_review_env_header": "Environment Variables:",
|
|
282
|
+
"cmd_config_description": "Show or initialize configuration",
|
|
283
|
+
"cmd_config_example_show": "Show current config",
|
|
284
|
+
"cmd_config_example_init": "Create .fuckucoderc.json",
|
|
285
|
+
"cmd_config_example_show_project": "Show config for specific project",
|
|
286
|
+
"cmd_config_example_set_locale": "Set default language to Chinese",
|
|
287
|
+
"cmd_config_example_set_api_key": "Set OpenAI-compatible API key",
|
|
288
|
+
"cmd_config_example_set_base_url": "Set custom API endpoint",
|
|
289
|
+
"cmd_config_example_set_model": "Set default model",
|
|
290
|
+
"cmd_config_example_set_provider": "Set AI provider",
|
|
291
|
+
"config_set_success": "Config updated: {key} = {value}",
|
|
292
|
+
"config_set_invalid_key": "Invalid config key: {key}",
|
|
293
|
+
"config_set_value_required": "Value is required for 'config set'",
|
|
294
|
+
"config_set_key_required": "Key is required for 'config set'",
|
|
295
|
+
"ai_review_output_title": "AI Code Review Report",
|
|
296
|
+
"cmd_ai_review_format_help": "Output format: console, markdown, html (default: console)",
|
|
297
|
+
"output_html_requires_file": "HTML format requires -o <file> to write output. Falling back to console format.",
|
|
298
|
+
"verbose_project_overview": "Project Overview",
|
|
299
|
+
"verbose_total_code_lines": "Total Code Lines",
|
|
300
|
+
"verbose_total_comment_lines": "Total Comment Lines",
|
|
301
|
+
"verbose_overall_comment_ratio": "Overall Comment Ratio",
|
|
302
|
+
"verbose_language_distribution": "Language Distribution",
|
|
303
|
+
"verbose_language": "Language",
|
|
304
|
+
"verbose_file_count": "Files",
|
|
305
|
+
"verbose_avg_file_size": "Avg File Size",
|
|
306
|
+
"verbose_largest_file": "Largest File",
|
|
307
|
+
"verbose_lines": "{count} lines",
|
|
308
|
+
"verbose_per_file_metrics": "Per-File Metric Scores",
|
|
309
|
+
"verbose_top_worst_functions": "Top 10 Worst Functions",
|
|
310
|
+
"verbose_col_file": "File",
|
|
311
|
+
"cmd_mcp_install_description": "Install MCP Server configuration for AI tools",
|
|
312
|
+
"mcp_install_target_prompt": "Select target AI tool:",
|
|
313
|
+
"mcp_installed": "MCP Server configured for {target}",
|
|
314
|
+
"mcp_config_written": "Configuration written to {path}",
|
|
315
|
+
"mcp_config_exists": "MCP Server already configured in {path}",
|
|
316
|
+
"mcp_config_updated": "MCP Server configuration updated in {path}",
|
|
317
|
+
"mcp_unknown_target": "Unknown target: {target}. Supported: claude, cursor",
|
|
318
|
+
"mcp_install_example_claude": "Configure for Claude Code",
|
|
319
|
+
"mcp_install_example_cursor": "Configure for Cursor"
|
|
320
|
+
}
|