All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Fixed a bug where search mode checkboxes were clipped in the statusbar in app.rs
- Refactored the statusbar layout logic to size sections to their actual content in app.rs
- Refactored the document progress calculation logic to handle empty documents and 100% progress in app.rs
- Introduced a new
SearchStrategyenum to encapsulate the search strategy in app.rs for better type safety.
- Refactored whether the search should be done in parallel manner in app.rs.
- Fixed a bug where the search info from the previous search would still be shown when entering a new search in app.rs
- Remove stale search highlight when entering a new search in app.rs
- Text search now runs in parallel for large documents in app.rs, improving performance.
- Migrated common types to a new
typesmodule in types.rs - Introduced
RfcNumtype alias for RFC document numbers in types.rs
- Restricted RFC document numbers to never include
0across the codebase, including app.rs, cache.rs, client.rs, toc_panel.rs and main.rs
- Refactored event handling logic to redraw only on relevant events in src/main.rs
- Introduce
MAX_POLL_WAITconstant to improve shutdown signal responsiveness during event polling in event.rs
- Added a new test for the cache in cache.rs
- The log files directories are now removed when clearing the log files in logging.rs
- Add additional
logsdirectory to the log files directory path in logging.rs - Change log file path to use the new
logsdirectory in logging.rs
- Change log file path to use
$XDG_STATE_HOMEon Linux in logging.rs - Use
&Pathinstead ofPathBufin logging.rs - Change log files location to local data directory on non-Linux platforms in logging.rs
- Change wording from "log file" to "log files" in logging.rs and main.rs
- Added a log file rotation mechanism with compression in logging.rs
- Use
Box<Path>instead ofPathBufin logging.rs
- Introduce an accessor function instead of directly using the log file path in logging.rs
- The search box now supports a cursor for better text editing in app.rs
- Made the search box input prompt constant in app.rs
- Regexes are now cached to improve performance in app.rs
- Added reasons for lint exceptions in main.rs
- Modified the regex for document section headings in toc_panel.rs
- Replace
std::io::Resultwithanyhow::Resultfor consistency in error handling in guard.rs - Slightly refactored search logic in app.rs
- Use total line count instead of the byte count of the document when scrolling the view in main.rs
- Introduced new lints in Cargo.toml and applied them in app.rs, guard.rs and toc_panel.rs
- Refactor the ToC panel creation process in app.rs
- Updated dependencies to their latest versions
- Moved the constants to their respective methods in app.rs for better organization
- Use
Box<str>instead ofStringfor RFC content and ToC panel contents in cache.rs, client.rs, app.rs and toc_panel.rs
- Simplified argument parsing logic in main.rs
- The RFC file is now deleted when writing to it fails in cache.rs
- Grouped maintenance commands (
--list,--clear-cache,--clear-log) under a singleArgGroupfor clearer help output in main.rs
- Relaxed positional RFC number requirement when using maintenance flags in main.rs
- Prevented combining an RFC number with maintenance actions (now rejected early) in main.rs
- Tightened the argument validation and reduce runtime error paths in main.rs
- The app now warns the user when the window title cannot be set in app.rs
- Avoid panicking when the scroll position is out of bounds in app.rs
- Use constants for UI elements in app.rs
- Slightly modified the logging format in logging.rs
- Clamp indexes to the line length to avoid out of bounds access and use safe slicing
with
str::getfor better error handling in app.rs
- Remove unnecessary
std::sync::MutexfromLOG_FILE_PATHasstd::sync::LazyLockis thread-safe in logging.rs
- Use
env!()to avoid hardcoding the crate name in logging.rs and cache.rs - Refactor cache.rs to warn the user about non-RFC documents, inform about the RFC index
- Improve the RFC number extraction logic and error handling in cache.rs
- Disable unused crossterm features in Cargo.toml to reduce compile time
- Roll back crossterm version to
0.28.1from0.29.0to align with ratatui's crossterm dep, avoiding compiling twice
- Remove
rustlsdependency from Cargo.toml to use only native-tls for ureq
- Added a minimum size for the application in app.rs
- Added a message to the user when the terminal is too small in app.rs
- Moved
tempfileto dev dependencies.
- Refactored
RfcClientto usenative-tlsin client.rs - Added timeout parameter to
RfcClientin client.rs
- Update lint configuration and adjust thread count for builds
- Return
Resultinstead ofOptionfor better error handling in cache.rs
- Use binary search instead of relying on
HashSetin app.rs
- update lint configuration in Cargo.toml
- Show the version by a
-vflag
- Used
Optionto avoid confusing sentinels in app.rs
- Early return pattern for search matches to reduce code complexity in app.rs
- Refactored line highlighting logic in app.rs
- Improved comments in app.rs for clarity and consistency
- Core displaying, fetching and caching functionalities