A few points I forgot to mention. The default IndentUnit setting of EdSharp is two spaces. To change it to a tab character, press Alt+Shift+C for Configuration Options, Alt+I for IndentUnit, and enter \t as the value. If text is selected and you press Alt+LeftBracket for PyDent, or Alt+Shift+LeftBracket for PyBrace, the selected text is converted to the target coding style. On the other hand, if no text is selected, EdSharp assumes you want to replace all text in the file being edited. As a precaution, it creates a new editing window rather than replacing existing text. The new window uses the same file name in its title except for the extension. PyBrace code is given a .pyb extension and PyDent code is given (the normal) .py extension. One problem I have discovered with this approach is that an error message by the Python interpreter will correspond to the PyDent code that was run, but not necessarily the PyBrace code that was the original source, so one has to search for the offending code mentioned in the error message, knowing it is close to the line mentioned. This argues for making PyBrace correspond line for line with PyDent, but that is more of a challenge that I have not yet tackled. To further explain the motivation for this experiment, I have observed that Python is both an excellent programming language and one that is inherently visual for speech users. Speech communicates information in a serial manner, whereas the code structure in Python is conveyed by two-dimensional spatial organization that a sighted person readily understands. I incorporated features in EdSharp (and TextPal before it) to help read and write indented code more efficiently with speech. Those features are still available, and hopefully useful. Despite them, however, I have still felt less in touch with Python code -- wondering if I was missing indentation when either EdSharp or JAWS was not set to verbalize indentation changes, and trying to avoid nested code blocks when programming so I did not have to track precisely how much indentation was required on any particular line. Converting the same code to PyBrace format has made me feel more in touch with the code, and more likely to consider programming in Python. As mentioned, this is still experimental, however -- feedback, suggestions, and contributions welcome. Jamal On Fri, 14 Dec 2007, Jamal Mazrui wrote: > Date: Fri, 14 Dec 2007 22:36:01 -0500 (EST) > From: Jamal Mazrui <empower@xxxxxxxxx> > Reply-To: programmingblind@xxxxxxxxxxxxx > To: programmingblind@xxxxxxxxxxxxx > Subject: Seeking feedback from speech users of Python > > I have included an experimental feature in EdSharp > http://www.EmpowermentZone.com/edsetup.exe > > In seeking a more efficient way of managing the indentation requirement, I > am trying a coding style called PyBrace, where the colon and indented > block are replaced by a set of curly braces surrounding the block. > Alt+Shift+LeftBracket (think of the brace character) turns either all or > selected text into this style of code, which makes it easy to understand > the structure with speech. > > The inverse command is called PyDent, Alt+LeftBracket, which converts from > PyBrace format to the equivalent indentation required by the Python > interpreter. > > PyBrace assumes that the opening brace will be at the end of the line of > text that starts the block, and the closing brace will be on a line by > itself. Also, PyDent assumes that a single tab character is used for each > level of indentation -- though I intend to support other indentation > conventions as well if this approach seems productive. > > I have been able to convert to and from PyBrace and run a Python script > successfully (the Python fruit basket program). If anyone else can try > this approach, and let me know your results as well as any other ideas for > improvement, that would be helpful. > > Jamal > > __________ > View the list's information and change your settings at > //www.freelists.org/list/programmingblind > __________ View the list's information and change your settings at //www.freelists.org/list/programmingblind