Angular Assist - Environment Automation

September 6, 2025 ยท View on GitHub

Version License VS Code

VS Code extension to fully automate Angular development environments

A robust solution that streamlines setup and management of multiple Angular projects in corporate environments by providing smart automation, shared scripts, and standardized configurations.


๐ŸŽฏ Why this extension?

The problem

In corporate environments with multiple Angular projects running separately, developers face:

  • Repetitive setup of tasks, debug, and scripts per project
  • Inconsistent configurations between projects and developers
  • Time wasted configuring the environment for each new project/workspace
  • Difficulty standardizing development processes
  • Scattered, non-reusable scripts across projects

The solution

Angular Assist fully automates environment setup by creating:

  • โœ… A single configuration that adapts to any Angular project
  • โœ… Reusable global scripts shared across all projects
  • โœ… Automatic standardization of tasks, debug, and keybindings
  • โœ… Smart detection of existing configurations
  • โœ… An optimized workflow for development and debugging

๐Ÿš€ Features

๐Ÿ” Smart detection

  • Automatically detects Angular projects on workspace open
  • Dynamically reads angular.json to infer defaults
  • Validates dependencies and project structure

โšก Instant setup

  • Complete setup in under 30 seconds
  • Auto-configures tasks, launch configs, and keybindings
  • Optimized PowerShell scripts for development

๐Ÿ”„ Shared scripts

  • Reusable global scripts shared across all projects
  • Smart management of Node.js processes
  • Automatic cleanup of cache and temporary data

๐ŸŽ›๏ธ Full control

  • VS Code Tasks integrated with handy shortcuts
  • Chrome debugging auto-configured
  • Restart projects without losing context

๐ŸŒ Language support

  • Default language: English (en-US)
  • Available languages: English (en-US) and Portuguese (pt-BR)
  • Change via setting angular-assist.language or Command Palette: "Angular Assist: Change Language"

๐Ÿ“ฅ Installation

  1. Download the extension:
  • Go to the releases page
  • Download the angular-assist-automation-1.0.2.vsix from the latest release
  1. Install in VS Code:
code --install-extension angular-assist-automation-1.0.2.vsix

Or:

  • Open VS Code
  • Press Ctrl+Shift+P
  • Type: Extensions: Install from VSIX...
  • Select the downloaded .vsix
  • Reload if prompted

๐Ÿ”ง Option 2: Local Build

# 1. Clone the repo
git clone https://github.com/ViniciusSilvaSouza/angular-assist-automation.git
cd angular-assist-automation

# 2. Install dependencies
npm install

# 3. Compile the project
npm run compile

# 4. Package VSIX
npm run package

# 5. Install the generated extension
code --install-extension angular-assist-automation-1.0.2.vsix

โœ… Verify Installation

After installing:

  1. Open an Angular project in VS Code
  2. The extension should auto-detect and offer to configure your environment
  3. Or use Ctrl+Shift+P โ†’ Angular Assist: Configure Automation

Tips:

  • Keep the .vsix file for future reinstalls
  • Works offline after installation
  • To update, download the new version and reinstall the .vsix
  • Check the releases for updates

๐ŸŽฎ How to Use

๐Ÿ”ง Automatic Setup

  1. Open any Angular project in VS Code
  2. Accept the configuration prompt when detected
  3. Provide the requested info (name, port, route)
  4. Done! Your environment is ready

๐ŸŽฏ Manual Setup

Ctrl+Shift+P โ†’ "Angular Assist: Configure Automation"

โŒจ๏ธ Keybindings

  • F5 - Start project (with debug)
  • Ctrl+Shift+F5 - Restart project
  • Ctrl+Alt+S - Stop all processes

๐Ÿ“‹ Configuration

During setup, you'll configure:

FieldDescriptionExampleDefault
Project nameUnique identifiermy-angular-project-
PortDev server port42004200
Debug portChrome debug port92229222
RouteApplication base route/studentsauto-detected

Tip: The route is auto-read from angular.json when available


