Skip to content
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

Version 2.0 Release #43

Merged
merged 70 commits into from
Jul 25, 2024
Merged

Version 2.0 Release #43

merged 70 commits into from
Jul 25, 2024

Conversation

artmontinski
Copy link
Collaborator

@artmontinski artmontinski commented Jul 25, 2024

Ludwig VS 2.0: Comprehensive Accessibility Toolkit for HTML and React

🌟 Overview

Ludwig VS 2.0 represents a major leap forward in our mission to make web accessibility easier and more efficient for developers. This release introduces powerful new features, expands our accessibility standards coverage, and significantly improves the user experience.

Ludwig VS 2.0 Dashboard

🚀 Major Features and Improvements

1. Advanced ESLint Integration

We've taken our ESLint integration to the next level, providing developers with more powerful and flexible linting capabilities:

  • Custom ESLint configurations for HTML, JSX, and TSX files
  • New functionality to scan individual files or entire projects
  • Seamless integration with VS Code's native diagnostics system

ESLint Integration

2. Enhanced Linting and Reporting

We've revolutionized our approach to linting and reporting:

  • Developed a centralized JSON package for efficient storage and retrieval of lint results
  • Implemented custom severity mapping for more nuanced issue reporting
  • Added functionality to save lint results to a central JSON library
  • Created a comprehensive dashboard for visualizing linting results and accessibility scores

Linting Dashboard

3. Intuitive User Interface Improvements

  • Implemented a sidebar webview for quick access to Ludwig's features
  • Added a quick pick menu for effortlessly switching between linting modes
  • Improved status bar updates to provide real-time feedback
  • Designed a more intuitive and visually appealing dashboard

UI Improvements

4. Performance Optimizations

  • Adjusted linting frequency to better handle VS Code's autosave feature
  • Implemented hash-based comparison for reports to eliminate duplicate entries
  • Optimized dashboard updates to always include the most recent lint results

5. Expanded Accessibility Standards Coverage

  • Added comprehensive support for ARIA roles and attributes
  • Implemented checks for serious accessibility issues
  • Enhanced existing critical accessibility checks

Accessibility Checks

6. Improved Developer Experience

  • Switched to pnpm for more efficient package management
  • Improved build process and webpack configuration
  • Added detailed contribution guidelines and pre-push instructions

🛠️ Technical Improvements

  • Refactored the codebase for better modularity and maintainability
  • Implemented TypeScript throughout the project
  • Added support for React components within the extension
  • Improved error handling and diagnostic creation

📊 Visualization Enhancements

  • Replaced VictoryPie with Chart.js for improved performance
  • Implemented a new progression chart for tracking accessibility improvements over time
  • Implemented a new donut chart for tracking error distribution patterns

Progression Chart

🧹 Code Cleanup and Maintenance

  • Removed unused dependencies and declarations
  • Implemented CI pipeline using GitHub Actions
  • Added ESLint and Prettier configuration for consistent code style

📚 Documentation

  • Updated README with new features and usage instructions
  • Added CHANGELOG to track version changes
  • Created a comprehensive CONTRIBUTING.md file

Updated Documentation

🚦 Breaking Changes

  • None

🗺️ Roadmap

  • Integration with additional accessibility testing tools
  • Support for more frontend frameworks
  • Advanced reporting and trend analysis features

🤝 Feedback and Contributions

Your feedback and contributions are crucial to making Ludwig ES the best accessibility toolkit it can be. We encourage you to:

Thank you to all the contributors who have helped make Ludwig ES 2.0 a reality. Together, we're making the web more accessible for everyone!

Download Ludwig VS 2.0 on MS VSCode Extension Store. Scheduled for release July 27 2024

artmontinski and others added 30 commits June 30, 2024 11:02
- Improved overall structure of logicCompile.ts

- Centralized VSCode API calls

- Removed unused declarations and abandoned dependencies
Refactor logicCompile.ts, Improve VSCode API Communication, and Clean Up Codebase
Refactor PieChart, update build configs, clean dist, and modularize code

- Replaced VictoryPie with react-minimal-pie-chart for better performance
- Updated tasks.json to include a build-ts-only task and clean dist folder before builds
- Added Run Extension (TS Only) debugger configuration
- Installed clean-webpack-plugin to clean dist folder before builds
- Redesigned file structure for better modularity and maintainability
- Modularized Node.js code for readability and reusability
- Switched to pnpm for more granular dependency management
- Reverted back to webpack from esbuild due to dependency issues, with plans to revisit esbuild
- Removed Victory library to reduce build size by over 50%, refactored components accordingly

PR #4
* recreaste compile error

* tsconfig

* diagnostics ready

* launch config finalized

* Add code to highlight full errored line

---------

Co-authored-by: artmontinski <[email protected]>
Co-authored-by: artmontinski <[email protected]>
* Add ESLint and Prettier configuration with GitHub Actions (pnpm)

* Combine pnpm setup and lint/format checks into a single job

* adjust Node version

* style: auto-fix linting and formatting issues

---------

Co-authored-by: artmontinski <[email protected]>
artmontinski and others added 27 commits July 20, 2024 03:21
- Integrate saveLintResults command into eslintDiagnostics.ts
- Add custom severity mapping to diagnostic messages
- Implement conditional saving of lint results
- Improve error handling in lintDocument function
- Refactor and clean up unused code
- Ensure consistency in message display methods
- Optimize file system operations for better performance

Co-authored-by: Benson Cheng <[email protected]>
Co-authored-by: Kristian Schott <[email protected]>
…need to get progressionChart working correctly, need to get removeLibraryCommand working
- Refactor updateDashboard function to use 10 most recent results
- Add current lint result to recent results before updating
- Update data formatting for chart to use recent results
…ashboard updates

- Implement hash-based comparison for reports to avoid duplicate entries
- Add hash function to generate unique hashes for individual reports
- Modify saveLintResultToLibrary to use hashed results for comparison
- Update updateDashboard function to include the most recent lint result
- Integrate dashboard updates with "on active file" toggle functionality

This commit improves the efficiency of report library storage by avoiding
unnecessary duplicates and ensures that the dashboard always displays
the most up-to-date information, including the report on which it's triggered.
Enhance report I/O process and fix focus issues
- Update toggleLintActiveFile and toggleLintAllFiles functions
- Improve status bar update logic to reflect current linting state
- Implement 'resetLib' command to delete Summary_Library folder
- Add confirmation dialog before resetting the library
- Register 'ludwig.resetLib' command in extension initialization
- Create 'showLintingMenu' command for changing linting mode
- Implement disableLinting function for turning off all linting
- Add icons and emojis to quick pick menu
- Implement markdown formatting in menu item descriptions
- Update showLintingMenu function to handle new dashboard/report option
- Adjust linting frequency to better handle VS Code's autosave feature
- Enhance onDidChangeTextDocument listener with proper timeout handling
- Ensure reports are only generated when linting is enabled
- Optimize performance by reducing unnecessary lint operations
Enhanced Linting Functionality and User Interface Improvements
Enhance Linting Functionality and Optimize for Autosave
- Enhance compileLogic to use accurate position data
- Optimize performance for processing large HTML documents
- Refactor code for better maintainability and readability

Authored-by: Spencer Hezzelwood <[email protected]>
@artmontinski artmontinski merged commit 78036b3 into oslabs-beta:main Jul 25, 2024
1 check passed
@artmontinski artmontinski deleted the visuals branch July 25, 2024 20:15
@artmontinski artmontinski restored the visuals branch July 26, 2024 23:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants