On 3/27/2014 1:10 AM, Sean Felipe Wolfe wrote:
Hey everybody,

I was working with a new programmer today and ran into a couple issues
which I'd love to see IDLE be able to address:

1) non-asciii charcters: Strip all non-ascii characters. I've found
copy/paste on sample code from a website, sometimes picks up spurious
non-ascii bits.

The problem I have had is spurious ascii chars, such as line #s or prompts. There is a proposal for an option to auto-strip '>>>' and '...' prompts. I would like a way to strip line numbers in text lines. There is a separate proposal to add line #s *beside* but not in text lines.

In Py 3, Python code *is* unicode, so non-ascii chars may be an essential part of the code. If copying picks up non-code, it seems to me that this would be the fault of the user selection, the presentation format making selection of only code impossible (as with the Idle shell and some line-numbered windows), the browser, or the website. What case are you referring to?

Also, see below.

> It would be great to have a pull-down menu function
which forces the script to save only ascii and discard the rest.

If you mean save to disk, that would be wrong. Modifying text in an edit window should be separate from saving.

Maybe there is already a way to do this?

I am sure not.

2) Fix indentation: it would be great to have the equivalent of vim's
"gg=G" sequence to automatically fix indentation issues.

How do you expect a non-vim user to have any idea what you mean?

I thought we had this already actually?

There are indent related options on the preference dialog and editor format menu. Without knowing what you want ...

There is a proposal to add a generic extension that could run 3rd party code analyzers on the contents of an edit window and display results in an output window. Your post suggests that a useful (and simpler) enhancement would be a generic way to apply a line-transformation function to all the lines of a block (default = whole file). All the options listed on the editor format menu (except reformat paragraph) fit the following pattern. (I believe the ones that do not say 'region' only modify the whole file.)

def replace_lines(func, file_slice)
  for line in file_slice:
    <replace line with func(line)>

I believe both of your requests also fit this pattern.

I do not know whether any of the existing functions use a common loop like the above, but the visible enhancement would be to load funcs from a file that users can edit. Then users like you could extend Idle simply by adding line transformation functions that do exactly what you want, without waiting for someone like be to be persuaded to add it and without writing a full-blown extension like idlelib/FormatParagraph.py, which is much harder than writing just the transform function. This would be much more powerful than adding a macro recording facility.

Such an enhancement should also make it easy to bring up an argument input box, such as with Format / Tabify Region.

--
Terry Jan Reedy

_______________________________________________
IDLE-dev mailing list
IDLE-dev@python.org
https://mail.python.org/mailman/listinfo/idle-dev

Reply via email to