๐Ÿ“ Created Structure

๐Ÿ  In the project (workspace)

.vscode/
โ”œโ”€โ”€ tasks.json            # 6 optimized tasks for Angular
โ”œโ”€โ”€ launch.json           # Chrome debug configuration
โ”œโ”€โ”€ keybindings.json      # Custom keybindings
โ””โ”€โ”€ settings.json         # Project-specific settings

๐ŸŒ Global (system)

%APPDATA%/Code/User/globalStorage/angular-assist-automation/
โ””โ”€โ”€ scripts/              # Shared PowerShell scripts
  โ”œโ”€โ”€ start-projeto-vscode.ps1    # Start with integrated debug
  โ”œโ”€โ”€ start-projeto.ps1           # Standalone start
  โ”œโ”€โ”€ restart-projeto.ps1         # Smart restart
  โ”œโ”€โ”€ stop-all-processes.ps1      # Complete stop and cleanup
  โ””โ”€โ”€ clean-chrome.ps1            # Chrome data cleanup

๐Ÿ› ๏ธ Available Tasks

TaskShortcutDescription
Start ProjectF5Starts the project with automatic debugging
๐Ÿ”„ Restart ProjectCtrl+Shift+F5Restart without losing context
๐Ÿ›‘ Stop All ProcessesCtrl+Alt+SStop all related processes
๐ŸŒ Clean Chrome-Clean project-specific data
ng serve-Standard Angular CLI command
ng build-Production build

โš™๏ธ Settings

๐ŸŒ Extension Language

Default language is English. Change it:

// settings.json (User or Workspace)
{
  "angular-assist.language": "en-US" // or "pt-BR"
}

Or via command palette:

Ctrl+Shift+P โ†’ Angular Assist: Change Language

๐Ÿ“ settings.json

{
  "angular-assist.automation": {
    "my-project": {
      "projectName": "my-project",
      "port": "4200",
      "debugPort": "9222", 
      "route": "/students",
      "workspacePath": "C:\\Dev\\my-project",
      "globalScriptsPath": "C:\\Users\\user\\AppData\\...\\scripts"
    }
  }
}

๐ŸŽ›๏ธ tasks.json (generated)

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Start Project - my-project (Angular Assist)",
      "type": "shell",
      "command": "powershell.exe",
      "args": ["..."],
      "group": { "kind": "build", "isDefault": true },
      "isBackground": true
    }
    // ... other tasks
  ]
}

๐Ÿ—๏ธ Architecture

๐Ÿ“ฆ Code structure

src/
โ”œโ”€โ”€ commands/                 # Extension commands
โ”‚   โ”œโ”€โ”€ detectProject.ts      # Angular project detection
โ”‚   โ””โ”€โ”€ setupAutomation.ts    # Automatic setup
โ”œโ”€โ”€ constants/                # Constants and texts
โ”‚   โ””โ”€โ”€ texts.ts              # Central text system (i18n)
โ”œโ”€โ”€ templates/                # Config templates
โ”‚   โ”œโ”€โ”€ tasks.json            # Tasks template
โ”‚   โ”œโ”€โ”€ launch.json           # Debug template
โ”‚   โ”œโ”€โ”€ settings.json         # Settings template
โ”‚   โ”œโ”€โ”€ keybindings.json      # Keybindings template
โ”‚   โ””โ”€โ”€ scripts/              # PowerShell scripts
โ””โ”€โ”€ types/                    # TypeScript definitions
  โ”œโ”€โ”€ index.ts              # Central re-exports
  โ”œโ”€โ”€ project.ts            # Project types
  โ”œโ”€โ”€ vscode.ts             # VS Code types
  โ””โ”€โ”€ packageAndAngular.ts  # package.json/angular.json types

๐Ÿงฉ Text system

// Texts organized by category
TEXTS.ERRORS.PROJECT_NOT_FOUND
TEXTS.PROMPTS.PROJECT_NAME
TEXTS.MESSAGES.SETUP_COMPLETE
TEXTS.TASKS.START_PROJECT

