Some interesting thoughts here; hopefully Ben will make issues for these on the tracker. Some things we've already discussed, some things are a lot of work, and some things are new. I hope you don't mind me forwarding this to the ML, Ben.
----- Forwarded message from Ben Papworth <[email protected]> ----- Authentication-Results: mx.google.com; spf=neutral (google.com: 212.82.104.172 is neither permitted nor denied by domain of [email protected]) [email protected]; dkim=pass (test mode) [email protected] X-YMail-OSG: cIMPdo4VM1mdZkE7EgT1LgafduE37qVwFwLQcryEw5QX2VezQh5jJpBAK7Zb5PB5fI61Qz812UDFPipXqlBkdD8dVHS_U3hwMZLoVNDpqLbpLXWfBzN_AOStT6MY1TtL3xEK.ihl6K99rUMKK5eL4rXhUPyPR3SPPhO1IeV97ahzTiQae3PawBTXRyio25U_ezVAL2jI4buAuk.pfOoHVeyuCopEagspwkyV3jQy LFUx5ODFsBO2Pg890QQYHD0w3qYmNvUxsxkEP7favQv3f_NScKywZikL3caJJg-- From: Ben Papworth <[email protected]> Subject: Thanks for bpython! (and some suggestions) To: [email protected] Hi Bob, Thanks for developing bpython - I've been incrementally developing something similar myself over the last year, so it's great to find someone who's already got there with the whole curses thang. I'd like to use this as a base for developing a console component in IronPython. Can I make a few suggestions? I've got the source, so I'll see whether I can come up with some patches for you to evaluate. 1) Don't show internal/private (__ prefixed) attributes first. >>> a="" >>> a. ┌──────────────────────────────────────────────────────────────┐ │__add__ __class__ │ │__contains__ __delattr__ │ │__doc__ __eq__ │ │__format__ __ge__ │ │__getattribute__ __getitem__ │ │__getnewargs__ __getslice__ │ │__gt__ __hash__ │ │__init__ __le__ │ │__len__ __lt__ │ │__mod__ __mul__ │ │__ne__ __new__ │ │__reduce__ __reduce_ex__ │ │__repr__ __rmod__ │ │__rmul__ __setattr__ │ │__sizeof__ __str__ │ │__subclasshook__ _formatter_field_name_split │ │_formatter_parser capitalize │ │center count │ │decode encode │ │endswith ... │ └──────────────────────────────────────────────────────────────┘ I would suggest either changing the sorting order, or even provide an option to not display these by default (i.e., if you did want to see them, then writing 'a._' should still expose them all.) 2) I like the rewind function. I don't understand why all Python shells, after you enter a multi-line input, don't treat that whole block as a unit, rather than scrolling through each line as if it was independent. The rewind is much closer to what we really need, but I'd like to have a complete editor for the block. 3) Use a key combination (I like ctrl-space) to change the list of possible completions displayed, if they fit onto more than one screen, i.e., suggestion 1) has a ... and this should indicate that the user can press ctrl-space to see the next screen. 4) I think I might have found a bug with completion of filenames. On my Mac, if I type >>> a = "/ then press tab, I get >>> a="/Applications/ ┌──────────────────────────────────────────────────────────────┐ │/Applications/ /bin/ │ │/cores/ /dev/ │ │/Developer/ /etc/ │ │/home/ /Library/ │ │/mach_kernel /net/ │ │/Network/ /opt/ │ │/private/ /sbin/ │ │/System/ /tmp/ │ │/User Guides And Information/ /Users/ │ │/usr/ /var/ │ │/Volumes/ │ └──────────────────────────────────────────────────────────────┘ If I then delete the leading '/', and press tab again, I get >>> a=/bin/ ┌──────────────────────────────────────────────────────────────┐ │/Applications/ /bin/ │ │/cores/ /dev/ │ │/Developer/ /etc/ │ │/home/ /Library/ │ │/mach_kernel /net/ │ │/Network/ /opt/ │ │/private/ /sbin/ │ │/System/ /tmp/ │ │/User Guides And Information/ /Users/ │ │/usr/ /var/ │ │/Volumes/ │ └──────────────────────────────────────────────────────────────┘ It looks like the editor still thinks it's in the mode of cycling over the '/' completion, rather than identifying the completions of '/Applications', and has managed to delete the " before the completion. 4) Also, it looks like there is an issue with filenames that contain a '.' - i.e., expanding /Applications/ gives >>> a="/Applications/Address Book.app/ ┌──────────────────────────────────────────────────────────────┐ │app/ /Applications/AppleScript/ │ │app/ app/ │ │app/ app/ │ │app/ /Applications/DivX/ │ │app/ app/ │ │app/ app/ │ │app/ app/ │ │/Applications/Games/ app/ │ │/Applications/Google/ app/ │ │app/ app/ │ │app/ app/ │ │app/ app/ │ │app/ app/ │ │/Applications/MacPorts/ app/ │ │/Applications/Parallels/ app/ │ │app/ app/ │ │app/ app/ │ │app/ app/ │ │app/ app/ │ │/Applications/Utilities/ app/ │ └──────────────────────────────────────────────────────────────┘ (i.e., it's stripped all the completions that finish with .app/ to app/) Anyway, thanks for all your hardwork, and I'll see how I can help out myself. Thanks, Ben ----- End forwarded message ----- -- Bob Farrell --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "bpython" 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/bpython?hl=en -~----------~----~----~----~------~----~------~--~---
