Skip to content

Latest commit

 

History

History
807 lines (652 loc) · 15.2 KB

File metadata and controls

807 lines (652 loc) · 15.2 KB

CodeGuard Configuration Reference

Complete reference for all CodeGuard configuration options.

Table of Contents

Configuration Methods

1. VSCode Settings

User Settings (global):

  • File → Preferences → Settings (Ctrl+,)
  • Search for "CodeGuard"
  • Or edit settings.json

Workspace Settings (project-specific):

  • File → Preferences → Settings (Ctrl+,)
  • Switch to "Workspace" tab
  • Or edit .vscode/settings.json

2. Configuration File

Create .codeguardrc.json in workspace root:

{
  "version": "1.0",
  "enabled": true,
  "debounceMs": 500,
  "analyzers": {
    "security": { "enabled": true },
    "performance": { "enabled": true },
    "secrets": { "enabled": true },
    "codeSmells": { "enabled": true }
  }
}

Configuration Priority

Settings are merged in this order (highest priority first):

  1. .codeguardrc.json in workspace root
  2. Workspace settings (.vscode/settings.json)
  3. User settings (settings.json)
  4. Default configuration

Basic Settings

codeguard.enabled

Type: boolean
Default: true
Description: Enable or disable CodeGuard analysis globally.

{
  "codeguard.enabled": true
}

Use cases:

  • Temporarily disable CodeGuard
  • Disable for specific workspaces
  • Toggle via command palette

codeguard.debounceMs

Type: number
Default: 500
Range: 100 - 5000
Description: Delay in milliseconds before triggering analysis after typing stops.

{
  "codeguard.debounceMs": 500
}

Recommendations:

  • Fast typers: Increase to 1000ms
  • Immediate feedback: Decrease to 300ms
  • Large files: Increase to 1000ms
  • Default: 500ms works for most users

codeguard.maxAnalysisTimeMs

Type: number
Default: 5000
Range: 1000 - 30000
Description: Maximum time in milliseconds for analysis before timeout.

{
  "codeguard.maxAnalysisTimeMs": 5000
}

Recommendations:

  • Large files: Increase to 10000ms
  • Fast machines: Keep at 5000ms
  • Slow machines: Increase to 15000ms

Analyzer Settings

Security Analyzer

codeguard.analyzers.security.enabled

Type: boolean
Default: true
Description: Enable security vulnerability detection.

{
  "codeguard.analyzers.security.enabled": true
}

Detects:

  • SQL injection
  • XSS (Cross-Site Scripting)
  • Command injection
  • Path traversal
  • Unsafe deserialization

Security Severity Configuration

Configure severity levels for specific rules:

{
  "analyzers": {
    "security": {
      "enabled": true,
      "severity": {
        "sql-injection": "error",
        "xss": "error",
        "command-injection": "error",
        "path-traversal": "warning",
        "unsafe-deserialization": "warning"
      }
    }
  }
}

Severity levels:

  • error: Red squiggly, blocks (if configured)
  • warning: Yellow squiggly
  • info: Blue squiggly
  • hint: Subtle underline

Performance Analyzer

codeguard.analyzers.performance.enabled

Type: boolean
Default: true
Description: Enable performance issue detection.

{
  "codeguard.analyzers.performance.enabled": true
}

Detects:

  • Nested loops (O(n³)+)
  • Blocking operations in async contexts
  • Memory leaks
  • Inefficient string operations
  • Unnecessary re-computations

Performance Severity Configuration

{
  "analyzers": {
    "performance": {
      "enabled": true,
      "severity": {
        "nested-loops": "warning",
        "blocking-async": "warning",
        "memory-leak": "error",
        "inefficient-string": "info",
        "unnecessary-recompute": "info"
      }
    }
  }
}

Secret Scanner

codeguard.analyzers.secrets.enabled

Type: boolean
Default: true
Description: Enable secret scanning.

{
  "codeguard.analyzers.secrets.enabled": true
}

Detects:

  • AWS access keys
  • API keys
  • Hardcoded passwords
  • JWT tokens
  • Private keys

Secret Scanner Configuration

{
  "analyzers": {
    "secrets": {
      "enabled": true,
      "severity": {
        "aws-access-key": "error",
        "api-key": "warning",
        "password": "error",
        "jwt-token": "warning",
        "private-key": "error"
      },
      "customRules": {
        "minEntropy": 4.0,
        "excludePatterns": [
          "test_key_*",
          "example_*"
        ]
      }
    }
  }
}

Custom rules:

  • minEntropy: Minimum Shannon entropy for detection (0-8)
  • excludePatterns: Patterns to exclude from scanning

Code Smell Detector

codeguard.analyzers.codeSmells.enabled

Type: boolean
Default: true
Description: Enable code smell detection.

{
  "codeguard.analyzers.codeSmells.enabled": true
}

Detects:

  • Long functions
  • High cyclomatic complexity
  • Duplicate code
  • Too many parameters
  • Deep nesting

Code Smell Configuration

