Anvil - Dev Environment Manager
简体中文 | English
A powerful visual configuration manager for development environments
Features •
Installation •
Usage •
Configuration
Features
Anvil simplifies project configuration in VS Code with an intuitive visual interface.
C/C++ Project Support
Visual Configuration UI - No more manual JSON editing. Configure your environment through a modern, user-friendly interface.
Advanced CMake Integration
- Automatically parses
CMakeLists.txt to extract include paths, defines, and compiler options
- Multi-target support: handles projects with multiple
add_executable and add_library targets
- Recursive variable resolution:
${PROJECT_NAME}, ${CMAKE_SOURCE_DIR}, nested variables
- Cross-platform path handling: Windows paths with spaces/parentheses (e.g.,
C:/Program Files (x86)/...)
- Supports
include_directories(), target_include_directories(), add_definitions(), target_compile_definitions()
Multi-Target Debug Configurations - Automatically generates separate debug configurations for each executable target in your CMake project.
Multiple Configurations - Manage different build configurations (Debug, Release, Cross-compile) in one place.
Toolchain Management - Easy switching between IntelliSense providers (Microsoft C++ / clangd) and debuggers (GDB, LLDB, CodeLLDB, MSVC).
clangd Support - Built-in clangd configuration with compile flags, include paths, diagnostics, ClangTidy, and inlay hints.
Python Project Support
Virtual Environment Detection - Automatically detects venv, conda, poetry, pipenv, and pyenv environments.
Framework Detection - Detects Flask, Django, FastAPI and generates appropriate debug configurations.
debugpy Integration - Full support for Python debugging with debugpy.
Code Runner Integration - Generates Code Runner settings for quick script execution.
VS Code Extension Project Support
Auto Detection - Automatically detects VS Code extension projects (checks for @types/vscode or engines.vscode).
One-Click Setup - Generate launch.json and tasks.json with standard configurations like "Run Extension" and "npm: watch".
Code Runner Integration
Auto Configuration - Automatically generates Code Runner executorMap settings when saving configurations.
Multi-Language Support - Generates correct run commands for C, C++, and Python.
Compiler Sync - Uses configured compiler paths and language standards.
General Features
Debug Configuration - Generate and manage launch.json and tasks.json for seamless debugging.
File Picker - All path inputs support file picker buttons for easy browsing and selection.
Cross-Platform - Works on Windows, Linux, and macOS.
Multi-Language UI - Supports English and Chinese, automatically follows VS Code display language.
Installation
From VS Code Marketplace
- Open VS Code
- Go to Extensions (Ctrl+Shift+X)
- Search for "Anvil"
- Click Install
From VSIX
- Download the
.vsix file
- In VS Code, go to Extensions
- Click "..." menu > "Install from VSIX..."
- Select the downloaded file
Usage
Open Configuration Panel
- Press
Ctrl+Shift+P (or Cmd+Shift+P on macOS)
- Type "Anvil: Open Configuration Panel"
- Or right-click on a folder in Explorer and select "Anvil: Open Configuration Panel"
Switch Project Type
Use the dropdown at the top of the configuration panel to switch between:
- C/C++ - Shows C/C++ related configurations
- Python - Shows Python interpreter and debug configurations
- VS Code Extension - Shows VS Code extension development configurations
Import from CMake (C/C++ Projects)
Make sure you have run CMake configuration first:
cmake -B build -S . -G "MinGW Makefiles" -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
Click the "Import from CMake" button in Anvil
Your configuration will be automatically populated from CMakeCache.txt
Generate VS Code Extension Config
- Switch project type to "VS Code Extension"
- Click the "Generate Config" button
- launch.json and tasks.json will be automatically generated
Configuration
Supported Settings
| Setting |
Description |
Default |
anvil.defaultCppStandard |
Default C++ standard |
c++17 |
anvil.defaultCStandard |
Default C standard |
c17 |
anvil.autoDetectCompiler |
Auto-detect compiler path |
true |
anvil.additionalIncludePaths |
Additional include paths |
[] |
anvil.language |
UI language (auto/en/zh) |
auto |
Generated Files
Anvil generates and manages the following configuration files:
.vscode/c_cpp_properties.json - IntelliSense configuration (C/C++ projects)
.vscode/launch.json - Debug configuration
.vscode/tasks.json - Build tasks
.vscode/settings.json - Workspace settings (VS Code extension projects)
.clangd - clangd configuration (if using clangd)
Requirements
Roadmap
- [x] VS Code extension project support
- [x] Python environment configuration
- [x] Code Runner integration
- [x] Multi-target CMake project support
- [x] Advanced CMake variable resolution
- [x] Cross-platform path handling
- [ ] Rust toolchain support
- [ ] Go environment support
- [ ] Project templates
- [ ] Configuration profiles export/import
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT License - see LICENSE for details.
Made with ❤️ by homuraLan
| |