Author |
Topic  |
feline
Whole Tomato Software
    
United Kingdom
19177 Posts |
Posted - Jun 13 2012 : 11:23:51 PM
|
I have spoken to our developers about this, and this is a harder problem than I had realised. Each of the effected refactoring commands needs to be fixed separately, due to the way we have to structure VA to work around the IDE.
Which refactoring command is causing the most trouble? Since this needs to be tackled piece by piece, where would it be most useful for you for us to start? |
zen is the art of being at one with the two'ness |
 |
|
FWillen
Senior Member
  
Germany
45 Posts |
Posted - Jul 09 2012 : 02:28:15 AM
|
Hi Feline,
I wasn't present the last days.
I would say it makes sence to start at this: 1.: We have a solution with project A and B, both with class LaSet. But in one project there is a variable named m_MyVar, in the other m_Myvar. Both variable are in suggestion list.
2.: Find References should show only references in both projects if the class A is defined in one file for both projects. If there are one file for project A and one file for project B this are different classes.
3.: Create declaration creates a variable in the header of the wrong project.
best regards Frank Willen |
 |
|
feline
Whole Tomato Software
    
United Kingdom
19177 Posts |
Posted - Jul 12 2012 : 11:13:48 PM
|
For point 1, are you accessing these class instances via local variables in these projects? Global variables inside these projects, or something else?
Adding global variables adds a further complication, so it would be useful to know.
For point 2, to try and limit this problem, are you aware of the option:
VA Options -> Advanced -> Refactoring -> Display project nodes in Find References results
this will allow you to collapse, or simply delete unwanted projects from your Find References Results. This is not going to stop the problem happening, but it will make it a bit easier to work around when it does happen. |
zen is the art of being at one with the two'ness |
 |
|
FWillen
Senior Member
  
Germany
45 Posts |
Posted - Jul 13 2012 : 03:46:34 AM
|
For point 1: it is a global variable. For Example this is a class LaSet differently defined in project A und B. In project B there is an instance as a global variable defined: LaSet* pLaSet; When I type in pLaSet->m_ in project B Suggestion will show me variable of LaSet from project A and project B.
for point 2: this is correct, I already checked this box. But it would be better if Va shows only variable of LaSet from Project B. Except a class C is defined in a global file. Example: We defined class FK as a container for enums in a global header file. This file is included in both projects. And there it is useful to show instances in all projects. Maybe a Find references in project / solution would be a short solution.
class FK { public: enum eFK { Mittig = 0, Oben = 1, Unten = 2, }; }; |
 |
|
feline
Whole Tomato Software
    
United Kingdom
19177 Posts |
Posted - Jul 15 2012 : 12:37:34 AM
|
For point 1, I have broken this down into two new, sub cases, to make it more manageable:
First the situation with two global variables, but different types, and the listbox for the global variable lists the members from both classes:
case=67831
Second, the situation where you are creating an instance of a class, where there are two classes with this class name, and you are getting the members from both classes listed:
case=67833
For point 2, are you talking about adding a single .h file to two projects at once? We are considering adding a form of the Find References command that only searches the current project, but if you are in a file that has been added to more than one project when you trigger Find References, VA is not going to know which project you want to search.
case=32262
It looks like the Create Declaration problem is a known problem:
case=35401 |
zen is the art of being at one with the two'ness |
 |
|
FWillen
Senior Member
  
Germany
45 Posts |
Posted - Jul 16 2012 : 02:58:24 AM
|
For point 2, are you talking about adding a single .h file to two projects at once? We are considering adding a form of the Find References command that only searches the current project, but if you are in a file that has been added to more than one project when you trigger Find References, VA is not going to know which project you want to search.
yes, that's right. This file is used for solutions-wide constants (communication, programm constants etc.)
The best would be this procedure: Find references for class C_2: This class C_2 is defined in two .h files, one defined in project A and the other defined in project B, => VA shows only references of class C_2, defined in project B
OR
Find references for class C_12: This class C_12 is defined in a single .h file, included in project A and project B => VA shows references of class C_12 in both projects
|
 |
|
feline
Whole Tomato Software
    
