How does @clean handle it when a teammate does a major restructure of a module? For example, refactors a Python class into a base, a derived plus a mixin, and moves 4 global functions into the base class as methods, and moves 3 methods of the class out into functions?
(Just asking) On 19 August 2015 at 09:13, Edward K. Ream <[email protected]> wrote: > On Tue, Aug 18, 2015 at 2:59 PM, David McNab <[email protected]> > wrote: > >> Hi Ed, thanks for your detailed response. >> > > You're welcome. > > > >> I got a bit of a rude shock a year ago when I took my present development >> role. At first, I imported one of my job's codebases into a Leo tree, with >> aim of continuing with Leo as my editor of choice. But I saw that this >> would be unworkable, since my teammates would crucify me for "polluting" >> the files with Leo sentinels, whilst any changes made by others would be >> difficult to reflect in the Leo view without removing then reimporting the >> file. >> > > Have you tried using @clean? > > With Python code, it's not such an issue, since Leo is generally quite >> good at carving up Python sources into a simple module/class/method >> hierarchy. The difficulty comes with file types that are hard to carve up >> automatically AND meaningfully, such as javascript, html templates, css and >> so on. >> > > @clean doesn't use importers. You (or @auto) "carve up" the file as you > like initially, and from then on @clean pretty much "just works". > > Yes, a better importer for javascript (if that is possible) would be > great. There already is an html importer, with an @data node describing > which html elements you want to create new nodes. A css importer seems > less useful, because css lacks structure, but I could be mistaken. > > In other words, get the code into Leo with @auto, and then change @auto to > @clean. Or just use the recursive import script in scripts.leo. > > >> For write-only applications (ie, single-developer projects), Leo is on >> numerous fronts the tool of choice. But in scenarios where Leo needs to >> accommodate changes made by non-Leo users, people who won't accept Leo >> sentinels, and who reject literate programming, there's a struggle. This is >> a non-trivial issue, that does not reflect on Leo, but rather reflects on >> team development culture. >> > > This used to be true, before @clean, but now, with @clean, I think you > should be able to use Leo in a completely invisible way as far as your > teammates are concerned. The only problem is for *you*: if you reload a > file changed outside of Leo (by a teammate) you may want to move changed > lines from the end of one node > > (the default) to the start of the next node. See this discussion > <http://leoeditor.com/appendices.html#the-mulder-ream-update-algorithm>, > and especially the section called "Guesses don't matter". > >> >> I would love nothing more than to be able to edit the company's 80,000+ >> lines of source in Leo, while still being able to work in with my >> teammates, and would welcome any suggestions. >> > > @clean is the reason I think that Leo is now, at long last, essentially > complete. > > 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 [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/leo-editor. > For more options, visit https://groups.google.com/d/optout. > -- 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 post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/leo-editor. For more options, visit https://groups.google.com/d/optout.
