Re: [program-l] JAWS and ViEmu for Visual Studio 2008

  • From: Jamal Mazrui <empower@xxxxxxxxx>
  • To: program-l@xxxxxxxxxxxxx
  • Date: Thu, 03 Jun 2010 10:27:55 -0400

You may be able to do what you want with a custom FocusPointMovedEvent function. You would save certain values in global variables like the PC cursor row and column, and text on the current line. Each time the event function is called, you would compare the current values against previous ones, and speak appropriately.


If you need help with JAWS scripting, I suggest subscribing to the JAWSScripts list via FreeLists.org.

Jamal

On 6/3/2010 10:15 AM, Kerneels Roos wrote:
Hi folks,
Before I begin this message I would like to thank everyone on this list
and others related to programming while being visually disabled. Not
only do people take out the time to read and respond to queries on the
list, but some individuals have even taken the time to respond with much
information off list. This is incredible to me and it really encourages
me to find solutions and help where I can as well.

Now let me get into the topic of this post. The ViEmu add on for VS 2008
is really more than an add on, it integrates with VS 2008 on a package
level -- you find it's options under Tools > Options and then one of the
entries in the tree selection after installing it of course. It
transforms the VS native code editor into a vim-like editor that can
perform an impressive array of classic vim functions.

At this stage it looks like a very good option to increase productivity
while editing code in VS. For starters, JAWS actually reads line
contents (as apposed to no speech on gvim text editor alone -- at least
on my system that is). The contents of a line is read right after a
motion with the arrow keys or a key combo like JAWS key + Numpad 8.

To prevent JAWS from repeatedly reading the character under the block
cursor while in vim normal mode, one has to change the JFW config file
for VS to turn off screen echo since the vim normal mode is a blinking
block cursor -- JFW thinks it has to read it each time it blinks. For
the vim insert and vim visual modes things seem ok since those use a
thin cursor positioned just before where the next character will appear.

In vim normal mode one can jump around the text with key sequences like
these:
5j  will jump down 5 lines, 7k  will move up 7 lines, 3w will move 3
words along the same line  etc. Unfortunately JFW does not read the line
just after a move command while in vim normal mode. To hear the contents
of the line the cursor is on one has to do JFW key + Numpad 8 or Up,
Down arrow quickly.

And that brings me to my actual question; is there a way of instructing
JFW to read the contents of a line as soon as the cursor changes line?
It happens perfectly when one changes lines with the arrow keys, but not
with the vim movement commands, which tells me JFW doesn't look at if
the cursor changed position but rather if an arrrow key was pressed.

Secondly, while on the same line, if the cursor moves JFW should ideally:
1. read the char just before the cursor if the movement was one char,
2. read the next word if the cursor lands on the first letter of a word,

Note that it is possible to move N number of words forward with a vim
normal mode keystroke of something like Nw where N is a number.

So basically one would want to instruct JFW to read the cursor line as
soon as it changes, or otherwise, as soon as a vim normal mode move
command was issued, which can be fairly complex, for example:
gg  moves cursor to top of file,
G moves cursor to bottom of file
fx will search for the next occurance of x, which can be any character
(for example, to find the next ',' comma character you simply issue the
command f, (that is the key f and the key , right after each other)).

I guess this question could be summarised as follows:
1. Where would one enter code or perform a customisation to cause JFW to
treat special keystrokes as if they were some other known key stroke?
2. How complex is the JFW key recognition system -- does it for example
allow you to use regular expressions to identify key sequences?
3. Vim normal mode is entered by pressing the escape key while in any
other vim mode (for example, while in vim insert mode if you press
escape you enter vim normal mode). Would it be possible to toggle some
JFW variable depending on if escape was pressed, and can that variable
then be read by the other keyboard intercept code?
4. Alternatively, is there a way to instruct JFW to echo the contents of
a line as soon as the cursor changes lines -- even if that change jumps
the cursor several lines further?

This question is quite a technical complex one. Yes it relates more to
customising JAWS than to general programming issues, but it also relates
to programming while being visually impaired. My apologies if it is the
wrong list / too much off topic.

Best Regards,
Kerneels





--
Kerneels Roos
Cell/SMS: +27 (0)82 309 1998
Skype: cornelis.roos

--::| links |::--
1. Home: http://fmous.net
2. LinkedIn: http://www.linkedin.com/in/kerneels
3. oDesk: http://www.odesk.com/users/~~36f3a640e4d4e119
--::| links |::--
__________
View the list's information and change your settings at //www.freelists.org/list/programmingblind

Other related posts:

  • » Re: [program-l] JAWS and ViEmu for Visual Studio 2008 - Jamal Mazrui