United Kingdom
19177 Posts |
Posted - Jul 16 2012 : 11:20:11 AM
|
Thats a clear and helpful answer, searching all projects the file happens to be part of makes sense here. I have put a note onto the case about this, thank you. |
zen is the art of being at one with the two'ness |
 |
|
support
Whole Tomato Software
    
5566 Posts |
Posted - Aug 09 2012 : 02:01:38 AM
|
case=35401 is related to case=56104 and is fixed in build 1912 |
 |
|
FWillen
Senior Member
  
Germany
45 Posts |
Posted - Aug 09 2012 : 02:23:39 AM
|
thanks,
In one project, VA was always suggesting the variables of the wrong project. This is working now. I will go for vacation until the third of september. I will continue testing after my vacation.
Do you know, when case=67831 will be fixed?
|
 |
|
feline
Whole Tomato Software
    
United Kingdom
19177 Posts |
Posted - Aug 10 2012 : 12:12:46 PM
|
Thank you for the update, this is good news, and hopefully will help quite a bit. Unfortunately I don't currently have any estimate for when case=67831 will be fixed, but this is down as a high priority bug. |
zen is the art of being at one with the two'ness |
 |
|
FWillen
Senior Member
  
Germany
45 Posts |
Posted - Sep 06 2012 : 12:21:56 AM
|
It is a high priority bug since 2011-06. Will it be fixed this year? |
 |
|
feline
Whole Tomato Software
    
United Kingdom
19177 Posts |
Posted - Sep 11 2012 : 1:21:40 PM
|
Unfortunately I don't currently have an estimate for when this will be fixed. These are difficult problems for us to solve, and they don't seem to be effecting many users. I do realise these are serious problems for you, and they are causing quite a few difficulties. It is sometimes difficult to prioritise the various bug reports we have to look at. |
zen is the art of being at one with the two'ness |
 |
|
FWillen
Senior Member
  
Germany
45 Posts |
Posted - Sep 20 2012 : 07:46:51 AM
|
Create from usage does still create the new variable in the wrong project. |
 |
|
feline
Whole Tomato Software
    
United Kingdom
19177 Posts |
Posted - Sep 20 2012 : 11:17:54 AM
|
Unfortunately Create from Usage is still to be fixed. This is a known problem, and is covered by
case=56104
This is one of those complex problems where different refactoring commands require separate fixes. |
zen is the art of being at one with the two'ness |
 |
|
support
Whole Tomato Software
    
5566 Posts |
Posted - Dec 17 2012 : 11:48:27 PM
|
case=56104 is fixed in build 1925 |
 |
|
FWillen
Senior Member
  
Germany
45 Posts |
Posted - Dec 18 2012 : 02:31:10 AM
|
thanks, it seems to work.
Then, there is only 67831 to be fixed.
Sometimes the listbox shows only the variables from the wrong class, not from both classes.
Example: Project A:
classs CAppA { long varA; } CAppA theApp;
Project B: classs CAppB { long varB; } CAppB theApp;
In some projects Va shows only varB if I write "theApp." in project A. If I write "theApp.varA" in Project A VisualAssist underlines VarA. |
 |
|
sean
Whole Tomato Software
    
USA
2817 Posts |
Posted - Dec 18 2012 : 11:38:25 AM
|
work on 67831 is in progress. |
 |
|
support
Whole Tomato Software
    
5566 Posts |
Posted - Feb 25 2013 : 11:58:22 AM
|
case=32262 is implemented in build 1929 |
 |
|
support
Whole Tomato Software
    
5566 Posts |
Posted - Feb 25 2013 : 12:21:20 PM
|
case=67831 is fixed in build 1929 |
 |
|
FWillen
Senior Member
  
Germany
45 Posts |
Posted - Feb 25 2013 : 11:58:39 PM
|
ok, thanks,
it seems to work.
Then there ist only one thing.
Project A: class A { long m_DatenAusgabe; } Project B: class A { long m_Datenausgabe; }
Va shows me both variables if I type in a variable of class A followed by a dot. VA should show only the correct ones.

|
 |
|
accord
Whole Tomato Software
    
United Kingdom
3287 Posts |
Posted - Feb 26 2013 : 12:09:50 PM
|
I am seeing the same effect here. Thank you for the clear description:
case=67833 |
 |
|
Topic  |
|