Flexygo Core VS Code Extension
A Visual Studio Code extension for managing Flexygo Core product operations directly from your development environment.
Features
This extension provides two main commands for Flexygo Core product management:
1. Generate NuGets (flexygo.generateNugets)
- Generates custom NuGet packages for your Flexygo product
- Prompts for semantic version number (e.g.,
1.2.3 or 1.2.3-beta.1)
- Validates version format before execution
- Automatic solution validation (checks for *.Backend, *.Frontend, *.Conf.Database projects)
- Integrated with Flexygo product-management tool
- Reference: Flexygo Documentation - Generate NuGet
2. Update Product (flexygo.updateProduct)
- Updates your Flexygo product to the latest version
- Confirmation dialog before execution
- Automatic solution validation (checks for *.Backend, *.Frontend, *.Conf.Database projects)
- Integrated with Flexygo product-management tool
- Reference: Flexygo Documentation - Update Product
How to Access Commands
The commands are accessible from three convenient locations:
1. Editor Title Bar (⭐ Recommended - Most Visual)
When you open a .sln (solution) file, you'll see two icon buttons in the editor title bar:
- 📦 Package icon - Generate NuGets
- ⬇️ Arrow Down icon - Update Product
Simply click the icon for the action you want to perform!
2. Command Palette (Best for Keyboard Users)
Press Ctrl+Shift+P (Windows/Linux) or Cmd+Shift+P (Mac), then type:
Flexygo: Generate NuGets
Flexygo: Update Product
Right-click on any file or folder in the Explorer view to see Flexygo commands
Prerequisites
Before using this extension, ensure you have:
- .NET SDK (for running .NET Global Tools)
- Visual Studio Code (v1.75.0 or higher)
- A Flexygo solution (open the solution folder in VS Code)
Note: The extension will automatically install or update Flexygo.Tools.Product to the latest version when you run commands, so you don't need to install it manually.
For Extension Development
- Node.js (v18 or higher)
- TypeScript (installed automatically with dev dependencies)
Installation
For Development/Testing
Clone or navigate to this repository:
cd "C:\Codigo GIT\Flexygo\flexygo-core-vscode-extension"
Install dependencies:
npm install
Compile the TypeScript code:
npm run compile
Press F5 in VS Code to launch the Extension Development Host
For Production Use
Package the extension as VSIX:
npm run package
Install the generated .vsix file:
- In VS Code, go to Extensions view (
Ctrl+Shift+X)
- Click the
... menu at the top
- Select "Install from VSIX..."
- Choose the generated
flexygo-core-vscode-extension-1.0.0.vsix file
Development
Project Structure
flexygo-core-vscode-extension/
├── src/
│ ├── extension.ts # Main extension entry point
│ ├── commands/
│ │ ├── generateNugets.ts # Generate NuGets command implementation
│ │ └── updateProduct.ts # Update Product command implementation
│ └── utils/
│ └── processExecutor.ts # Utility for executing external processes
├── out/ # Compiled JavaScript output
├── .vscode/
│ ├── launch.json # Debug configuration
│ └── tasks.json # Build tasks
├── package.json # Extension manifest
├── tsconfig.json # TypeScript configuration
└── README.md # This file
Running and Debugging
Open the project in VS Code:
code "C:\Codigo GIT\Flexygo\flexygo-core-vscode-extension"
Press F5 to start debugging
- This will compile the code and launch a new Extension Development Host window
- Set breakpoints in the TypeScript source files as needed
In the Extension Development Host:
- Open the Command Palette (
Ctrl+Shift+P)
- Run the Flexygo commands
- View output in the "Flexygo Core" output channel
Available NPM Scripts
npm run compile - Compile TypeScript to JavaScript
npm run watch - Watch for changes and compile automatically
npm run package - Create a .vsix package for distribution
npm run lint - Run ESLint on the source code
Making Changes
After modifying the source code:
- The watch task will automatically recompile (if running)
- Press
Ctrl+R in the Extension Development Host to reload
- Or press
F5 again to restart the debug session
Configuration
How It Works
The extension uses the flexygo-product .NET Global Tool to execute operations:
Automatic Tool Management:
Generate NuGets:
flexygo-product nuget -s "SOLUTION_PATH" -v VERSION -c Release
- Uses the currently open workspace folder as the solution path
- Prompts you for the version number
- Uses Release configuration by default
Update Product:
flexygo-product update -s "SOLUTION_PATH"
- Uses the currently open workspace folder as the solution path
- Updates to the latest available Flexygo version (no version specified)
Important Notes
- Open Your Solution: Always open your Flexygo solution folder in VS Code before running commands
- Valid Flexygo Solution: The extension validates that your solution contains the required Flexygo project structure (*.Backend, *.Frontend, *.Conf.Database)
- .NET SDK Required: Ensure .NET SDK is installed for the tool management to work
- Automatic Updates: The extension automatically ensures the tool is up to date before each operation
- Internet Connection: First-time installation or updates require internet connectivity
- Working Directory: The extension uses the first workspace folder as the solution path
- Output Logging: All commands log detailed output to the "Flexygo Core" output channel
Output and Logging
All command execution is logged to the Flexygo Core output channel:
- View → Output → Select "Flexygo Core" from the dropdown
- Shows command execution, stdout, stderr, and exit codes
- Helps with troubleshooting and debugging
Error Handling
The extension provides comprehensive error handling:
- Validation: Version numbers are validated before execution
- Progress notifications: Visual feedback during long-running operations
- Error messages: Clear, actionable error notifications
- Detailed logging: Full output in the Flexygo Core channel
- Exit codes: Proper handling of process exit codes
Troubleshooting
Extension doesn't activate
- Check VS Code version (minimum 1.75.0)
- Run
npm install to ensure dependencies are installed
- Check the Output panel (Help → Toggle Developer Tools → Console) for errors
Commands not visible
- Reload VS Code window (
Ctrl+R in Extension Development Host)
- Check that the extension is activated (look for "Flexygo Core extension is ready!" notification)
Process execution fails
"No workspace folder open" error
- Open your Flexygo solution folder in VS Code (File → Open Folder)
- The solution folder should contain your .sln file
- Verify installation:
dotnet tool list --global | findstr Flexygo
- Check .NET SDK is installed:
dotnet --version
- Restart VS Code after installing the tool
Contributing
When contributing to this extension:
- Follow the existing code structure
- Maintain TypeScript strict mode compliance
- Add appropriate error handling
- Update this README if adding new features
- Test thoroughly in the Extension Development Host
References
License
Copyright © 2026 Flexygo. All rights reserved.
Version History
1.0.0 (Initial Release)
- Generate NuGets command with version validation
- Update Product command with confirmation dialog
- Integrated output channel logging
- Error handling and progress notifications
- Context menu integration