resx-generator/README_NEW.md
Daniel Gradman-Svendsen c28be86f36 initial
2025-07-08 07:45:58 +02:00

167 lines
5.2 KiB
Markdown

# RESX Designer Auto-Generator
A VS Code extension that automatically regenerates Designer.cs files when RESX resource files are saved.
## Features
- **Automatic Regeneration**: Watches for changes to .resx files and automatically regenerates corresponding Designer.cs files
- **Smart Detection**: Automatically finds ResGen.exe on your system across different .NET SDK and Visual Studio installations
- **Debounced Updates**: Prevents excessive regeneration during rapid file changes
- **Status Updates**: Shows progress in the status bar with visual indicators
- **Configurable**: Customizable settings for different project needs
- **Cross-Platform**: Works on Windows, macOS, and Linux (where .NET SDK is available)
## Requirements
- .NET SDK or Visual Studio installed (for ResGen.exe)
- VS Code 1.101.0 or higher
## Quick Start
1. Install the extension
2. Open a workspace containing .resx files
3. Edit and save a .resx file
4. Watch as the Designer.cs file is automatically regenerated!
## Configuration
The extension can be configured through VS Code settings:
### `resxDesignerAutoGenerator.enabled`
- **Type**: `boolean`
- **Default**: `true`
- **Description**: Enable/disable automatic regeneration
### `resxDesignerAutoGenerator.showNotifications`
- **Type**: `boolean`
- **Default**: `true`
- **Description**: Show success/error notifications
### `resxDesignerAutoGenerator.debounceDelay`
- **Type**: `number`
- **Default**: `2000`
- **Range**: 500-10000
- **Description**: Delay in milliseconds before regenerating after a file change
### `resxDesignerAutoGenerator.resGenPaths`
- **Type**: `array`
- **Default**: `[]`
- **Description**: Custom paths to ResGen.exe (auto-detected if empty)
### `resxDesignerAutoGenerator.watchPatterns`
- **Type**: `array`
- **Default**: `["**/*.resx"]`
- **Description**: Glob patterns for watching .resx files
## Commands
### `RESX Designer: Regenerate Designer.cs`
Manually regenerate the Designer.cs file for a selected .resx file. Available in:
- Command Palette (Ctrl+Shift+P)
- Explorer context menu (right-click on .resx files)
### `RESX Designer: Show Output`
Show the extension's output channel for debugging and monitoring.
### `RESX Designer: Reload Configuration`
Reload the extension configuration and restart file watchers.
## How It Works
1. **File Watching**: The extension monitors .resx files in your workspace using VS Code's FileSystemWatcher API
2. **Debouncing**: When a .resx file changes, the extension waits for the configured delay to avoid rapid-fire regenerations
3. **ResGen Detection**: Automatically finds ResGen.exe in common locations:
- .NET Framework SDK locations
- Visual Studio installations (2019, 2022)
- System PATH
4. **Namespace Detection**: Analyzes your project structure to determine the correct namespace for generated classes
5. **Code Generation**: Executes ResGen.exe with the appropriate parameters to generate strongly-typed Designer.cs files
6. **Cleanup**: Removes temporary .resources files that ResGen creates
## Supported File Patterns
By default, the extension watches for files matching:
- `**/*.resx` - All .resx files in the workspace
You can customize this in the settings to watch specific folders or file patterns.
## Troubleshooting
### ResGen.exe Not Found
If you see this error, try:
1. Install the .NET SDK from [https://dotnet.microsoft.com/download](https://dotnet.microsoft.com/download)
2. Install Visual Studio with .NET development workload
3. Manually specify the path in `resxDesignerAutoGenerator.resGenPaths` setting
### Designer.cs Not Generated
1. Check the Output panel (View → Output → RESX Designer Auto-Generator)
2. Ensure the .resx file is valid XML
3. Verify write permissions in the project directory
4. Try the manual regenerate command
### Performance Issues
1. Adjust the `debounceDelay` setting to a higher value
2. Use more specific `watchPatterns` to exclude unnecessary files
3. Add large folders to VS Code's `files.watcherExclude` setting
## Example Configuration
```json
{
"resxDesignerAutoGenerator.enabled": true,
"resxDesignerAutoGenerator.showNotifications": false,
"resxDesignerAutoGenerator.debounceDelay": 3000,
"resxDesignerAutoGenerator.watchPatterns": [
"**/Resources/**/*.resx",
"**/Properties/**/*.resx"
]
}
```
## Installation
### From VS Code Marketplace
1. Open VS Code
2. Go to Extensions (Ctrl+Shift+X)
3. Search for "RESX Designer Auto-Generator"
4. Click Install
### From VSIX File
1. Download the .vsix file
2. Open VS Code
3. Press Ctrl+Shift+P
4. Type "Extensions: Install from VSIX"
5. Select the downloaded .vsix file
## Development
To contribute or modify this extension:
```bash
git clone <repository-url>
cd resx-designer-auto-generator
npm install
code .
```
Press F5 to launch a new VS Code window with the extension loaded for testing.
## License
This extension is released under the MIT License. See LICENSE file for details.
## Support
- Report issues on [GitHub Issues](https://github.com/your-username/resx-designer-auto-generator/issues)
- Feature requests welcome!
## Changelog
### 1.0.0
- Initial release
- Automatic .resx file watching
- Designer.cs regeneration
- Configurable settings
- Status bar integration
- Command palette integration