I guess basic use cases are covered by rclick menu?

On Tue, Feb 28, 2012 at 5:46 PM, Kent Tenney <[email protected]> wrote:
> The utility I use basically just specifies
>
> - interpreter (shell or an application)
> - code (node contents, either a command line or script)
> - where stdout and stderr go
>
> This has been adequate for me.
>
>
> On Tue, Feb 28, 2012 at 9:03 AM, Edward K. Ream <[email protected]> wrote:
>> Revs 5037/8 contain fixes that allow the open-with command to start to
>> work, at least in 'subprocess.Popen' mode.
>>
>> However, I think it is time for a complete rethink of how users
>> specify open-with settings.
>>
>> ===== The problems
>>
>> 1. The format of settings in @openwith nodes is way too wonky.  At
>> present, the body text of such nodes consists of a single line, which
>> contains a 3-tuple of elements. Let us call this line the **open-with
>> line**.
>>
>> The entire open-with line must be a valid Python tuple.  This causes
>> problems for both user and implementation, as discussed more fully
>> below.
>>
>> 2. openTempFileInExternalEditor is the method that translates the
>> settings in @openwith nodes into code that actually open the temp file
>> with the desired editor.  At present, this method has to do an
>> **eval** of the single @openwith line, which has lots bad
>> consequences:
>>
>> - eval is a slight security problem, although there are a gazillion
>> worse problems.
>>
>> - The user has to quote strings, and those quotes are removed by eval,
>> so there is no easy way to specify quoted strings (the user has to
>> *doubly* quote strings.)
>>
>> - There is no indication of what the parts of the open-with line mean.
>>
>> 3. At present, openTempFileInExternalEditor does some ridiculously-
>> complicated munging of the *eval'd* open-with line in order to get
>> produce the correct call to subprocess.Popen.  It's possible that
>> there is an easier way, but I haven't found it yet.
>>
>> ===== A proposed solution
>>
>> 1. We need a much more user-friendly format for @openwith nodes.  Let
>> us suppose that the body of @openwith nodes contains one or more lines
>> of the following form::
>>
>>    tag: value
>>
>> The possible tags will be::
>>
>> - kind: <a string>
>>
>> The value specifies the **opener logic**, that is, the method used to
>> launch the external editor, one of
>> ('subprocess.Popen','os.system','os.startfile','os.spawnl','os.spawnv',
>> 'exec')
>>
>> - arg: <a string>
>>
>> There may be many such arg lines. Each line will be a string to be
>> passed as an argument to the opener logic, in a format that is
>> compatible with the specified opener logic.
>>
>> **Important**: quotes in <a string> will be *retained* (not eval'd),
>> allowing the user to specify exactly the arguments to be passed to
>> opener logic.
>>
>> - custom: <a string>
>>
>> Here, <a string> *will* be eval'd, yielding an object to be used as
>> the opener logic.
>>
>> It's likely that either the "custom" tag or the "exec" opener value is
>> redundant.
>>
>> ===== Summary
>>
>> The present scheme is wonky, confusing, inflexible and extremely
>> difficult to implement. It should be replaced immediately.
>>
>> It is urgent to do this asap, so that the new scheme can be tested in
>> time for Leo 4.10 b1.
>>
>> Your comments please, Amigos.
>>
>> Edward
>>
>> --
>> You received this message because you are subscribed to the Google Groups 
>> "leo-editor" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to 
>> [email protected].
>> For more options, visit this group at 
>> http://groups.google.com/group/leo-editor?hl=en.
>>
>
> --
> You received this message because you are subscribed to the Google Groups 
> "leo-editor" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/leo-editor?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/leo-editor?hl=en.

Reply via email to