- Deleted `IMPLEMENTATION_SUMMARY.md` as its content is now integrated into other documentation.
- Added `INDEX.md` for quick navigation of the scripts folder.
- Created `MARKDOWN_STYLE.md` to establish a consistent markdown style guide for documentation.
- Updated `README.md` to reflect the new documentation structure and provide links to additional resources.
- Introduced `README_SCRIPTS.md` detailing the consolidation of scripts into `tustu_tools.py`.
- Added `REORGANIZATION_SUMMARY.md` to summarize the changes made during the scripts reorganization.
- Removed `TEST_DATA_GENERATOR_FEATURE.md` as its content is now covered in `README_SCRIPTS.md`.
- Updated `scripts/README.md` to include links to new documentation files and improve clarity.
- Introduced `tustu_tools.py` to consolidate various scripts into a single command-line tool.
- Implemented key generation functionality with multiple algorithms.
- Added dummy data generation and email formatting capabilities.
- Included structure analysis and constructor fixing for Java files.
- Created wrapper script `tustu-tools` for easy access to the utility.
- Developed test scripts for dummy data and email generation.
- Added a script for reorganizing the app directory structure.
- Implemented `rename_obfuscated_files.py` to generate semantic names for obfuscated Java files, analyze import dependencies, and execute batch renaming.
- Created `reorganize_structure.py` to analyze the current directory structure, propose reorganization plans, and execute file movements based on package declarations.
- Added `test_dummy_data.py` to demonstrate the functionality of the dummy data generator and validate generated registration keys.
- Introduced `test_email_generation.py` to test the email generation functionality for registration emails.
This commit introduces a new Python script, `fix_constructors_v2.py`, which automates the process of correcting constructor names in Java files based on Gradle error outputs. The script scans specified Java files, identifies constructors that do not match their class names, and updates them accordingly. It handles various edge cases, ensuring that only relevant constructors are modified. The script also provides feedback on the changes made during execution.
This commit introduces a new Python script, `fix_constructors.py`, which scans Java files for constructors that do not match their enclosing class names. The script identifies misnamed constructors and corrects them, ensuring that all constructors adhere to Java's naming conventions. It processes all Java files within a specified directory and reports the number of files modified.
- Created a new MANIFEST.MF file for the JAR with version 1.0.
- Added gradle.properties to specify Java 21 as the JDK for Gradle builds, ensuring compatibility with current Gradle/Kotlin versions.
- Implemented semantic name generation for obfuscated Java classes
- Analyzed import dependencies to track class references
- Created batch execution logic for renaming files and updating imports
- Added comprehensive error handling and logging throughout the process
- Generated a complete mapping of renamed files and their dependencies
- Introduced a new script `analyze_imports.py` to analyze and map dependencies of import statements in Java files.
- Extracts import statements and checks against a rename mapping from `PACKAGE_MAPPING_SMART.json`.
- Generates a comprehensive mapping of obfuscated classes and files needing updates.
- Outputs results to `COMPLETE_RENAME_MAPPING.json` with statistics on files processed and needing updates.
- Improved filtering of field types, imported classes, instantiated classes, method parameter types, and return types to exclude Java primitives, common types, and keywords.
- Added semantic analysis for generating more meaningful class names based on field names, instantiated classes, and method names.
- Introduced a contextual naming strategy that incorporates various characteristics of the class, such as technology context (networking, I/O, threading), field types, and method names.
- Implemented a global uniqueness check for generated filenames to prevent conflicts across packages.
- Updated the fallback naming strategy to ensure uniqueness while maintaining descriptiveness.
- Enhanced logging for duplicate name detection and resolution.
- Added extraction of field names, string literals, imported classes, and instantiated classes for better context.
- Improved specific name inference for ActionListener and other UI components based on additional context.
- Enhanced naming strategies to include context from instantiated classes, field types, and method names.
- Implemented a global uniqueness check for generated filenames, fixing duplicates by adding numeric suffixes.
- Updated the mapping file generation to ensure all names are unique across the entire workspace.
- Improved specific name extraction for ActionListener by analyzing content for UI components and method calls.
- Added fallback mechanisms for other listener types while ensuring ActionListener is prioritized.
- Refined filename generation strategies to prioritize specific inferred names, followed by class names, descriptions, and method names.
- Updated strategy numbering for clarity and consistency in the filename generation process.
- Enhanced class information extraction with detailed attributes (interfaces, methods, etc.)
- Implemented creative naming strategies to avoid filename conflicts
- Improved conflict resolution by tracking used names per package
- Updated statistics tracking for better insights on mapping process
- Refined output messages for clarity and detail
- Changed function name to `generate_smart_mapping_v2` for versioning
- Updated analyze_file method to accept an optional filename parameter for better handling of already renamed files.
- Added checks to skip analysis for files with multi-character or CamelCase names in both analyze_file and analyze_package methods.
- Modified generate_smart_mapping to track and report skipped files due to renaming or empty content.
- Improved fallback naming strategy for files without analysis results.
- Enhanced documentation for clarity on the purpose of functions and parameters.
- Implemented `analyze_java_files.py` to provide heuristic analysis of Java files, suggesting descriptive names for obfuscated classes based on code patterns, imports, methods, and class structure.
- Created `generate_smart_mapping.py` to generate a mapping of old to new filenames using the Java file analyzer, producing `PACKAGE_MAPPING_SMART.json` with suggested filenames.
- Added detailed analysis output to `JAVA_ANALYSIS_DETAILED.json` for further insights into the analysis process.
- Introduced a cache file for compiled Python files in `__pycache__`.
- Introduced ContextHelpMouseAdapter for handling mouse events related to context help.
- Implemented EnableDelayManager and EnableDelayThread for managing delays in enabling features.
- Created EnabledStateCallback interface for state change notifications.
- Added HelpIconLabel and HelpIconMouseAdapter for displaying help icons with tooltips.
- Developed IndicatorReadoutPanel for visual representation of indicators.
- Implemented LiveGraphDataSeries and associated mouse adapters for live graph updates.
- Created LiveGraphPaintThrottle to manage painting frequency in live graphs.
- Added MenuItemIconProvider for dynamic icon assignment to menu items.
- Introduced NamedPanel for panels with names and associated properties.
- Implemented NoteEditorCallback for handling note editing actions.
- Created NoteIconLabel for displaying notes with icons.
- Developed PrefixedPropertyStore for managing properties with prefixes.
- Added RefreshRateCalculator for calculating refresh rates based on conditions.
- Introduced RefreshableComponent interface for components that can be refreshed.
- Created TableCellHighlightListener interface for handling cell highlight events.
- Implemented ValueComboBox for enhanced combo box functionality with custom items.
- Introduced NumericTextField class with focus and key listeners for enhanced user input handling.
- Created NumericTextFieldFocusAdapter and NumericTextFieldKeyAdapter for focus and key event management.
- Implemented RequiredFuelCalculatorPropertyStore for managing fuel calculation properties.
- Added SettingCalibrationField and associated action listener for calibration settings.
- Developed Table2DEditorPanel for 2D table editing functionality, including output channel subscription.
- Introduced Table2DLabelTranslator and Table2DOutputChannelSubscriber for label translation and output channel management.
- Added Table2DPropertyStore for property storage related to 2D tables.
- Implemented TuningMenuBar and TuningMenuBuilder for dynamic menu creation based on tuning parameters.
- Created TuningPopupMenu for context-sensitive actions in the tuning interface.
- Established interfaces for text change notifications and listeners to facilitate communication between components.
- Introduced `TuneDataSnapshot` for managing and synchronizing tuning data.
- Added `TuneDifferenceAnalyzer` to analyze differences between tuning parameters.
- Created `TuneValidatorRegistry` for managing validation rules.
- Implemented `TurboBaudHandler` to handle turbo baud rate changes.
- Added `WorkingCanIdFunction` for retrieving working CAN ID values.