Hello all,
I was on the trip in mountains of High Tatras, really nice place btw. I though there about programming and taked few interesting ideas.
Note: this post will be generally about Python, but can be adapted to more languages.

So, who knows me, probably know, that there are two things I really hate on programming. First are ides, and second the indentation.
Nothing in bad, but typing about 6 tabs sometimes ewerytime I enter a new line, that seems really stupyd and annoing for me. Yes, there are ides that can do it automatically, but they are slow, compared to notepad for example, in which development is very fast. Also many things are not fully accessible for us, or are doing crazy things, what I personally don't like, that is why iI hate ides.

Hovever, I have idea, how to make indentation more useful for us. So, imagine the new ide, developed by completely blind person like me. There is text field with loaded code, which you must to edit. Yeah, and imagine, that you don't know the code. So, what to do?
Yeah, you must to read whole file, nothing pleasant if it have hundreds of lines. That is something that sighted person doesn't must to do, because he/she see what is where, like classes, methods etc. Next he/she can read from that point, so orientation is more easyer.
That's it, this is something what also blinds needs. So, imagine text field again, there is class with lots of methods with lots of code, but for start, you want to know only names of methods included. So, you press down arrow key, "class something:". If you press down arrow key again, you will hear a bump sound, that is annoucing there is nothing where you can go. And that is my idea, you are on zero indentation level. If you press ctrl+alt+right, you will change the indentation level, next as il to 1, so you will move inside the class only. Down, "def sayHello():". Down again: "def expmethod1():". Down again: "def expMethod2():". And there is end. So, you want to read content of important methods. By pressing up arrow key, you navigate to the sayHello method, and press ctrl+alt+right. Now you are on il 2, and can read all content included in the method. You can also write something new, ide will add correct indentation for you, based on the il. You are also able to set ide to show you all ils higher than your actual, so you will see content of cycles, conditions etc. in method without need to increase il, but you will not go out of actual method. also all is showed like method is your starting point, for example content of the while cycle have 1 tab instead of 3 for example.

I also thought about code debugging, for example highlighting parts of code. Here my idea is, that any form of highlighting can not be represented by speech. Instead of it, there would be sound. Hovever not sound like nvda do have for grammar mistakes, one brum and end. Instead, there should to be a quiet, not obtrusive noise during nvda is speaking highlighted part, all the time I mean.
Also jumping to the damaged lines would be appreciated if program crashes.

I don't know what else sighted people do have in ides, hovever i will like to read your opinions to this ideas and also hear some yours, we can also start development of fully accessible ide, if response will be positive.

Best regards

Rastislav

Thumbs up

Hi, so first I will say, I use ED sharp, which was built for screen readers, and does use a lot of the things you are talking about. I primarily use ED sharp for programming in java now, but I did quite a bit of python programming for a while as well.
it does provide auto indentation, which I use all the time. This feature can be turned on and off with a shortcut key, and you can change the level of indentations simply by tabbing or shift + tabbing regardless of where you are on the line.
It also provides the feature of jumping by indentation blocks, which is especially useful for python, but other languages too, as long as you are good about formatting your code. It can also jump by braces, for other languages that use braces to mark code blocks. It also provides a feature to compile your code, and if there is an error, it does move your coursor to the line of the error, and it allows you to see the error output in ED sharp itself, providing a temp text file for you to review the errors in. This does seem to have limitations that I haven't figured out how to get around yet, such as once you are compiling packages, but it works pretty well if you are just working with a few files and you aren't having to pass any additional command line arguments.

I use ED sharp, and like it a lot, but it does lack a lot of the features of more mainstream IDEs, which is fine for the most part, but IDEs can make certain things a lot easier to develop. I can't say I have experience with a project that I could not write using a basic text editor and the command line though, but my programming instructors have more or less told me that certain things like GUI development at least using java, it is recommended to use IDEs such as eclipse.

Anyways, ED sharp is not maintained anymore, and it is very hard to find, if you want it let me know.

The Quorum project also provides a add on to netbeans, which is slower, such as what you were talking about, but sodbeans, the add on for netbeans, does have a lot of code navigation features, at least last time I used it. It was also built to work with screen readers, and it provides a lot of features to make programming easier, however, it is a project still in work with a lot of bugs last time I used it, but the quorum team has made great progress. I haven't looked at quorum in about a year or so, so I don't know what new updates they have for sodbeans.

So, some programs already exist that have a lot of what you suggest, but nothing that is is light weight, and that is still maintained, ED sharp sounds like a lt like what you want, assuming you are using windows but it is not maintained anymore.

