Whole Tomato Software Forums
Whole Tomato Software Forums
Main Site | Profile | Register | Active Topics | Members | Search | FAQ
 All Forums
 Visual Assist
 Technical Support
 Feedback/Problems from first test of VA X

You must be registered to post a reply.
Click here to register.

Screensize:
UserName:
Password:
Format: BoldItalicizeUnderlineStrikethrough Align leftCenterAlign right Insert horizontal ruleUpload and insert imageInsert hyperlinkInsert email addressInsert codeInsert quoted textInsert listInsert Emoji
   
Message:

Forum code is on.
Html is off.

 
Check to subscribe to this topic.
   

T O P I C    R E V I E W
ivec Posted - Sep 16 2006 : 7:43:53 PM
Here are a few first impressions, bugs, and wishes:

Bugs and problems encountered:

- spell checkers often puts red wiggles under correct identifiers
I occasionally see red wiggles under identifiers that are correctly spelled and match a declaration. Words like: type, include, exclude.
This seems to be a spell checking bug...

- Spell checking dialog: currently source text word is not visible
When I use the spell checking dialog (Alt->A->T->C), the currently selected error is highlighted in the source code in some pale grey color, which is barely noticeable. Can I changes this somewhere (e.g. put a red background that would make it obvious) ?

- Failure to go to actual function definition with const params
You know it C++ the 2 following functions are identical:
double foo( double d, int* p); //declaration in .h file
double foo( double const d, int* const p ) { ... } // def in .cpp
This 'top-level' const on the parameters is not part of the function's signature: it is an implementation detail in the function's definition.
VA seems to treat this pair as two separate functions, and fails to go to the actuall function definition (in the .cpp) when I select "go to definition" from a call point -- it sends me to the function's declaration instead.
This is a bug and regression compared to the original behavior in VS2005, which handles this correctly.

- "Add Similar Member" refactoring
When I apply this to a member function in C++ code, the function and function body is added to the header file -- even though the original member function is defined in the implementation file (only declared within the class). Furthermore, the new member function name fails to be immediately recognized, and the "Move Implementation to source file" option is not accessible.
Dumb. It's faster to do the operation manually.

- "Rename" refactoring
I have seen it offer to rename instances of a name within comments of a totally unrelated file. Probably because they were on a line with a preprocessor directive such as:
#define DEBUG_INIT() initializeDebugMode() // init debug log
When renaming class "log", renaming of this occurrence of 'log' within this comment line would be suggested by default.
Yet instances of the same work in comments and strings next to uses of the log class would go unnoticed.
This kind of makes the refactoring useless, I am better off doing a global find-and-confirm-replace.

- Adding a *data* member / similar member refactoring
In C++, it would be a must, for this to be useful, to update the member-initialization lists of all constructors of the class.
Actually, in general, having a tool to update and verify that the member-initialization-lists of each constructor are complete and in the correct order, this would be a very useful refactoring in C++.



What I liked:
- better intellisense/completion: yes, it's quite good(!).
- completion of path names being typed in #includes
- syntax coloring? cute but not really a productivity boost IMO
- spelling & keyword expansion (but I use some free tools for this)

So overall, I'd say VA X is nice, but... so far I find that the bugs and problems above should be corrected for VA-X to be worth its price...

Cheers -Ivan
2   L A T E S T    R E P L I E S    (Newest First)
ivec Posted - Sep 17 2006 : 5:12:55 PM
Regarding the spelling problems that I reported, here's a screenshot that shows what I mean:
http://ivan.vecerina.com/vax_spell.png
- First I get red wriggles under properly spelled identifiers, in this case 'type'.
This happens in several files, typically on identifiers that are actually english words.
- Second, note that misspellings in comments are often not highlighted. And when I bring up the spell checking dialog, the current misspelling is "highlighted" in a grey color on a white background. This is barely distinguishable among comments (green on a white background), forcing me to carefully search for the context of the word being corrected.
So:
- is there a way to change the color used to highlight the current misspelling shown in the spell checking dialog?
- what about the incorrect red wiggles ?

** Failure to go to actual function definition with const params
I know that VA-X 'sees' both functions. But it appears to fail to identify that the .cpp function *definition* with added 'const'-s actually implements the function declaration in the .h file.
So when I right-click the identifier in calling code, and choose "go to definition", instead of sending me to the .cpp file (as should be the case to see the *definition*, and is the case if the extra 'const' qualifications are omitted), it goes to the *declaration* in the .h file.
These "implementation-only" constness of parameters is a known and useful feature of C++ that I want to use. It's a pity that VA-X does not seem to be aware of it.

** Add similar member: fine. But why is the option "Move Implementation to source file" not readily available?
Even with practicing, this 'smart' refactoring ends up being slower than a double copy-paste. No big deal though, it's just one feature I see little interest in.

On the other hand, adding new data member to initialization lists is the kind of thing where an automatic refactoring would be useful. Actually having the ability to check that all members are explicitly initialized, in the correct order, and in every constructor, is something that is really tedious to do manually; something where an automated refactoring would excel.
The obvious choice is to either default-construct each data member: put a () after the name of the member -- however complex the member's type is will not change anything. Alternatively/optionally put a placeholder within the parentheses (e.g. ###) for newly added initialization entries, so they can be checked and verified.
Take it as a feature request.


The rest was about what I did like ! so no follow-up required on these (completion etc are good, and yes I have seen what autotext is about).

Thanks, and please let me know of your suggestions regarding the spelling problems in particular.
--Ivan
feline Posted - Sep 17 2006 : 2:58:04 PM
which version of VA and which IDE are you using?
in future can you post the bugs as separate threads please? it makes it a lot easier to discuss them.

do you have any other plugin's installed? your comment about spelling and keyword expansion suggest you do. it is possible there is some conflict going on here between VA and any other plugin's.


- spell checkers often puts red wiggles under correct identifiers
the closest i have ever seen is after a significant code change correct code can be underlined for a couple of seconds, before VA has time to catch up. can you post some example code that shows this happening?


- Spell checking dialog: currently source text word is not visible
what background colour are you using in the editor? for me the grey block is very clear indeed.
is the editor background colour the same as the windows global background colour?


- Failure to go to actual function definition with const params
adding these two lines to a project in VS2003 with VA 1535, alt-g on a call to foo() produces a popup list showing both the declaration and the definition.


- "Add Similar Member" refactoring
the function body appearing in the header file is by design.
"dumb" is open to debate. if you have a lot of complex parameters, or you are not currently sitting in the header file, then this can be a lot faster than doing it manually. most of the refactoring features in VA take getting used to, and some changes to how you work before you start to get the most out of them.


- "Rename" refactoring
confirmed

case=2554


adding new member member variables to the initialization list on the class constructors is an interesting idea, but not as easy as it sounds. what happens when the new member variable is of type:

std::vector<std::pair<int, CFelineData> >

? i have some classes that are full of members with types considerably more complex than this.


as for your request, better intellisense completion is rather hard to comment on. suggestions in VA (lists with question mark icons) are already very good in my experience.

completion of path names on #include files has been there for years, and works perfectly for me.

syntax colouring, half the forum would lynch us if we suggested removing this. simply turn it off if you do not find it helpful, but personally i find it very helpful indeed.

keyword expansion, have you looked into VA's autotext feature?
http://www.wholetomato.com/products/features/autotext.asp

© 2023 Whole Tomato Software, LLC Go To Top Of Page
Snitz Forums 2000