Here's one I use and it works fine. You should set up for undoing after an insert, and this script does that too:
"""Insert a node with id and creation timestamp strings""" c.doCommandByName('insert-node') undoType = 'xx-insert-node' p.moveToNext() w = c.frame.body.wrapper oldSel = w.getSelectionRange() w.deleteTextSelection() w.setInsertPoint(0) id_label = f':id: {p.gnx}\n' time_string = ':created: ' + c.getTime(body=True) + '\n' i = w.getInsertPoint() w.insert(i, f'{id_label}{time_string}') c.frame.body.onBodyChanged(undoType, oldSel=oldSel) c.bodyWantsFocusNow() On Sunday, July 28, 2024 at 8:40:32 AM UTC-4 jkn wrote: > I'm being a bit dim here, but: > > I am writing a simple command to append text to the body of a node. The > only commands I have written before set the entire body text to some value. > > What do I have to call after using w.insert() etc. to make these changes > persistent.? > > c.redraw() does not seem to do the trick. > > The (outdated?) scripting miscellany: > https://leo-editor.github.io/leo-editor/scripting-miscellany.html > > suggests that c.frame.body.onBodyChanged should be called; but it looks > like this is not longer the case. > > A trivial example (that I do not seem to be able to find) would be helpful > - thanks. > > w = c.frame.body.wrapper > for line in range(10): > w.appendText("%d\n" % line) > > # now what? > > J^n > > -- You received this message because you are subscribed to the Google Groups "leo-editor" group. To unsubscribe from this group and stop receiving emails from it, send an email to leo-editor+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/leo-editor/bd601008-efc4-4daa-96d5-c8a7bd723b96n%40googlegroups.com.