On Mon, 20 Jul 2015 05:39:31 -0700 (PDT) john lunzer <lun...@gmail.com> wrote:
> Perhaps you can guide me through a design decision then. I'm still > hard at work on my quick-replace plugin. It's coming along swimmingly > and I use it everyday, getting more useful as I continue to add > features. > > I've added in a feature to search from a list of saved search/replace > patterns to quickly apply that pattern (great for individual > beautifying search/replace patterns or common tasks like removing > non-inline comment lines). I'm storing these "description", "search", > "replace" groups in an @settings @data node with special character > patterns to help me parse the body. An alternative would be g.app.db or c.db, as in: if 'quick_replace' not in g.app.db: g.app.db['quick_replace'] = {'saved_searches':[]} # or use dict's setdefault() if you prefer then g.app.db['quick_replace']['saved_searches'] is you list, permanently persistent for an specific user / ~/.leo dir. c.db might be more appropriate, outline specific, I think it depends on the file path, so moving ~/.leo between machines as I always do can be an issue. Cheers -Terry > This is working but what I'd really like to do is allow the user to > save their own patterns through the UI of my plugin. Since I'm using > Leo I thought I'd stay within the Leo paradigm, however it seems that > an @settings @data node may not be appropriate. > > What do you think the most Leonine method would be to store these > patterns for both reading and writing? Would it make sense to store > these in an external file (xml maybe) and then just have an @settings > node pointing to that file location? > > On Monday, July 20, 2015 at 8:17:09 AM UTC-4, Edward K. Ream wrote: > > > > On Fri, Jul 17, 2015 at 11:21 AM, john lunzer <lun...@gmail.com > > <javascript:>> wrote: > > > >> I see there is a getData method for reading from @settings @data > >> nodes. I see a suspicious lack of a setData method in the same > >> module. I'm guessing this is by design but is there any way to > >> save to @settings through scripting? > >> > > > > Heh. In effect, you have exposed a smallish security hole in Leo. > > > > There are settings which really should not be changed except by the > > user's conscious decision. You can run leoTest.leo to see a > > warning about a security hole. So if you could get a use to run a > > script to change the settings, you would undermine Leo's startup > > security. Otoh, if you can get the user to unknowingly run a Leo > > script, it could easily erase the entire hard drive without further > > ado. > > > > In any case, there is an easy answer to your question. Write a > > script to search for the desired setting in the @setting tree, > > creating it if need be. This is simply a search for the desired > > p.h. Then set p.h or p.b as appropriate. > > > > Having said that, I see little or no reason for such a script. > > > > Edward > > > -- 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 post to this group, send email to leo-editor@googlegroups.com. Visit this group at http://groups.google.com/group/leo-editor. For more options, visit https://groups.google.com/d/optout.