hope this helps,

TJ Breitenfeldt

Thumbs up

I'm using Eclipse for Java development. Sure, it is not completely accessible, but it's really not bad. Indentation is done automatically, the Cursor jumps to broken code when the program crashes, and the screenreader says "invalid" and "end of invalid" on the damage. You can even, instead of opening the class, open a submenu of each file where you can directly jump to methods and condition blocks.

Thumbs up

Hello,
thank you for your replies.
@TJ.Breitenfeldt: Yes, can you please send me ED Sharp? I can not say if it provides what I am talking about or not if I do not see it. I think that there is no need to use ide when creating Java gui applications, I developed first in Eclipse, second in notepad and it was the same writing, I don't know if Eclipse have something similar to Borland delphi gui editor, in which you was able to drag components from palette and drop them to the form, next simple create events methods by few clicks from these objects. I have doubts about it hovever, because writing gui is specific to language, and Eclipse is multilanguage ide.

@targor: Eclipse is good, but for me slow and it haven't that great navigation as I described in post 1, as I know it can only jump you to the method, but it is not ready for screenreader, preventing him from going out of level. I haven't good experience with pydev's indentation, there was somehow four spaces grouped as one tab, but screenreader readed them individually, so deleting was interesting stuff. smile

I will also try to code small show of what I mean by accessible editor, as I descrybed in post 1, hovever I have no idea how to grab input from keyboard in c++ to characters, so I must to do some research first.

Best regards

Rastislav

Thumbs up

Not sure if ED sharp is what you want, but it is very accessible. If you have used notepad ++ before, think of it like that, but built to be accessible to screen readers.
Here is the link, I put the executable up on my personal server, you can find ED sharp here:

ED Sharp Download

TJ Breitenfeldt

Thumbs up

Is Ed Sharp open source?

Thumbs up

Hello guys.
In my case, for program in python, and .net variant, I ever use visual studio.

For me, visual studio is the ideal editor. With it's auto completion tools, solution manager, nuget package repository system, and some other tools that it offer. I use jaws with them, and works nicely.
Respect that the features that you say, in vs you can go to the solution manager, and navigate with the arrows keys throw the files of your project, and jump directly between class, methods, properties, and simply press enter on it, to move the cursor editor to the starting point of that method or class.

I know that vs include keystrockes to jump to the start of the scope, or the end.
The indentation is automatic, and if you configure jaws (or nvda) you can do that the screen reader tells to you when the indentation change.

About the debugging, when you are do that in a program, if you put a breakPoint in some part of your code, you can read the current status of the variables and when something crashed, after of show the exception the editor point directly to the line in conflict.

But, your idea of make a new ide, well. sounds good.

A, when I have to program in java, or some language that visual studio doesn't support, i use eclipse.

And if i have to made a small change to a code, like in a php script or similar, simply use wordpad.

bye

Thumbs up

Hi,
liclips a variation of eclipse is what I have been using for my python class, it takes care of indentation for you,single tab is 4 spaces which is what's recommended in python,jaws says invalid if the IDE thinks something is screwed up and so on.
Your idea of code navigation certainly sounds good,and I haven't actually tried such on lieclipse so far. Probably due to me not knowing of such features in the firstplace.
However aren't there addons for NVDA that do the same thing,navigate in code with the use of certain keyboard shortcuts for different indentation levels.
Grryf

Thumbs up

Hello,
nvda plugin is great idea, it have potential to link our minds with modern ides, so there would be less work and better results. Hovever I can not create nvda plugin yet, I looked into documentation few times and it seems there are many things to study for creating something like modified navigation in text field, so I am programming now something like ide from scratch in c++ to see how my ideas works in practice. I will post when i will have something usable, there will be two weeks pause because I will not be at home, but after it I will continue and try to done some basic text editor with improved navigation functionality as I descrybed in post 1. Then I will see if developing nvda plugin makes sense or not.

Best regards

Rastislav

Thumbs up

Hi again,
well, I finished something like code browser,, literally, you can not edit code, just browse it. Hovever it is great example of the navigation system, it demonstrates basic navigational principles I talked about. I would like to public it but.... it has two sounds, one is from jaws and second from quentinc playroom, great start, I must find some replacement for them first.

Best regards

Rastislav

Thumbs up

What you're talking about sounds a lot like this NVDA plugin... https://github.com/spmealin/nvda-indentation-navigation

Thumbs up