T O P I C R E V I E W |
tjcbs |
Posted - Jun 24 2015 : 11:55:07 PM Function signature tooltips don't show up for constructors:
struct m
{
m(int a) {}
};
int main()
{
m m1()
In this case, VA will display "m m1()" in the tooltip, the first time. If I delete the paren and try again, it will display nothing.
VS2013, VA 10.9.2068.0 |
11 L A T E S T R E P L I E S (Newest First) |
feline |
Posted - May 09 2016 : 2:52:56 PM You can do some very clever things with C++, some of them are so very clever that they are quite hard to follow.
Here, if you are mainly seeing this when writing new code, have you considered using a VA Snippet like this:
$variableType$ $variableName$ = $variableType$();
I gave it the shortcut "newi" for new instance. When you trigger the shortcut, you are inside the editor, so you get normal suggestions and listboxes to help you fill in the type. When you have the right type name, press Tab to jump to the variable name field, and then just provide the desired name. The type is automatically filled in in both places for you, without any extra typing.
A change of habit, but it makes the tooltips a lot more reliable, and might be worth it. |
tjcbs |
Posted - May 08 2016 : 11:19:27 PM The struct was just for brevity of example. However the same issue arises with classes.
That being said, this is a c++ problem, so I'll let VA off the hook for this one :P |
feline |
Posted - May 05 2016 : 5:21:32 PM As I understand it, the IDE intellisense parser in newer IDE's effectively compiles your code, in order to work out what intellisense to offer. This is going to be more useful in some situations, and its something VA does not try and do.
As a result, in VS2010 and above, VA defaults to using the IDE intellisense parser for listbox content, and defaults to our own parser in VS2008 and earlier. You always have the option to change this if you find one parser offers better results over the other in your code base.
We are trying to extend rather than replace the IDE, so using the IDE some of the time makes sense. The editor is from the IDE, but some of the colouring is from VA. The idea is that we merge into the IDE, so you are not really aware of where the IDE leaves off and we pick up, so you get a smooth overall experience.
I am glad you are able to enable the IDE intellisense without to much of a problem, and that this is helping with some of these problems.
Is your struct example common in your code? I know you are creating a variable of this type, but it looks a lot like a function declaration, which makes this tricky syntax to reliably parse.
Using a struct as a class is valid, but rarely seen, so I am wondering if you often do this. |
tjcbs |
Posted - May 05 2016 : 09:20:39 AM CPU is part of it, though that seems to have vastly improved since the old days. It's more because I'm a long time VA user, and the concept doesn't sit easily with me. I should have two seperate source code parsers running at the same time? How do they interact with each other? It just seems weird. Since when was this the expected configuration? Has WT conceded that VA can't compete with intellisense any more, and VA is best used as some kind of tag along to it?
That being said, I have given up and enabled intellisense. And yes, despite annoying stuff highlighting and popping up all over the place now, it *does* solve this issue. And I can even navigate overloads with the keyboard.
EDIT: I take that back, this is definitely not solved, even with intellisense. Heap allocation works great, stack/global allocation is still dismal:
I guess this is a "most vexing parse" issue? |
feline |
Posted - May 04 2016 : 3:17:45 PM Unfortunately no progress yet. This has become a high priority bug over time, but I don't currently have an estimate for when it will be fixed.
If CPU usage is part of the reason you have turned off the IDE's intellisense, you might find limiting the CPU cores that VA uses helps you to turn the IDE intellisense back on, without to many problems:
https://wholetomato.fogbugz.com/default.asp?W134 |
tjcbs |
Posted - May 03 2016 : 02:08:53 AM Any Update on this? It's been almost a year. This one is particularly vexing. |
accord |
Posted - Jul 16 2015 : 2:55:07 PM Sorry that you think that. We're trying to fix bugs, but it's hard to balance bugfix and adding new features. We're constantly improving existing features (i.e. old refactoring commands), and the quality of the software is important to us. We try to improve user experience with the latest Visual Studios - this feature is something that works out of the box with default settings. |
tjcbs |
Posted - Jul 16 2015 : 04:16:40 AM I turn off Intellisense, because I use older hardware, I don't like the way it dumps hundreds of MBs of garbage in my (dropbox'd) source directory, and I think of VA as an "intellisense replacement" rather than "intellisense complement". I read that I can move the location of the garbage, so I may experiment with turning it back on.
And it isn't any trouble. I'm just not particularly happy with the state of VA. Bugs persist over years. Novelty features (renewal bait?) are given priority over getting the basic functionality correct , and now we have a bloated, buggy application. |
accord |
Posted - Jul 15 2015 : 8:24:24 PM Sorry for the trouble. I have increased the priority of this case for you, hopefully it will help.
BTW, have you disabled default Visual Studio intellisense? It should work properly in recent Visual Studios when intellisense is not disabled, so should only affect older IDE versions. |
tjcbs |
Posted - Jul 15 2015 : 04:01:28 AM 1. works. But it is unstable. If I delete the '(' and type it again, half the time the tool tip won't come back, even after repeating the ';' <left> '(' sequence.
I admit it is dismaying seeing such a basic functionality problem with such a low case number! |
accord |
Posted - Jul 02 2015 : 7:55:20 PM I am seeing the same effect here. Thank you for the clear example:
case=32921
Two possible workarounds: 1. put ';' after the expression, basically typing the '(' before the ';' 2. enable intellisense |
|
|