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.