Editing @done doesn't remove strikethrough

  1. type a task and append @due( without closing the parentheses
  2. click the dash to add @done with a date
  3. select the @done text
  4. hit delete

At this point you have a syntactically correct @due tag with today’s date! Unfortunately the strikethrough markup persists even though the task is no longer @done.

EDIT clearer animated GIF

Thanks, I can recreate this. Next step fixing it!

For my proposed solution please see:

I think the bug here is that editing the @done away doesn’t remove the strikethrough. Your proposal might not draw the strikethrough in the first place, but it wouldn’t fix the bug.

I’ve coded this up for the next release. I think it does fix the problem.

Here’s the sequence of events in the next release:

  1. type @due and the line has a tag @due

  2. type @due( and the line has no tags since ( isn’t closed with a )

  3. type @due( some text @done and the line has a single @done tag with a date. Again due( isn’t closed so it’s not recognized as a tag.

  4. type @due( some text @done(value) and the line has a single @done tag with “value”. The reason it works this way in the next release is because when @due( goes searching for the close tag it can’t get past done’s opening (. So it fails. @due is not considered a tag, and everything works out.

I think with this new set of rules it is always safe now to append a tag or a tag with a value.