- Added support for editing a view's tag formula via
v-ekey sequence
- Reworked "view" configuration to store human-modifiable logical formulas instead of structured but cryptic Conjunctive Normal Form data
- Removed support for deprecated
notnow.jsonconfiguration format
- Automatically convert
notnow.jsonto new format on "save" - Fixed rendering bugs encountered on small terminal sizes
- Bumped minimum supported Rust version to
1.81
- Bumped
termiondependency to4.0 - Bumped minimum supported Rust version to
1.66
- Added support for running multiple instances as long as configuration directories differ
- Added
--config-dir/-coption to make configuration directory to use configurable - Added support for copying and pasting a task via 'y' and 'p'
- Converted UI to update widgets incrementally
- Eliminated flicker and other rendering artifacts
- Added support for editing of multi-line free-form task "details"
- Fixed potential panic caused by clipping task summaries at non-char boundaries
- Bumped
icalendardependency to0.16
- Fixed build failure on Apple platforms
- Bumped
dirsdependency to5.0
- Optimized runtime performance and decreased asymptotic time complexity of core data base operations
- Introduced
--help/-hoptions to display help text - Added GitHub Actions workflow for publishing the crate
- Split configuration by moving various selections into
$XDG_CACHE_HOME/notnow/ui-state.json - Warn if unsaved changes are present when trying to quit program
- Correctly handle selection indexes for all Unicode inputs
- Fixed
--version/-Voptions to work properly again - Fixed potential panics when task positions are exhausted
- Introduced lock file usage to prevent multiple program instances from
running concurrently
- Added
--force/-foption to force starting up in the presence of a stale lock file
- Added
- Made sure to write-protect config files and tasks while the program is running, to prevent accidental overwriting of intentional changes
- Properly support scrolling when editing tasks not fitting on the screen
- Set positive tag literals of tab as tags on a task newly added to an empty tab
- Removed support for writing output to a file provided as program argument
- Added support for
--version/-Voption to print program version - Bumped
termiondependency to2.0
- Changed task storage format:
- Switched from single-file-for-all-tasks scheme to having one task per file (identified by 128 bit UUID)
- Switched from using custom JSON serialization format to relying on interchangeable iCalendar TODO events
- Added support for only saving tasks that were changed
- Added support for finding the currently selected task on other tabs
via
* - Added example program using automatically generated task data
- Overhauled error reporting mechanism, now reporting error chains
- Made tag to toggle through UI user-configurable and no longer hard wired to task completion
- Re-select task after successfully editing tags
- Use Unicode aware lowercase in task summary search
- Fixed reverse task search not progressing under certain conditions
- Switched to using GitHub Actions as CI provider
- Bumped minimum supported Rust version to
1.65 - Bumped
dirsdependency to4.0
- Introduced
undoandredofunctionality via 'u' and 'U' - Added support for jumping to tags via 'f' and 'F'
- Bumped
dirsdependency to3.0 - Added
tokiodependency in version1.8 - Switched to using tarpaulin for code coverage collection
- Bumped minimum supported Rust version to
1.46
- Added support for editing tags through newly introduced dialog widget, accessible via 't'
- Changed placement of newly created tasks to be after currently selected one
- Bumped required Rust version to
1.43
- Reworked internal event handling logic to be
async - Excluded unnecessary files from being contained in release bundle
- Bumped
guidependency to0.6 - Added
async-traitdependency in version0.1 - Added
tokiodependency in version1.0
- Reduce synchronization overhead by locking stdout only once
- Adjusted link to coverage to actually reference coverage information artifacts
- Bumped
guidependency to0.5 - Bumped
rlinedependency to0.3 - Bumped required Rust version to
1.42
- Improved support for handling multi-byte characters
- Fixed assertion failure when searching after aborting search term entry
- Lowercased
PosandNegfields of serialized queries - Added code coverage collection and reporting to CI pipeline
- Bumped
dirsdependency to2.0
- Added support for configuring colors through
notnow.json - Added support for moving tabs left/right
- Added support for creating a core dump on panic
- Bumped
guidependency to0.4 - Bumped required Rust version to
1.34 - Downgraded
denycrate-level lints towarn
- Save and restore selected tab
- Save and restore selected task on each tab
- Support all
libreadlinesupported keys whenreadlinefeature is enabled - Automatically create configuration directory instead of potentially failing save operation
- Further decreased binary size by using system allocator
- Bumped
guidependency to0.3 - Bumped
rlinedependency to0.2
- Fixed problem caused by input of multi-byte characters
- They will from now on be ignored
- Updated README to reflect goals more accurately and to depict key bindings
- Adjusted program to use Rust Edition 2018
- Enabled
unused-resultslint - Enabled CI pipeline comprising building, testing, and linting of the project
- Added badges indicating pipeline status, current
crates.iopublished version of the crate, and minimum version ofrustcrequired - Added categories to
Cargo.toml
- Added support for
libreadlinecontrolled text input- Controlled through newly introduced
readlinefeature - Added new dependency to
rline
- Controlled through newly introduced
- Prevented unnecessary redraw operations on certain actions that set
an
InOutAreawidget state - Fixed assertion failure when pressing space when no tasks are present
in the current
TaskListBox - Factored out
uidcrate which is now an explicit dependency
- Removed default "all" query (very first query; capturing all tasks)
- If still desired, can be configured manually
- Added support for searching in reverse order
- '?' starts a reverse search
- 'N' continues the existing search in reverse
- Added support for writing output to a file supplied by path as the
first argument
- E.g., notnow /dev/pts/3 will display the output on tty 3
- Fixed stack overflow due to endless loop when searching for a string that is not found on multiple tabs
- Fixed integer overflow when selecting the last tab by means of '0' and then advancing further
- Added support for searching (and selecting) tasks via a sub-string of their summary
- Added support for selecting tabs by numbers
- Added support for directly selecting the previously active tab
- Editing a task summary to empty deletes the task
- Replaced deprecated
std::env::home_dirwith functionality fromdirscrate- Added new dependency to
dirs
- Added new dependency to
- Enabled Rust 2018 edition lints
- Bumped
guidependency to0.2
- Added support for automatically redrawing the UI after terminal resizes
- Initial release