-
Notifications
You must be signed in to change notification settings - Fork 0
Merge dev into master for v1.1.0 #7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
- Updated package.json to change the main entry point from `src/extension.js` to `dist/extension.js`. - Enhanced the configuration options for responsive image sizes and paths. - Added TypeScript support with a new tsconfig.json file. - Replaced the JavaScript implementation in `src/extension.js` with TypeScript in `src/extension.ts`. - Modularized the code by separating commands, prompts, images, and provider functionalities into their respective files. - Implemented TypeScript types for better type safety and code clarity. - Removed the old JavaScript files and replaced them with compiled TypeScript files in the `dist` directory. - Updated ESLint configuration to support ES2022 features and TypeScript.
… improvements, and updated changelog - Added new explorer context menu for image files.
…er project structure
fix: improve error handling in commands and image processing - Changed error handling to use `unknown` type for better type safety - Updated error messages to ensure consistent formatting refactor: clean up unused imports and improve code readability - Removed unnecessary imports in extension.ts and provider.ts - Simplified variable declarations in commands.ts chore: add ESLint configuration for TypeScript and JavaScript - Introduced eslint.config.mts for better linting support - Updated ESLint and TypeScript dependencies in package.json
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR migrates the extension from JavaScript to TypeScript, introducing a modular architecture that improves code maintainability and type safety. The refactor splits the monolithic extension.js file into focused modules (commands.ts, prompts.ts, images.ts, provider.ts) while adding new UI features including context menu integration and editor title bar actions for generating responsive images directly from image files.
Key changes:
- Complete TypeScript migration with modular file structure
- New context menu options for explorer and editor title bar
- Enhanced error handling and reporting throughout the codebase
Reviewed Changes
Copilot reviewed 13 out of 20 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| src/extension.ts | New TypeScript entry point replacing the monolithic JavaScript file |
| src/commands.ts | Extracted command registration and logic with improved error handling |
| src/prompts.ts | Isolated user prompt functions for inputs (files, directories, sizes) |
| src/images.ts | Dedicated module for image processing with structured error tracking |
| src/provider.ts | Separated completion provider logic with dynamic language support |
| package.json | Updated for TypeScript build, added context menus, icons, and new dependencies |
| eslint.config.mts | Modern TypeScript-aware ESLint configuration |
| src/extension.js, extension.js | Removed legacy JavaScript implementation files |
| config/eslint.config.mjs, config/jsconfig.json | Removed outdated configuration files |
| CHANGELOG.md | Documented v1.1.0 changes and features |
| TODO.md | Added tracking for planned improvements |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This pull request introduces significant improvements and refactoring to the "responsive-image-generator" extension, focusing on code maintainability, user experience enhancements, and better project structure. The extension now features a modular TypeScript codebase, new UI integrations, improved error handling, and updated documentation. Below are the key changes grouped by theme:
Major Refactor and Codebase Improvements:
Migrated the main extension logic from a monolithic
extension.jsfile to a modular TypeScript structure, introducing new files such assrc/commands.tsfor command registration and logic. This enhances maintainability and paves the way for future features. [1] [2]Replaced and improved ESLint configuration, removing legacy config files (
config/eslint.config.mjs,config/jsconfig.json) and adding a modern TypeScript-aware ESLint setup (eslint.config.mts). [1] [2] [3]User Experience and UI Enhancements:
Added new context menu options: users can now generate responsive images directly from the explorer (right-click on image files) and from the editor title bar, streamlining the workflow.
Added extension icons for both light and dark themes, and updated the command palette with categorized and icon-enhanced entries for better discoverability. [1] [2]
Functionality and Error Handling:
Improved error handling throughout the extension, especially in image processing commands, with detailed error messages for failed operations.
Updated the command registration to support invoking the generator from context menus and editor actions, passing the relevant resource URI when available. [1] [2]
Documentation and Project Management:
CHANGELOG.mdto document new features and enhancements, and introduced aTODO.mdfile to track planned improvements and outstanding tasks. [1] [2]Build and Dependency Updates:
package.jsonto reflect the new version (1.1.0), added TypeScript and new dev dependencies, improved build scripts, and set the main entry point to the compiled output. [1] [2] [3]These changes collectively modernize the extension's codebase, improve its usability, and lay the groundwork for future enhancements.