MarketAlly.AIPlugin.Extensions/MarketAlly.AIPlugin.Refacto.../refactorconfig.schema.json

332 lines
9.8 KiB
JSON
Executable File

{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "MarketAlly Refactoring Configuration",
"description": "Configuration schema for MarketAlly AI Plugin Refactoring tools",
"type": "object",
"properties": {
"codeAnalysis": {
"type": "object",
"description": "Configuration for code analysis operations",
"properties": {
"complexityThreshold": {
"type": "integer",
"description": "Maximum allowed cyclomatic complexity",
"minimum": 1,
"maximum": 100,
"default": 10
},
"maxMethodLength": {
"type": "integer",
"description": "Maximum allowed method length in lines",
"minimum": 5,
"maximum": 200,
"default": 50
},
"maxClassSize": {
"type": "integer",
"description": "Maximum allowed class size in lines",
"minimum": 50,
"maximum": 2000,
"default": 500
},
"analysisDepth": {
"type": "string",
"description": "Depth of code analysis",
"enum": ["basic", "detailed", "comprehensive"],
"default": "detailed"
},
"enabledRules": {
"type": "array",
"description": "List of enabled analysis rules",
"items": {
"type": "string",
"enum": [
"long-method",
"god-class",
"duplicate-code",
"complex-method",
"long-parameter-list",
"feature-envy",
"data-class",
"refused-bequest",
"inappropriate-intimacy",
"message-chains",
"middle-man",
"divergent-change",
"shotgun-surgery"
]
},
"default": ["long-method", "god-class", "duplicate-code"]
},
"disabledRules": {
"type": "array",
"description": "List of disabled analysis rules",
"items": {
"type": "string"
},
"default": []
},
"includeComplexity": {
"type": "boolean",
"description": "Include complexity metrics in analysis",
"default": true
},
"includeCodeSmells": {
"type": "boolean",
"description": "Include code smell detection",
"default": true
},
"includeSuggestions": {
"type": "boolean",
"description": "Include refactoring suggestions",
"default": true
}
},
"additionalProperties": false
},
"formatting": {
"type": "object",
"description": "Configuration for code formatting",
"properties": {
"style": {
"type": "string",
"description": "Code formatting style",
"enum": ["microsoft", "allman", "k&r", "google"],
"default": "microsoft"
},
"indentationSize": {
"type": "integer",
"description": "Number of spaces for indentation",
"minimum": 2,
"maximum": 8,
"default": 4
},
"maxLineLength": {
"type": "integer",
"description": "Maximum line length",
"minimum": 80,
"maximum": 200,
"default": 120
},
"organizeUsings": {
"type": "boolean",
"description": "Organize using statements",
"default": true
},
"removeUnnecessary": {
"type": "boolean",
"description": "Remove unnecessary code elements",
"default": true
},
"fixIndentation": {
"type": "boolean",
"description": "Fix indentation issues",
"default": true
},
"createBackup": {
"type": "boolean",
"description": "Create backup files before formatting",
"default": true
}
},
"additionalProperties": false
},
"documentation": {
"type": "object",
"description": "Configuration for documentation generation",
"properties": {
"style": {
"type": "string",
"description": "Documentation generation style",
"enum": ["intelligent", "comprehensive", "basic", "minimal"],
"default": "intelligent"
},
"includeExamples": {
"type": "boolean",
"description": "Include code examples in documentation",
"default": false
},
"includeSeeAlso": {
"type": "boolean",
"description": "Include see-also references",
"default": false
},
"apiDocFormat": {
"type": "boolean",
"description": "Generate API documentation format",
"default": false
},
"documentationScope": {
"type": "string",
"description": "Scope of members to document",
"enum": ["public", "protected", "internal", "all"],
"default": "public"
},
"generateFileHeaders": {
"type": "boolean",
"description": "Generate file header comments",
"default": false
},
"fileHeaderTemplate": {
"type": "string",
"description": "Template for file header comments",
"default": ""
}
},
"additionalProperties": false
},
"naming": {
"type": "object",
"description": "Configuration for naming convention analysis",
"properties": {
"convention": {
"type": "string",
"description": "Naming convention to enforce",
"enum": ["pascal", "camel", "snake", "kebab"],
"default": "pascal"
},
"checkMeaningfulness": {
"type": "boolean",
"description": "Check for meaningful names",
"default": true
},
"aiSuggestions": {
"type": "boolean",
"description": "Use AI for naming suggestions",
"default": true
},
"minimumNameLength": {
"type": "integer",
"description": "Minimum length for meaningful names",
"minimum": 1,
"maximum": 10,
"default": 3
},
"checkAbbreviations": {
"type": "boolean",
"description": "Check for and suggest expanding abbreviations",
"default": true
},
"approvedAbbreviations": {
"type": "array",
"description": "List of approved abbreviations",
"items": {
"type": "string"
},
"default": ["id", "url", "uri", "html", "xml", "json"]
}
},
"additionalProperties": false
},
"exclusions": {
"type": "object",
"description": "Files and patterns to exclude from processing",
"properties": {
"files": {
"type": "array",
"description": "File patterns to exclude",
"items": {
"type": "string"
},
"default": ["*.generated.cs", "*.designer.cs", "AssemblyInfo.cs"]
},
"directories": {
"type": "array",
"description": "Directory patterns to exclude",
"items": {
"type": "string"
},
"default": ["bin/", "obj/", "packages/", ".git/", ".vs/"]
},
"patterns": {
"type": "array",
"description": "General patterns to exclude",
"items": {
"type": "string"
},
"default": ["*.Test.*", "*.Tests.*"]
},
"namespaces": {
"type": "array",
"description": "Namespaces to exclude",
"items": {
"type": "string"
},
"default": []
}
},
"additionalProperties": false
},
"performance": {
"type": "object",
"description": "Performance and resource usage configuration",
"properties": {
"maxConcurrency": {
"type": "integer",
"description": "Maximum number of concurrent operations",
"minimum": 1,
"maximum": 16,
"default": 3
},
"maxFilesPerProject": {
"type": "integer",
"description": "Maximum files to process per project",
"minimum": 10,
"maximum": 1000,
"default": 100
},
"cacheExpirationMinutes": {
"type": "integer",
"description": "Cache expiration time in minutes",
"minimum": 5,
"maximum": 240,
"default": 30
},
"enableMemoryOptimization": {
"type": "boolean",
"description": "Enable memory optimization features",
"default": true
},
"enableProgressReporting": {
"type": "boolean",
"description": "Enable progress reporting during operations",
"default": true
}
},
"additionalProperties": false
},
"git": {
"type": "object",
"description": "Git integration configuration",
"properties": {
"createBranch": {
"type": "boolean",
"description": "Create new branch for refactoring operations",
"default": true
},
"branchPrefix": {
"type": "string",
"description": "Prefix for refactoring branch names",
"default": "refactor/"
},
"autoCommit": {
"type": "boolean",
"description": "Automatically commit changes",
"default": false
},
"commitMessageTemplate": {
"type": "string",
"description": "Template for commit messages",
"default": "Automated refactoring: {operations}"
},
"respectGitIgnore": {
"type": "boolean",
"description": "Respect .gitignore file patterns",
"default": true
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}