IntelliSense for Dexterity - Ask and you shall receive
At the end of June, Mariano Gomez put out a call to the Dexterity development community to vote for a product suggestion using MS Connect. For more information have a look at the following post:
The original idea was for the Dexterity development team to add this feature into the product as most other Microsoft development environments already have IntelliSense support.
What we were not thinking about was to have a developer in the community create their own addon which provides IntelliSense like capabilities to Dexterity. But that is exactly what happened.
Tim Gordon from Alpine Limited decided he could do something and so he did. In mid July, I got an email from Tim, saying that he was working on something and can I have a look at version 1.0 of his DexSense tool.
So of course I said "No, why would I be interested?" ... just kidding. I was quite excited and keen to have a look at what Tim had achieved.
Since then Tim and I have been in constant and regular communication and have also involved MVPs Mariano Gomez and Leslie Vail. We have gone through five builds already and the tool is getting better and better with each iteration.
Once installed, launch Dexterity and load your development dictionary. Then you can run the DexSense tool which will load and stay resident in the system tray. The tool uses variations of the script provided in the Getting Table and Field Data out of Dexterity Dictionaries post to read the dictionary resources from the dictionary for Forms, Windows, Tables, Reports and Fields. After adding resources, you can always right click on the DexSense icon and select "Refresh Resources".
DexSense then watches for when the Dexterity Script Editor window is open and waits for you to type various keywords and press space. For example: table_ , form_ or window_ . It will then open a lookup window with the resources available selection. Continue typing to jump to the desired resource or use the arrow keys or mouse to navigate. Then continue typing the rest of the line and the resource will be inserted along with your typed code.
Note: DexSense can only work with a single instance of Dexterity at a time. If you run multiple sessions, it will probably bring up the lookups in all instances but will only have the resources showing from the session launched first. Also, Tim is working on adding functions and procedures, but we don't believe it will be possible to get the parameter lists.
I asked Tim about why he decided to create the tool and he explained:
I had been thinking about IntelliSense for Dex for years now. Back in 2002 my brother Neil and I started Astidian Systems and we had a large amount of Dex to write in very little time. So Neil built a tool which he called DexEdit to assist us.
I’m always on the lookout for ways to accelerate programming. Because of Neil’s DexEdit, I knew it was possible to handle key presses that occur outside of your application and get the text caret position on the screen – which are the 2 most vital things for building an IntelliSense tool. Even if we couldn’t find a way to get resource information out of Dexterity, the tool would still accelerate coding, especially in light of how long Dexterity object names tend to be, by allowing you to add your own items to the IntelliSense lists.
My approach to DexSense was to provide IntelliSense in such a way that it provides appropriate information at appropriate times, but interferes with the programmer as little as possible, allowing him/her to easily select an object name and/or close the IntelliSense form with just one keypress. I also didn’t want to have to modify Dexterity itself to provide this functionality – I wanted DexSense to be installed and uninstalled completely separately from Dexterity, making the program less intrusive and allowing it to be updated easier.
Anyhow, Tim and the other beta testers think that the tool is ready to be let loose on the Dexterity developer community to get more people testing it and providing feedback. Please note that this is currently a free tool and is provided "AS IS".
Please go to the product page below, download the tool and try it out.
While I think that Tim's product is awesome, I would still like to see IntelliSense incorporated into the Dexterity environment by the development team so we will not have the limitations that DexSense currently has.
Please post comments on the blog to let us know what you think of DexSense.
Also check out Mariano's post on the topic: DexSense: IntelliSense for Microsoft Dexterity.
14-Oct-2010: New Build 1.8 released, check out IntelliSense for Dexterity - DexSense 1.8 released.
09-Dec-2011: Fixed broken Link to DexSense page.
30-Jul-2013: Updated Links.