Releases: GregTheMadMonk/noaftodo
1.4.6 Bugfix release
There some REALLY unfortunate bugs in 1.4.5 (which were present even earlier) that I didn't notice. So here is the release where I fix them.
Changelog:
- Replace potentially problematic (caused segfault when compiled with
_FORTIFY_SOURCE
)time_s::fmt_sprintf
withtime_s::fmt_str
- Update
cmd::retval
(command return value) after every command - Update
cui::status
(program status line) after with every return value that is not empty - Codebase: file naming changes, with errors caused by it fixed
1.4.5 release
To be completely honest I'm not very satisfied with this release: TIMELINE mode through developement felt more and more useless and I genuinely can't see myself using it much in the future.
Almost all new features, actually, can be classified as "I don't need it really, but why not throw it in in case someone does".
Anyway, it needed to be over with, as I cant wait for some more radical reworks in 1.5.0 or even 2.0.0.
So, to anyone who sees this, here you go.
Fig. 1: Timeline mode in action.
- Added TIMELINE mode:
- Displays tasks (surprizse) on a timeline
- Added commands:
timeline.focus
timeline.focus_closest
timeline.next
timeline.prev
timeline.scale_up
timeline.scale_down
- Added cvars:
timeline.position
timeline.unit
charset.timeline.marker
charset.timeline.marker_now
charset.timeline.line
charset.timeline.vline
charset.timeline.vline_now
charset.timeline.rarrow
- Added durations to tasks:
- Set in
duration
meta property of a task - Specified while adding after
+
delimiter in due time field - New task flag: due (due already passed, but duration not expired). Task becomes due, then after its duration is expired, is failed
- Added cvars:
colors.entry_due
on_task_due_action
task_duration_default
- duration for tasks for which duration was not explicitly specified
- Added special task meta fields:
duration
on_due
- Set in
- Added
r
("Due in") column (off by default) - Allow negative offset in command-line time input format
- Add a string to default config to set window title on startup
- Save dues in the list as seconds since epoch to preserve due times when switching timezones
- Allow to specify task dues in seconds since epoch in commands
- Remove hardcoded startup mode
- Bugfixes:
- LISTVIEW freeze when hiding slelected list
:q
not exiting program when called from COMMAND mode- Screen not updating on task state chages
- prettier_status.conf fix
- Build:
- Allow to override platform build flags
- Codebase and program logic:
- Add noaftodo_macro.h for macros
- Create
CONST_DPL
macro do declare const and non-const duplicating methods - Create a mode declaration macro
- Add
init()
method to mode definition - Move
li::entry
methods definitions to a separate header - Rewrite time system based on the new
time_s
struct (and removed noaftodo_time.cpp) - Entry flags system reworked
- Call
cui:init()
before loading list and config to make sure mode-specific variables and commands are initialized
- Documentation generator fixes and improvements
1.4.4 release
Status field with my config (using scripts/prettier_status.conf)
- Add custom status fields:
- Custom status field is set via
fields.status.X
where X - is a field letter (uppercase or lowercase) :set fields.status.X value
- value is a string, that, after being "formatted" (cvars replaced with values), is displayed in status%fields.status.X%
returns field as it would be displayed in UI- See scripts/prettier_status.conf for an example of "prettyifying" the status
- Custom status field is set via
- Allow to access meta properties directly through %meta.prop_name% cvars (read/write)
- Allow to access alias code through %alias.alias_name% (read-only)
- Add more keys that
:bind
recognizes:home
end
backspace
delete
codeNUMBER
for key with code NUMBER- PageUp as
pgup
- PageDown as
pgdn
- Make ":bind" recognize multi-key input:
c^key
for ctrl+keya^key
for alt+key- can be combined like
a^c^key
orc^a^key
- Changing only background or foreground color with terminal sequence does not reset the other color from now
- Move
[prefix]_[name]
to namespaces[prefix]
in code - Move cvar initialization to noaftodo_def.cpp
1.4.3 release
- Add basic markdown support
- Add
!!
command to execute system commands without reading their output. Useful for running programs with terminal UI (e.g. vim) - Allow multistr_c elements be more than one wchar_t in length (allows for multi-character separators, basically)
- Rework colors
- Initialize all color pairs on startup (17 * 17 color pairs), set colors through specifying its pair index (
pair_index = fg_col + 1 + (bg_col + 1) * 17
,fg_col
andbg_col
are integers from -1 to 15) - Remove colors.bg and colors.status_standout cvars
- Initialize all color pairs on startup (17 * 17 color pairs), set colors through specifying its pair index (
- Support color switching with terminal sequences (^[[3*;4*m)
- Specify status fields in cvars left-to-right instead of right-to-left
- Add manpage generation, show only relevant (well...) help in program
- Fix unnamed lists sometimes not displaying in LISTVIEW even if they had visible entries
- Fix DETAILS and HELP mode scrolling and do an overall reworking of some UI code
1.4.0 release
Changelog
General changes
- Improve safe mode. It doesn't exit program, or make it
sleep
, just shows a message on the screen with a little tip about what have gone wrong. In safe mode, allow saving only when save path is explicitly specified locations. - Move all safe mode precautions from
:save
toli_save()
. - Adjust default config and list paths to respect $HOME and $XDG_CONFIG_HOME.
- Automatically remove unnamed tags from the end of the tag list.
- Count lists that don't have visible entries as "empty" in listview mode.
- Allow to call %prompt% without active UI.
- Get rid of hardcoded bindings in normal and listview modes.
Command interpreter
Some of the removed commands are preserved as aliases to equivalent commands in configs
- Reworked command parser to be more consistent
- Added
title
,desc
,due
editable cvars to make editing tasks easier - Added
meta
cvar - Added
:math
command to perform basic arithmetic and logic operations - Added
:if
command as a primitive conditional - Removed
:toggle
. Use:if %name% "set name false" "set name true"
instead. (aliased in default config) - Removed
:vtoggle
. Use:toggle filter.[category]
(aliased in legacy_aliases.conf) - Removed
:g
. Use:set id
(aliased in legacy_aliases.conf) - Removed
:list
. Use:set tag_filter
(to switch to the list, aliased in legacy_aliases.conf) or:set tag_filter_v
to switch to a visible list. - Removed
:up
and:down
. Use:math
command onid
cvar (aliased in legacy_aliases.conf). - Removed
:next
and:prev
. Use:math
command ontag_filter_v
cvar (aliased in legacy_aliases.conf). - Removed
:clrmeta
. Use:set meta
instead. - Removed
:lrename
. Use:set pname
instead. - Removed
:unbind
. Use:bind
with a single argument instead. - Removed
::
,:?
,:details
and:listview
. Use:set mode
instead (aliased in default config). - Removed
:lmv
. Use:set parent
instead (aliased in legacy_aliases.conf). - Removed
:c
. Use:toggle comp
instead (yeah, I know:toggle
was removed, but everything that is in default config kinda counts as a part of the program :) ) - Removed
daemon.list_update_tick
cvar. - Renamed:
T
totitle
D
todesc
contexec_cmd_regex
tocmd.contexec
regex_filter
tonorm.regex_filter
list_regex_filter
tolivi.regex_filter
shift_multivars
toframeshift_multistr
colors.background
tocolors.bg
charset.row_separator
tocharset.separators.row
charset.row_separator.offset
tocharset.separators.row.offset
charset.status_separator
tocharset.separators.status
charset.details_separator
tocharset.separator.details
all_cols
tonorm.cols.all
cols
tonorm.cols
listview_cols
tolivi.cols
details_cols
todet.cols
daemon.fork_autostart
toautorun_daemon
show_uncat
tofilter.uncat
show_complete
tofilter.complete
show_coming
tofilter.coming
show_failed
tofilter.failed
show_nodue
tofilter.nodue
lview_show_empty
toshow.empty
charset.box_border_h
tocharset.box_strong.h
charset.box_border_v
tocharset.box_strong.v
charset.box_corner_1
tocharset.box_strong.corn1
charset.box_corner_2
tocharset.box_strong.corn2
charset.box_corner_3
tocharset.box_strong.corn3
charset.box_corner_4
tocharset.box_strong.corn4
charset.box_ui_line_h
tocharset.box_light.h
first_visible_id
tofirst_v_id
last_visible_id
tolast_v_id
first_visible_list
tofirst_v_list
last_visible_list
tolast_v_list
Pheew! I hope, I didn't forget anything :)
First release. How many bug does it have?
First release of NOAFtodo.
Tested pretty poorly, and needs more documentation, but functional and +- has all needed features.
So... this is more of a milestone, just clone what is on master and it's probably going to be more stable.