{ "$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 }