Module utils

Module utils 

Source
Expand description

§Utility Functions and Helpers

This module provides various utility functions and helpers used throughout VTCode, including configuration management, safety utilities, and common operations.

§Modules Overview

§Configuration Management (dot_config)

  • User Preferences: Theme settings, UI preferences, cache configuration
  • Provider Configuration: LLM provider settings and API keys
  • Dotfile Management: .vtcode directory and configuration files

§Safety Utilities (safety)

  • Path Validation: Workspace boundary checking
  • Command Sanitization: Safe command execution
  • Input Validation: User input sanitization

§ANSI and Colors (ansi, colors)

  • Terminal Colors: ANSI color codes and styling
  • Color Management: Theme support and color schemes
  • Cross-platform: Works on different terminal types

§Git Integration (vtcodegitignore)

  • Gitignore Management: Automatic .vtcodegitignore creation
  • Pattern Matching: File exclusion patterns
  • Workspace Safety: Prevents accidental file operations

§Basic Usage Examples

§Configuration Management

use vtcode_core::utils::dot_config::{load_user_config, save_user_config, UserPreferences};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Load user configuration
    let config = load_user_config().await?;

    // Modify preferences
    let mut prefs = config.preferences;
    prefs.theme = "dark".to_string();

    // Save changes
    save_user_config(&prefs).await?;

    Ok(())
}

§Path Safety

use vtcode_core::utils::safety::validate_workspace_path;
use std::path::PathBuf;

let workspace = PathBuf::from("/home/user/project");
let file_path = PathBuf::from("src/main.rs");

// Validate path is within workspace
match validate_workspace_path(&workspace, &file_path) {
    Ok(valid_path) => println!("Safe path: {}", valid_path.display()),
    Err(e) => eprintln!("Unsafe path: {}", e),
}

§ANSI Colors

use vtcode_core::utils::ansi::{colorize, Color};

let message = "Hello, World!";
let colored = colorize(message, Color::Green);
println!("{}", colored); // Prints green text

// Or use styling functions
let bold_text = vtcode_core::utils::ansi::bold("Important message");
let red_error = colorize("Error occurred", Color::Red);

§Git Integration

use vtcode_core::utils::vtcodegitignore::initialize_vtcode_gitignore;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let workspace = std::env::current_dir()?;

    // Initialize .vtcodegitignore
    initialize_vtcode_gitignore(&workspace).await?;

    println!("Git integration initialized");
    Ok(())
}

Modules§

ansi
colors
Color utilities for the VTCode
dot_config
Dot folder configuration and cache management
safety
Safety checks for VTCode operations
session_archive
transcript
utils
Utility functions for the VTCode agent
vtcodegitignore