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.