{
  "analyzers": {
    "codeSmells": {
      "enabled": true,
      "severity": {
        "long-function": "info",
        "high-complexity": "warning",
        "duplicate-code": "info",
        "too-many-params": "info",
        "deep-nesting": "warning"
      },
      "customRules": {
        "maxFunctionLines": 50,
        "maxComplexity": 10,
        "maxParameters": 5,
        "maxNestingDepth": 4,
        "minDuplicateLines": 6
      }
    }
  }
}

Thresholds:

  • maxFunctionLines: Maximum lines per function (default: 50)
  • maxComplexity: Maximum cyclomatic complexity (default: 10)
  • maxParameters: Maximum function parameters (default: 5)
  • maxNestingDepth: Maximum nesting levels (default: 4)
  • minDuplicateLines: Minimum lines for duplicate detection (default: 6)

AI Settings

codeguard.ai.enabled

Type: boolean
Default: false
Description: Enable AI-powered fix suggestions.

{
  "codeguard.ai.enabled": true
}

codeguard.ai.provider

Type: string
Default: "none"
Options: "openai", "claude", "ollama", "none"
Description: AI service provider for fix suggestions.

{
  "codeguard.ai.provider": "ollama"
}

Providers:

  • ollama: Local AI (free, private)
  • openai: OpenAI GPT (requires API key)
  • claude: Anthropic Claude (requires API key)
  • none: Disable AI features

codeguard.ai.apiKey

Type: string
Default: ""
Description: API key for AI service (OpenAI or Claude).

{
  "codeguard.ai.apiKey": "sk-..."
}

Security:

  • Store in user settings (not workspace)
  • Never commit to version control
  • Use environment variables for CI/CD

codeguard.ai.model

Type: string
Default: ""
Description: AI model to use.

{
  "codeguard.ai.model": "gpt-4"
}

OpenAI models:

  • gpt-4: Most capable (recommended)
  • gpt-4-turbo: Faster, cheaper
  • gpt-3.5-turbo: Fastest, cheapest

Claude models:

  • claude-3-opus-20240229: Most capable
  • claude-3-sonnet-20240229: Balanced (recommended)
  • claude-3-haiku-20240307: Fastest, cheapest

Ollama models:

  • codellama: Meta's Code Llama
  • deepseek-coder: DeepSeek Coder
  • phind-codellama: Phind's Code Llama
  • wizardcoder: WizardCoder

codeguard.ai.maxTokens

Type: number
Default: 1000
Range: 100 - 4000
Description: Maximum tokens for AI responses.

{
  "codeguard.ai.maxTokens": 1000
}

Recommendations:

  • Simple fixes: 500 tokens
  • Complex fixes: 1500 tokens
  • Default: 1000 tokens

codeguard.ai.temperature

Type: number
Default: 0.2
Range: 0.0 - 2.0
Description: AI creativity level (0 = deterministic, 2 = creative).

{
  "codeguard.ai.temperature": 0.2
}

Recommendations:

  • Code fixes: 0.1 - 0.3 (deterministic)
  • Explanations: 0.5 - 0.7 (balanced)
  • Creative suggestions: 0.8 - 1.0 (creative)

codeguard.ai.timeout

Type: number
Default: 3000
Range: 1000 - 30000
Description: Timeout for AI requests in milliseconds.

{
  "codeguard.ai.timeout": 3000
}

Complete AI Configuration Example

{
  "codeguard.ai.enabled": true,
  "codeguard.ai.provider": "openai",
  "codeguard.ai.apiKey": "sk-...",
  "codeguard.ai.model": "gpt-4",
  "codeguard.ai.maxTokens": 1000,
  "codeguard.ai.temperature": 0.2,
  "codeguard.ai.timeout": 3000
}

Cache Settings

codeguard.cache.enabled

Type: boolean
Default: true
Description: Enable result caching for performance.

{
  "codeguard.cache.enabled": true
}

Benefits:

  • Instant results for unchanged files
  • Reduced CPU usage
  • Faster analysis

Disable if:

  • Memory constrained
  • Debugging cache issues
  • Stale results appearing

codeguard.cache.maxMemoryMB

Type: number
Default: 50
Range: 10 - 500
Description: Maximum memory cache size in MB.

{
  "codeguard.cache.maxMemoryMB": 50
}

Recommendations:

  • Low memory: 25MB
  • Normal: 50MB
  • High memory: 100MB

codeguard.cache.maxDiskMB

Type: number
Default: 500
Range: 100 - 5000
Description: Maximum disk cache size in MB.

{
  "codeguard.cache.maxDiskMB": 500
}

Recommendations:

  • Limited disk: 250MB
  • Normal: 500MB
  • Ample disk: 1000MB

codeguard.cache.ttlSeconds

Type: number
Default: 3600
Range: 300 - 86400
Description: Cache entry time-to-live in seconds.

{
  "codeguard.cache.ttlSeconds": 3600
}

Recommendations:

  • Short-lived: 1800 (30 minutes)
  • Normal: 3600 (1 hour)
  • Long-lived: 86400 (24 hours)

Privacy Settings

codeguard.privacy.disableNetworkFeatures

Type: boolean
Default: false
Description: Disable all network features (AI, telemetry, updates).

