Thanks. Hmm, looks like I was wrong about onBodyChanged being outdated - 
there seem to be hardly any uses in Leo's source, which perhaps misled me.

I removed my undo code from my example... ;-)

    Regards
    J^n


On Sunday, July 28, 2024 at 1:58:07 PM UTC+1 tbp1...@gmail.com wrote:

> 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/8ac1c434-131a-491c-b0c6-e42ba4bf6901n%40googlegroups.com.

Reply via email to