Leo programming can definitely be a challenge.  It's tempting to say "go 
look at plugin X", for example, but what's really needed is a way to find 
out how to do things, how to discover the right existing part of Leo's code 
base, and how to go about the work effectively.  There isn't anything 
comprehensive along these lines, and Leo is so big and capable that it can 
support a great number of very different kinds of scripts an applications.  
LeoDocs and the Cheat Sheet help, but only scratch the surface.

In addition, in many cases one has to learn some PyQt as well, and that has 
its own learning curve.  I tend to learn about using Qt by writing small 
scripts to some some Qt thing I'm interested in.

I've been slowly working a New User's Guide, but it won't cover the kinds 
of things you are asking about even when I get it more fully fleshed out.

Since you mentioned writing a interface for the log pane, here's a link to 
a series of posts I wrote about creating applications that run in a tab: 
Creating 
Qt Apps That Run In A Tab 
<https://groups.google.com/g/leo-editor/c/D3OU6sO8-QU/m/20kh9h4_FAAJ>

I think that the suggestion of writing plugins is good, but I find it even 
easier to write experimental code as scripts in a Leo outline.  With a 
script it's easy to experiment, and you can even write code that changes 
core Leo behavior.  For example, Leo can optionally show a vertical guide 
line at the right margin of the body.  I developed that code in a script.  
The script monkey-patched core Leo code.  When I got it working right, I 
then went ahead and incorporated the code (via a pull request) into Leo's 
code base in PyLeoRef.  Remember, you can use the full power of @others and 
named sections in a Leo script, and you don't even have to have the script 
in an external file.

There are various little techniques that make working with Leo's code 
easier.  Different people use different ones and I don't think there's an 
extensive compilation anywhere.  I make heavy use of searching with the Nav 
tab, and marking nodes for easy navigation.  Edward makes effective use of 
clones and search patterns.

This may not have been all that helpful, but I think that working out ways 
to find Leo's features and interfacing with them is one of the more 
important things you can do, and that's going to take a lot of trial and 
error.  Taking on a limited task as you did with a log pane interface is 
definitely a good way to start.

On Saturday, December 9, 2023 at 10:07:25 AM UTC-5 iamap...@gmail.com wrote:

> Hi, Jake,
>
> Thanks for your idea. 
>
> I do like learning deeply, but step by step.
> I mean, I don't want learning curve 'too steep'
>
> [image: image.png]
>
>
>
> On Sat, Dec 9, 2023 at 10:14 PM Jacob Peck <gates...@gmail.com> wrote:
>
>> "Too deep" is definitely a bit subjective, and will vary by person.
>>
>> But what I found helpful is to build a few plugins.  Find some pocket of 
>> your workflow that you think could be just a little bit better 'if ZZZZ' 
>> and write a plugin that does ZZZZ.
>>
>> Plugins are a good way, imo, to limit your exposure -- you'll likely only 
>> be interacting with the parts of Leo's code you really need for your 
>> intended functionality.  Unfortunately there's no real way to avoid reading 
>> Leo's source code, but you definitely don't have to drink from the firehose 
>> to get a better understanding of it.
>>
>> Jake
>>
>> On Sat, Dec 9, 2023 at 9:02 AM HaveF HaveF <iamap...@gmail.com> wrote:
>>
>>> Hello,
>>>
>>> I have mastered the basics of Leo and am using it daily this year. I can 
>>> use Leo to manage contents, write commands, create buttons, and even 
>>> develop a small interface on the Log/Find/Tags/Nav panel. However, I'm not 
>>> satisfied and wish to delve deeper into Leo. 
>>>
>>> I have an idea to create an importer for a specific file format, but I 
>>> stopped by my understanding of Leo.
>>> Create an importer is not important and not a high priority for me, It's 
>>> just one of many ideas that I can't implement because I don't know Leo well 
>>> enough.
>>>
>>> I'm eager to expand my knowledge of Leo. While reading code is a viable 
>>> learning method, I find the scope of Leo overwhelming. Could you recommend 
>>> an approach or path to learning more about Leo that is *manageable and 
>>> not too steep*?
>>>
>>> Thanks!
>>>
>>> -- 
>>> 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+...@googlegroups.com.
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/leo-editor/bd6bd906-bfe5-4425-a68b-cad2dd6e4783n%40googlegroups.com
>>>  
>>> <https://groups.google.com/d/msgid/leo-editor/bd6bd906-bfe5-4425-a68b-cad2dd6e4783n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>> -- 
>>
> You received this message because you are subscribed to a topic in the 
>> Google Groups "leo-editor" group.
>> To unsubscribe from this topic, visit 
>> https://groups.google.com/d/topic/leo-editor/g0Irx8egu7A/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to 
>> leo-editor+...@googlegroups.com.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/leo-editor/CAJ1i%2BSbbdSyVf7ObkLNj%3DGGeGbL9%3D82VGy5fXd%2BS%2B37qrBYW1w%40mail.gmail.com
>>  
>> <https://groups.google.com/d/msgid/leo-editor/CAJ1i%2BSbbdSyVf7ObkLNj%3DGGeGbL9%3D82VGy5fXd%2BS%2B37qrBYW1w%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>
>
> -- 
> --
> Sincerely,
>
> HaveF
>

-- 
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/9d984c9c-6e3e-49aa-900f-e2d48840bdf5n%40googlegroups.com.

Reply via email to