{
  "codeguard.privacy.disableNetworkFeatures": true
}

Disables:

  • AI fix suggestions
  • Telemetry and error reporting
  • Update checks

Result: CodeGuard runs completely offline.

codeguard.privacy.disableTelemetry

Type: boolean
Default: true
Description: Disable telemetry and error reporting.

{
  "codeguard.privacy.disableTelemetry": true
}

Privacy guarantees:

  • No code transmission
  • No usage tracking
  • No error reporting to external services

Performance Settings

codeguard.incrementalThreshold

Type: number
Default: 5000
Range: 1000 - 50000
Description: File size in lines before incremental analysis activates.

{
  "codeguard.incrementalThreshold": 5000
}

Recommendations:

  • Fast machines: 10000 lines
  • Normal: 5000 lines
  • Slow machines: 2000 lines

codeguard.workerThreads

Type: number
Default: 4
Range: 1 - 16
Description: Number of worker threads for analysis.

{
  "codeguard.workerThreads": 4
}

Recommendations:

  • Single core: 1 thread
  • Dual core: 2 threads
  • Quad core: 4 threads
  • 8+ cores: 8 threads

Advanced Settings

codeguard.logLevel

Type: string
Default: "info"
Options: "error", "warn", "info", "debug"
Description: Logging level for Output panel.

{
  "codeguard.logLevel": "debug"
}

Levels:

  • error: Only errors
  • warn: Errors and warnings
  • info: Normal operation (default)
  • debug: Verbose logging

codeguard.excludePatterns

Type: array
Default: []
Description: Glob patterns for files to exclude from analysis.

{
  "codeguard.excludePatterns": [
    "**/node_modules/**",
    "**/dist/**",
    "**/*.min.js"
  ]
}

codeguard.includePatterns

Type: array
Default: []
Description: Glob patterns for files to include (overrides exclude).

{
  "codeguard.includePatterns": [
    "src/**/*.ts",
    "lib/**/*.js"
  ]
}

Configuration Examples

Minimal Configuration

{
  "codeguard.enabled": true
}

Privacy-Focused Configuration

{
  "codeguard.enabled": true,
  "codeguard.ai.enabled": false,
  "codeguard.privacy.disableNetworkFeatures": true,
  "codeguard.privacy.disableTelemetry": true
}

Performance-Optimized Configuration

{
  "codeguard.enabled": true,
  "codeguard.debounceMs": 300,
  "codeguard.cache.enabled": true,
  "codeguard.cache.maxMemoryMB": 100,
  "codeguard.workerThreads": 8
}

AI-Powered Configuration (OpenAI)

{
  "codeguard.enabled": true,
  "codeguard.ai.enabled": true,
  "codeguard.ai.provider": "openai",
  "codeguard.ai.apiKey": "sk-...",
  "codeguard.ai.model": "gpt-4",
  "codeguard.ai.maxTokens": 1000,
  "codeguard.ai.temperature": 0.2
}

AI-Powered Configuration (Local Ollama)

{
  "codeguard.enabled": true,
  "codeguard.ai.enabled": true,
  "codeguard.ai.provider": "ollama",
  "codeguard.ai.model": "codellama"
}

Team Configuration (.codeguardrc.json)

{
  "version": "1.0",
  "enabled": true,
  "debounceMs": 500,
  "analyzers": {
    "security": {
      "enabled": true,
      "severity": {
        "sql-injection": "error",
        "xss": "error",
        "command-injection": "error"
      }
    },
    "performance": {
      "enabled": true,
      "severity": {
        "nested-loops": "warning",
        "blocking-async": "warning",
        "memory-leak": "error"
      }
    },
    "secrets": {
      "enabled": true,
      "severity": {
        "aws-access-key": "error",
        "api-key": "warning",
        "password": "error"
      }
    },
    "codeSmells": {
      "enabled": true,
      "severity": {
        "long-function": "warning",
        "high-complexity": "warning",
        "too-many-params": "info"
      },
      "customRules": {
        "maxFunctionLines": 100,
        "maxComplexity": 15,
        "maxParameters": 4
      }
    }
  },
  "cache": {
    "enabled": true,
    "maxMemoryMB": 50,
    "maxDiskMB": 500
  },
  "privacy": {
    "disableNetworkFeatures": false,
    "disableTelemetry": true
  }
}

Security-Focused Configuration

{
  "codeguard.enabled": true,
  "codeguard.analyzers.security.enabled": true,
  "codeguard.analyzers.secrets.enabled": true,
  "codeguard.analyzers.performance.enabled": false,
  "codeguard.analyzers.codeSmells.enabled": false,
  "analyzers": {
    "security": {
      "severity": {
        "sql-injection": "error",
        "xss": "error",
        "command-injection": "error",
        "path-traversal": "error",
        "unsafe-deserialization": "error"
      }
    },
    "secrets": {
      "severity": {
        "aws-access-key": "error",
        "api-key": "error",
        "password": "error",
        "jwt-token": "error",
        "private-key": "error"
      }
    }
  }
}

Need help? See TROUBLESHOOTING.md or open an issue on GitHub.