Notepad has a little-known feature where if you start a file with .LOG then every time the file is loaded the current date and time will be appended to the end of the file – allowing you to use a simple text file as a sort of diary.
A feature request came in for this and, pending a decision on whether to support it directly in Programmer’s Notepad, I decided to show how it could be implemented using the latest PyPN bits:
Updated: Fixed a couple of minor bugs thanks to Jeff Rivett:
import scintilla, pn, pypn.glue, time
oldDocLoad = pypn.glue.onDocLoad
def docLoad(doc):
""" docLoad handler to implement notepad .LOG functionality"""
# Get the edit component:
s = scintilla.Scintilla(doc)
# Get the first line:
lineLength = s.LineLength(0)
text = s.GetText(0, lineLength)
# If we have .LOG then add a blank line and then the date and time
if text.startswith(".LOG"):
timestr = "\r\n\r\n" + time.asctime(time.localtime()) + "\r\n"
s.AppendText(len(timestr), timestr)
# Jump to the end of the document
s.DocumentEnd()
oldDocLoad(doc)
pypn.glue.onDocLoad = docLoad
Just drop this code in a file called dotlog.py under Programmer’s Notepad\scripts and you’ll have the .LOG functionality. This all uses the very latest 2.0.9 unstable bits and the related PyPN build.