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

new features and improvements #76

Merged
merged 43 commits into from
Dec 28, 2024
Merged

new features and improvements #76

merged 43 commits into from
Dec 28, 2024

Conversation

chaqchase
Copy link
Owner

This pull request introduces several significant updates, including the addition of a new utility library for plugins, enhancements to the command-line arguments, and updates to the project configuration and documentation.

New Utility Library:

  • Added a new crate lla_plugin_utils to the workspace, which provides utility functions and components for building LLA plugins. (Cargo.toml, [1] [2] [3]

Command-line Argument Enhancements:

  • Introduced new command-line arguments to filter and display specific types of files and directories, such as --dirs-only, --files-only, --symlinks-only, --no-dirs, --no-files, --no-symlinks, --no-dotfiles, and --dotfiles-only. (lla/src/commands/args.rs, [1] [2] [3] [4] [5]

Configuration Updates:

  • Updated the configuration to include a new setting no_dotfiles to hide dot files and directories by default. (lla/src/config/mod.rs, [1] [2] [3] [4]

Documentation Updates:

  • Enhanced the README.md file with detailed descriptions and examples of the new command-line arguments for filtering specific file types. (README.md, [1] [2] [3] [4]

Dependency Updates:

  • Updated the terminal_size dependency to version 0.4.1 in Cargo.toml. (Cargo.toml, Cargo.tomlL35-R35)

- Introduced flags to filter output by directories, files, and symlinks.
- Added options to exclude directories, files, and symlinks from the listing.
- Updated the Args struct and command-line argument parsing to accommodate these new features.

--dirs-only: Show only directories
--files-only: Show only regular files
--symlinks-only: Show only symbolic links
--no-dirs: Hide directories
--no-files: Hide regular files
--no-symlinks: Hide symbolic links
- Added new flags to the Args struct for filtering dot files: --no-dotfiles and --dotfiles-only.
- Updated command-line argument parsing to include these options.
- Implemented logic in file listing to handle dot files based on the new flags.
- Refactored the Args struct to utilize the new no_dotfiles configuration option for filtering dot files.
- Enhanced command-line argument parsing to respect the no_dotfiles setting from the configuration.
- Added no_dotfiles field to FilterConfig for better control over dot file visibility.
- Added detailed documentation for new filtering options: --dirs-only, --files-only, --symlinks-only, --dotfiles-only, and their corresponding hide flags.
- Included examples in the README for using the new filtering commands.
- Updated configuration to include a default setting for hiding dot files.
- Enhanced clarity on combining filters for more complex queries.
- Eliminated outdated comments regarding dot file filtering in the list_and_decorate_files function.
- Streamlined the code for better readability and maintainability.
- Added a new Cargo.toml file for the lla_plugin_utils package, defining dependencies and features.
- Implemented ActionRegistry for managing actions with handlers and help documentation.
- Created ConfigManager for handling plugin configuration with validation and persistence.
- Developed formatting utilities for entries, including permission and ownership formatting.
- Established UI components for displaying help and progress, enhancing user interaction.
- Introduced macros for defining actions and creating plugins, streamlining plugin development.
- Introduced a new plugin, `dirs_meta`, that analyzes directories and provides metadata such as file counts, sizes, and modification times.
- Implemented intelligent caching for improved performance and parallel processing for faster analysis.
- Updated workspace configuration to include the new plugin and removed the deprecated `dirs` plugin.
- Added comprehensive README documentation for usage and display formats.
- Updated Cargo.lock and Cargo.toml files to reflect new dependencies and plugin structure.
- Implemented checks to publish the lla_plugin_utils package if the specified version is not already published.
- Added echo statements to inform about the publishing status of lla_plugin_utils.
- Included a sleep command to allow for crates.io indexing after publishing.
…ation

- Added new dependencies: `lazy_static`, `parking_lot`, and `serde` to improve plugin functionality and configuration management.
- Updated `Cargo.toml` for the `file_meta` plugin to include `lla_plugin_utils` and `serde` with derive features.
- Refactored the `FileMetadataPlugin` to utilize `lazy_static` for action registry and `parking_lot` for improved concurrency.
- Introduced `FileMetaConfig` struct for managing plugin configuration with default color settings for metadata display.
- Enhanced the `handle_raw_request` method to support new plugin actions and improved response formatting.
- Added new dependencies: `lazy_static`, `parking_lot`, and `serde` to improve plugin functionality and configuration management.
- Updated `Cargo.toml` for the `categorizer` plugin to include `lla_plugin_utils` and `serde` with derive features.
- Refactored the plugin to utilize `lazy_static` for action registry and `parking_lot` for improved concurrency.
- Introduced new actions for adding categories and subcategories, along with statistics display.
- Enhanced the `handle_raw_request` method to support new plugin actions and improved response formatting.
- Updated version in Cargo.toml to reflect the new release.
…ncies and enhanced functionality

- Bumped version to 0.3.1 in Cargo.toml and Cargo.lock.
- Added new dependencies: `lazy_static`, `parking_lot`, and `lla_plugin_utils` to improve concurrency and configuration management.
- Refactored the plugin to utilize `lazy_static` for action registry and `parking_lot` for thread-safe state management.
- Introduced new actions for setting complexity thresholds and displaying detailed reports.
- Enhanced the report generation and metrics formatting for better user experience.
- Updated Cargo.toml and Cargo.lock to include new dependencies: `lazy_static`, `parking_lot`, and `serde` for improved concurrency and configuration management.
- Refactored the plugin to utilize `lazy_static` for action registry and `parking_lot` for thread-safe state management.
- Introduced `FileHashConfig` struct for managing plugin configuration with default color settings for hash display.
- Enhanced the `handle_raw_request` method to support new plugin actions and improved response formatting.
- Added functionality for formatting hash information and displaying help documentation for user actions.
…d functionality

- Updated Cargo.toml and Cargo.lock to include new dependencies: `lla_plugin_utils` and `serde` for improved configuration management and serialization.
- Refactored the plugin to utilize `lazy_static` for action registry and `parking_lot` for thread-safe state management.
- Introduced `DuplicateConfig` struct for managing plugin configuration with default color settings for duplicate file display.
- Enhanced the `handle_raw_request` method to support new plugin actions, including cache clearing and help documentation.
- Improved formatting of duplicate information for better user experience.
- Updated Cargo.toml and Cargo.lock to include new dependencies: `lazy_static`, `parking_lot`, and `serde` for improved configuration management and concurrency.
- Refactored the plugin to utilize `lazy_static` for action registry and `parking_lot` for thread-safe state management.
- Introduced `TaggerConfig` struct for managing plugin configuration with default color settings for tag display.
- Enhanced the `handle_raw_request` method to support new actions for adding, removing, and listing tags, along with improved help documentation.
- Improved formatting of tag information for better user experience.
- Updated Cargo.toml and Cargo.lock to include new dependencies: `lazy_static`, `parking_lot`, and `serde` for improved configuration management and concurrency.
- Refactored the plugin to utilize `lazy_static` for action registry and `parking_lot` for thread-safe state management.
- Introduced `GitConfig` struct for managing plugin configuration with default color settings for Git status display.
- Enhanced the `handle_raw_request` method to support new actions for formatting and displaying Git repository status information.
- Improved help documentation and formatting for better user experience.
…onality

- Updated Cargo.toml and Cargo.lock to include new dependencies: `lazy_static`, `parking_lot`, and `serde` for improved configuration management and concurrency.
- Refactored the plugin to utilize `lazy_static` for action registry and `parking_lot` for thread-safe state management.
- Introduced `CommitConfig` struct for managing plugin configuration with default color settings for commit information display.
- Enhanced the `handle_raw_request` method to support new actions for formatting and displaying last Git commit information.
- Improved help documentation and formatting for better user experience.
- Updated Cargo.toml and Cargo.lock to include new dependencies: `lazy_static`, `parking_lot`, and `serde` for improved configuration management and concurrency.
- Refactored the plugin to utilize `lazy_static` for managing the action registry and `parking_lot` for thread-safe state management.
- Introduced `SizeConfig` struct for managing plugin configuration with default color settings for size visualization.
- Enhanced the `handle_raw_request` method to support new actions for formatting and displaying file size information.
- Improved help documentation and formatting for better user experience.
…ve features

- Updated Cargo.toml to include new optional dependencies: `syntect`, `lazy_static`, and `dialoguer` for syntax highlighting and interactive selection.
- Introduced `syntax` module for code highlighting functionality using `syntect`.
- Added `CodeHighlighter` struct with methods for highlighting code and retrieving available themes.
- Implemented `InteractiveSelector` for user interaction, allowing single and multiple selections, confirmations, and custom inputs.
- Refactored UI components to support new features, including enhanced `BoxComponent` styling options.
- Improved module organization by separating text-related functionality into a new `text` module.
…ndencies

- Bumped version to 0.3.1 in Cargo.toml.
- Enhanced functionality with new dependencies: `arboard`, `uuid`, `chrono`, `fuzzy-matcher`, and `syntect` for improved snippet management and user interaction.
- Refactored code to support tagging and categorization of snippets, including new actions for adding and removing tags.
- Implemented clipboard support for snippet extraction and improved snippet rendering with syntax highlighting.
- Updated the plugin's configuration management using `lazy_static` and `parking_lot` for thread safety.
- Improved help documentation and user experience with clearer command usage and output formatting.
- Updated Cargo.toml for the following plugins: `duplicate_file_detector`, `file_hash`, `file_tagger`, `git_status`, `keyword_search`, `last_git_commit`, and `sizeviz`.
- Incremented version from 0.3.0 to 0.3.1 for each plugin to reflect the latest release.
- Bumped versions of `duplicate_file_detector`, `file_hash`, `file_tagger`, `git_status`, `keyword_search`, `last_git_commit`, and `sizeviz` from 0.3.0 to 0.3.1 in Cargo.lock.
- Updated `terminal_size` version from 0.3.1 to 0.4.1 in Cargo.toml, along with its dependencies.
- Ensured compatibility with the latest releases for improved functionality and performance.
- Updated Cargo.toml to include new dependencies: `arboard`, `chrono`, `console`, `dialoguer`, `itertools`, `lazy_static`, `parking_lot`, and `syntect` for improved functionality and user interaction.
- Refactored the plugin to support enhanced UI features, including interactive selection and syntax highlighting.
- Introduced a new `colors` field in `SearchConfig` for customizable keyword highlighting.
- Improved match rendering with detailed context and enhanced formatting for better user experience.
- Updated the plugin description to reflect the new capabilities.
- Simplified the plugin description by removing references to enhanced UI and features, focusing on the core functionality of searching file contents for user-specified keywords.
- Refactored ConfigManager to create and manage plugin configuration files more robustly, ensuring directories are created if they do not exist.
- Updated the initialization process to handle loading existing configurations or creating a new default configuration if none exists.
- Simplified the BasePlugin structure by integrating ConfigManager, improving the overall design and usability of the plugin configuration system.
…etailed metadata

- Expanded the README to provide a comprehensive overview of features, including smart file categorization, hierarchical organization, size-based rules, and rich formatting options.
- Introduced default categories with specific configurations for Documents and Code, including subcategories and size ranges.
- Refactored the plugin's internal logic to improve category and subcategory management, ensuring rules are saved correctly.
- Updated usage examples in the README to reflect new commands for adding categories and managing subcategories.
- Enhanced configuration management by integrating default rules and improving the overall structure of the plugin.
…aults

- Added a newline character to the output in the BoxComponent's render method for better formatting.
- Introduced default values for `languages` and `thresholds` in the ComplexityConfig struct, streamlining the default configuration process.
- Refactored the CodeComplexityEstimatorPlugin initialization to include error handling when saving the plugin configuration, improving robustness.
…tions

- Introduced `syntax_themes` and `max_preview_lines` fields in `SnippetConfig` for improved customization.
- Added default values for syntax themes and maximum preview lines to streamline configuration.
- Refactored `CodeSnippetExtractorPlugin` initialization to utilize a plugin name and improved error handling for configuration saving.
- Implemented `ConfigurablePlugin` trait for better configuration management and access.
- Updated plugin declaration to support new features and maintain consistency with the plugin interface.
…initialization

- Added `max_scan_depth` and `parallel_threshold` fields to `DirsConfig` with default values for better performance tuning.
- Introduced `default_scan_depth` and `default_parallel_threshold` functions to streamline configuration management.
- Refactored `DirsPlugin` initialization to include a new constructor method, improving error handling during configuration saving.
- Updated the default implementation of `DirsPlugin` to utilize the new constructor for cleaner code structure.
…ndling

- Updated the plugin constructor to use the plugin name for better identification.
- Improved error handling by logging configuration save failures to standard error output.
- Refactored the initialization process to streamline the creation of the DuplicateFileDetectorPlugin instance.
- Updated the constructor to use the plugin name for better identification.
- Added error handling to log configuration save failures to standard error output.
- Refactored the initialization process for improved clarity and robustness.
- Updated the constructor to utilize the plugin name for better identification.
- Added error handling to log configuration save failures to standard error output.
- Refactored the initialization process for improved clarity and robustness.
- Updated the constructor to utilize the plugin name for better identification.
- Added error handling to log configuration save failures to standard error output.
- Refactored the initialization process for improved clarity and robustness.
- Updated the constructor to utilize the plugin name for better identification.
- Added error handling to log configuration save failures to standard error output.
- Refactored the initialization process for improved clarity and robustness.
- Updated the constructor to utilize the plugin name for better identification.
- Added error handling to log configuration save failures to standard error output.
- Refactored the initialization process for improved clarity and robustness.
- Updated the constructor to utilize the plugin name for better identification.
- Added error handling to log configuration save failures to standard error output.
- Refactored the initialization process for improved clarity and robustness.
- Updated the constructor to utilize the plugin name for better identification.
- Added error handling to log configuration save failures to standard error output.
- Refactored the initialization process for improved clarity and robustness.
…ity and usability

- Refined README files for multiple plugins, enhancing feature descriptions and usage instructions.
- Standardized configuration examples across plugins for consistency.
- Improved display formats and examples to better illustrate plugin functionality.
- Updated color coding and metadata sections for better visibility and user experience.
- Enhanced overall documentation structure to facilitate easier navigation and understanding.
- Introduced a new README.md file detailing the lla_plugin_utils library.
- Documented core components including UI components, plugin infrastructure, and code utilities.
- Highlighted key features such as TOML configuration, interactive CLI components, and syntax highlighting support.
- Incremented version numbers for all plugins from 0.3.0 to 0.3.1.
- Renamed the 'dirs' plugin to 'dirs_meta' for better clarity.
- Updated installation instructions and documentation links for consistency across all plugins.
- Enhanced overall documentation structure to improve usability and navigation.
- Added new utility library `lla_plugin_utils` with UI components, plugin infrastructure utilities, code highlighting, and configuration management tools.
- Introduced command-line arguments for enhanced file type filtering options.
- Enhanced plugin functionality with updates to all official plugins and support for individual plugin updates.
- Updated configuration to include a new `no_dotfiles` setting and improved documentation with examples.
- Fixed an issue with the default listing format being overridden by config settings.
- Updated version numbers for `lla`, `lla_plugin_interface`, and `lla_plugin_utils` from 0.3.7 to 0.3.8 in Cargo files.
- Ensured consistency across package dependencies and workspace configuration.
@chaqchase chaqchase added the release Release a new version label Dec 28, 2024
@chaqchase chaqchase merged commit 371cf25 into main Dec 28, 2024
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
release Release a new version
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant