Theoretically they can go into scripts.leo, but I always forget about that 
outline and a lot of its scripts are so long unmaintained that they don't 
even work.  That, or they are so specialized that it's hard to even know 
what they do.

I do agree that a collection of small utility scripts would be great for 
people trying to learn how to program for Leo - IF they are well 
documented, and clear and simple.

On Monday, January 2, 2023 at 6:17:38 PM UTC-5 jkn wrote:

> It would be good to have a miscellany of little script examples like this 
> easily
> available, to give people assistance with learning Leo scripting. I know
> a few have been published as Github gists in the past, and there are some 
> clues
> in the Leoeditor.com documentation, but a few dozen snippets on one place,
> with some annotation, would be very useful, I think. I might even have a 
> couple
> of my own to contribute...
>
> J^n
>
>
> On Monday, January 2, 2023 at 5:14:47 AM UTC [email protected] wrote:
>
>> Leo has commands to capitalize, upcase, and lowercase the body text or 
>> selections of the body text.  I could not find a command to convert to 
>> title case (first letter of every word capitalized).  So here is a script 
>> to do so.
>>
>> The script does not take into account any tricky edge cases - it just 
>> uses the Python string.title() method.  The command is undoable.
>>
>> """Convert selection or body to title case."""
>> w = c.frame.body.wrapper
>> p = c.p
>> s = p.b
>> u = c.undoer
>>
>> start, end = w.getSelectionRange()
>> use_entire = start == end  # no selection, convert entire body
>>
>> undoType = 'title-case-body-selection'
>> undoData = u.beforeChangeNodeContents(p)
>>
>> if use_entire:
>>     p.b = s.title()
>> else:
>>     sel = s[start:end]
>>     head, tail = s[:start], s[end:]
>>     p.b = head + sel.title() + tail
>>
>> c.setChanged()
>> p.setDirty()
>> u.afterChangeNodeContents(p, undoType, undoData)
>> c.redraw()
>>
>

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/leo-editor/c44c8244-bfe4-4587-b415-84f835372e85n%40googlegroups.com.

Reply via email to