On Saturday, September 21, 2019 at 2:04:22 AM UTC-5, Edward K. Ream wrote:

#1341 <https://github.com/leo-editor/leo-editor/issues/1341> ..suggests 
> that calls to g.os_path_expandExpression should be strictly limited to the 
> context in which they were originally proposed, namely to compute paths in 
> @<file> nodes.
>

The culprit is the overly-clever distinction between *c.*os_path_finalize* 
and *g.*os_path_finalize*. The commander methods expand path expressions; 
the global functions do not.

Leo's contains 27 nodes that call c.os_path_finalize*:

- 7 nodes are directly involved with path computations in leoAtFile.py.
- 5 nodes are legitimately involved in path computations elsewhere.  Some 
should partially change.
- The remaining 15, including 3 ShadowController methods, probably should 
call g.os_path_finalize* instead.

Two nodes in plugins call c.os_path_finalize*.  Both these should call 
g.os_path_finalize* instead.


*Proposed fix*

- The c.os_path_finalize* methods will be deprecated. They will call 
g.os_path_finalize*, with a deprecation warning.
- All calls to c.os_path_finalize* should be changed to calls to 
g.os_path_finalize*, with a #1341 comment.
- 12 nodes, all in Leo's core, should explicitly call 
g.os_path_expandExpression in addition to g.os_path_finalize*.


*Summary*

Imo, this is an important change, worth the risks inherent in any 
significant change to Leo's code base.

This is a variation of the evils of extra kwargs that Vitalije has properly 
warned against.

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 view this discussion on the web visit 
https://groups.google.com/d/msgid/leo-editor/bb4c4b3e-1014-446f-a2bc-81edccba53a9%40googlegroups.com.

Reply via email to