// Helper functions
buildText.setupComplete(projectName)
buildText.startingProject(projectName) 

๐Ÿ”„ Setup flow

  1. Detection โ†’ Check if itโ€™s an Angular project
  2. Validation โ†’ Analyze package.json and angular.json
  3. Input โ†’ Ask user for project info
  4. Generation โ†’ Create configuration files
  5. Installation โ†’ Copy global scripts
  6. Finalization โ†’ Configure workspace

๐Ÿ”ง Development

๐Ÿ“‹ Prerequisites

  • Node.js 18+
  • npm 8+
  • VS Code 1.103.0+
  • TypeScript 5.0+
  • PowerShell (Windows)

๐Ÿš€ Dev setup

# 1. Clone the repository
git clone https://github.com/ViniciusSilvaSouza/angular-assist-automation.git
cd angular-assist-automation

# 2. Install dependencies
npm install

# 3. Compile in watch mode
npm run watch

# 4. Test the extension
# Press F5 in VS Code to open the development host

๐Ÿ” Available scripts

npm run compile       # Compile TypeScript
npm run watch         # Watch mode
npm run lint          # Lint with ESLint
npm run package       # Generate .vsix
npm run publish       # Publish to marketplace

๐Ÿงช Testing

# Test with a local Angular project
# 1. Launch the extension (F5)
# 2. Open an Angular project in the new window
# 3. Exercise the features

๐Ÿ“ฆ Creating Releases

# To create a new release:
# 1. Update the version in package.json
# 2. Compile and generate the VSIX
npm run compile
npm run package

# 3. Create a Git tag
git tag v1.0.2
git push origin v1.0.2

# 4. Create a GitHub release with the .vsix

๐Ÿค Contributing

๐ŸŽฏ How to contribute

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'feat: add AmazingFeature')
  4. Push the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ“ Guidelines

  • Follow the existing coding style
  • Add tests for new features
  • Update docs when necessary
  • Use semantic commits (feat:, fix:, docs:)

๐Ÿ› Reporting bugs

Use GitHub Issues with:

  • Clear problem description
  • Steps to reproduce
  • VS Code and extension version
  • Error logs (if any)

๐Ÿ“Š Roadmap

๐ŸŽฏ v1.0.2

  • Publish on VS Code Marketplace
  • Documentation improvements based on feedback
  • Bug fixes reported by the community

๐Ÿš€ v1.1.0 (Near future)

  • Multi-root workspace support
  • Per-project settings via UI
  • Customizable project templates
  • Git hooks integration

๐ŸŒŸ v1.2.0 (Future)

  • Support for other frameworks (React, Vue)
  • Project status dashboard
  • Development metrics
  • Cloud sync

๐Ÿ’ก Ideas under consideration

  • Docker support
  • CI/CD integration
  • Plugins for other editors
  • Collaborative mode

๐Ÿ“ Changelog

v1.0.0 (2025-09-03)

โœจ Features

  • โœ… Auto-detection of Angular projects
  • โœ… Complete VS Code environment setup
  • โœ… Optimized and reusable PowerShell scripts
  • โœ… Centralized text system
  • โœ… Dynamic configuration reading
  • โœ… Automatic route normalization
  • โœ… 6 preconfigured tasks
  • โœ… Integrated Chrome debug
  • โœ… Custom keyboard shortcuts

๐Ÿ—๏ธ Architecture

  • โœ… Modular TypeScript structure
  • โœ… Organized type system
  • โœ… Reusable templates
  • โœ… Centralized constants

๐Ÿ›ก๏ธ License

This project is licensed under the MIT License โ€” see LICENSE for details.


๐Ÿ‘จโ€๐Ÿ’ป Author

Vinรญcius Silva Souza


๐Ÿ™ Acknowledgements

  • Angular community for the inspiration
  • VS Code team for the extensible APIs
  • Colleagues for valuable feedback

โญ If this project helped you, please consider giving it a star!

โฌ† Back to top