This is an Engineering Notebook post. It describes recent thoughts and test.
Recently I been struggling to understand what, exactly, any new theme code should do. *Aha*: I can test themes without altering a line of code! There are two parts of this strategy... *Part 1: Use a minimal test file* The *test_theme.bat* script *simulates* difficult theme-related code by loading two files, a very small test file, *test_theme.leo*, and an actual theme file, say EKRLight.leo. test_theme.leo contains nothing but settings that we *don't *want to put in theme files: @bool minibuffer_find_mode = False @bool show-tips = False @bool use-gutter = False So now EKRLight.leo contains only an @theme tree, not the settings above. Finally, I changed the F5 @command script so that it executes test_theme.bat. *Part 2: Disable myLeoSettings.leo*Even though I'm running the F5 script from one copy of Leo, I can disable myLeoSettings.leo by renaming it. Doing so revealed several unbound @-constants in leoSettings.leo. They have all been fixed. *Summary* 1. Loading EKRLight.leo *last* is an excellent simulation of theming that required *no* changes to the existing theme-related code. Something like this: leo test_theme.leo EKRLight.leo The test is even better when myLeoSettings.leo has been disabled. 2. leoSettings.leo now apparently contains no unbound @-constants. This should make testing theme files significantly easier. 3. The script above suggests the way forward. Something like: leo test_theme.leo --theme=EKRLight.leo This would load EKRLight.leo last, as required, but would then close EKRLight.leo. Following this super simple strategy is important. Messing with settings will be hard enough. That's next. Finally, we can replace --theme by a setting in myLeoSettings.leo. 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 https://groups.google.com/group/leo-editor. For more options, visit https://groups.google.com/d/optout.