I’ve been in the habit of keeping track of things in todo lists using Emacs’s outline-mode. This works great to organize things but I needed a better way to mark completed items. I have the files in source control so I could delete them and still know of them using a diff with a previous version but this is clumsy. Otherwise, I could mark items with a date or a DONE but this gets ugly. instead I have this simple emacs function that takes the current line as moves it to the bottom of the file with the date prepended.
(defun mark-completed () "Move the current line to the bottom of the file and prepend the date." (interactive) (save-excursion (progn (move-beginning-of-line nil) (kill-line 1) (end-of-buffer) (if (not (eq 0 (current-column))) (newline)) (insert-date) (insert " - ") (yank))))