T O P I C R E V I E W |
swinefeaster |
Posted - Apr 03 2006 : 1:26:05 PM > Feline: > can you start a new thread for OFIR please? this thread is getting a little difficult to > get my head around each time i have to re-read it
> you do realise that there is the whole "fun" question of how to define the Repository to > consider? which does not actually have anything to do with VS2005 macro variables
> i do see the appeal, i use a 3rd party library myself, Qt in my case.
ok, so what i wish for is two more dialogs: OFIR (Open File In Repository) and FSIR (Find Symbol In Repository)
There could preferrably be combined with OFIW and FSIW dialogs, with some filter checkboxes at the bottom.
The Repository location could be specified via a dialog in VAX that specifies which folder (s) to parse. These path edits would need to support VC2005 user macros to be useful --- see case 1072.
thanks
swine |
25 L A T E S T R E P L I E S (Newest First) |
support |
Posted - Oct 06 2006 : 8:05:24 PM Cases 2429 and 2648 are fixed in 1538. |
sean |
Posted - Sep 22 2006 : 01:30:04 AM swinefeaster's #include problems: case=2648 |
sean |
Posted - Sep 13 2006 : 1:51:53 PM [we've continued this by email] |
swinefeaster |
Posted - Sep 08 2006 : 5:20:30 PM excellent, thanks! |
sean |
Posted - Sep 08 2006 : 12:33:37 PM Ok - On Monday or Tuesday I'll send a custom dll that logs the details of what's happening during our #include listbox population and we'll see if we can get to the bottom of that problem.
|
swinefeaster |
Posted - Sep 08 2006 : 11:58:11 AM i'm glad we are getting somewhere here! :)
i did the include thing as you suggested, but the list comes up quite quick, and ColorDouble.h is not in the list. the cpu does not appear to be spinning, and waiting any further doesn't help any.
thanks
swine |
sean |
Posted - Sep 07 2006 : 11:50:32 PM Ok. I think this comes down to two problems.
VA doesn't offer suggestions for #include completions (that is, you will never see a #include completion listbox with a ? mark). That said, I'm not able to reproduce the #include completion problem. This problem could be due to the number of additional directories you have and the time it is taking VA to go out and build an up to date list of files. The loop that populates the include completion list will break early (without displaying any list) if it picks up UI activity (more keystrokes, mouse movement, etc.). Try again. Type #include " and then just wait to see how large an initial list it creates (don't move mouse, etc). Does ColorDouble.h show up in the list if you do that? If it doesn't then we need to investigate further.
I am able to reproduce the second problem. VA is not adding symbols defined in external (but non-system) header files to completion listboxes. If I type the correct symbol name it does get colored and the members listbox for it is correct (as long as there has been a pause for VA to parse the added include line) but it does not ever show up in the completion listbox. It does show up in the suggestion listbox after I've typed it in by hand. case=2429
|
swinefeaster |
Posted - Sep 07 2006 : 9:45:01 PM thanks for the reply...
the directories VAX is looking in according to your email ARE correct. the errors are also correct --- those files are no longer there and they were ever removed from the project.
BUT, i still can't get it to use the files in those directories. for example, i have a file called ColorDouble.h. It is in SharePool\\Common. It contains a class called CColorDouble (not a big surprise).
anyways, when i type: #include "Colo" it won't suggest it, even when i try to force it with Ctrl+Shift+W (which is bound to Edit.CompleteWord).
then, after i typed it in manually, i try to use CColorDouble in the code. it will never suggest this symbol as i'm typing it. if i hit Ctrl+Shift+W after each character, it still will not suggest it, until i get to "CColorDo". when i hit Ctrl+Shift+W at that point, it will immediately insert CColorDouble without any suggestion list popping up.
if then, i finish it off by writing: CColorDouble x; the CColorDouble symbol will be underlined red.
if i right click and invoke Goto Declaration, VS2005 will find it and go to the header.
wait a minute... now after i went back to the file, CColorDouble has turned blue (and is no longer highlighted). i guess VAX did some background parsing. now i can use VAX.GotoImplementation to jump to its header.
if i go to the next line and start typing "CC", it will suggest "CColorDouble" with a ? mark. if i tab, it will put it in and then suggest "x". so i guess it is doing the suggest pieces of surrounding code thing.
if instead of hitting tab i hit Ctrl+Shift+W, it will abandon the CColorDouble ? mark thing and just show me a bunch of other CC symbols. until i get to the u, and then it will suggest CColorDouble again with a ? mark.
hope this make sense ?!?
cheers |
sean |
Posted - Sep 07 2006 : 8:14:11 PM Delete your va\\vc8 directory and then startup the IDE - it will rebuild when you open a solution/file. |
swinefeaster |
Posted - Sep 07 2006 : 8:10:49 PM hmmm, interesting... Startup.log reads: GetSymDef ibx c:\\program files\\visual assist x\\vc8\\CPP\\Db2Ds.db is corrupt, fid=0xda1a53, rel=0x12366, act=0x1a9729.:133 9/7/2006 17:08:16 0xf88
|
sean |
Posted - Sep 07 2006 : 7:56:12 PM swine - can you send me va.log of opening the solution? If the IDE opens with the solution already open, close the solution, enable logging and then open the solution. Wait until cpu goes idle and then exit. http://www.wholetomato.com/support/faq.asp#log
|
swinefeaster |
Posted - Sep 07 2006 : 7:09:00 PM See also the discussion in: http://forum.wholetomato.com/forum/topic.asp?TOPIC_ID=4530 |
swinefeaster |
Posted - Sep 07 2006 : 7:07:52 PM It changes per solution, as its definition is relative to the solution dir. It is defined in my file Base.vsprops, which is as follows:
<?xml version="1.0" encoding="Windows-1252"?> <VisualStudioPropertySheet ProjectType="Visual C++" Version="8.00" Name="Base" OutputDirectory="$(SolutionDir)$(ConfigurationName)\\" IntermediateDirectory="$(SolutionDir)$(ConfigurationName)\\$(ProjectName)Temp\\" DeleteExtensionsOnClean="*.pch;*.pdb;*.idb;*.obj;*.ilk;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;$(TargetPath)" BuildLogFile="$(IntDir)$(TargetName)-BuildLog.htm" > <Tool Name="VCCLCompilerTool" PreprocessorDefinitions="_WINNT" StructMemberAlignment="1" RuntimeTypeInfo="true" UsePrecompiledHeader="1" PrecompiledHeaderFile="$(IntDir)$(TargetName)$(ConfigurationName).pch" ProgramDataBaseFileName="$(IntDir)$(ProjectName)$(ConfigurationName)-vc80.pdb" WarningLevel="4" Detect64BitPortabilityProblems="false" /> <Tool Name="VCLinkerTool" ProgramDatabaseFile="" SubSystem="2" OptimizeForWindows98="1" TargetMachine="1" /> <UserMacro Name="__some_silly_macro_to_make_things_work___" Value="" PerformEnvironmentSet="true" /> <UserMacro Name="SolutionDir" Value="$(SolutionDir)" PerformEnvironmentSet="true" /> <UserMacro Name="SharePoolDir" Value="$(SolutionDir)..\\SharePool\\" PerformEnvironmentSet="true" /> <UserMacro Name="SharePoolLibDir" Value="$(SharePoolDir)$(ConfigurationName)\\" PerformEnvironmentSet="true" /> <UserMacro Name="VersionResourceGeneratorDir" Value="$(SharePoolDir)VersionResourceGenerator\\" PerformEnvironmentSet="true" /> <UserMacro Name="SneakyCopyDir" Value="$(SharePoolDir)SneakyCopy\\" PerformEnvironmentSet="true" /> <UserMacro Name="RemoteBinDir" Value="\\\\svnserver\\bin\\" PerformEnvironmentSet="true" /> <UserMacro Name="OutDir" Value="$(OutDir)" PerformEnvironmentSet="true" /> <UserMacro Name="ConfigurationName" Value="$(ConfigurationName)" PerformEnvironmentSet="true" /> <UserMacro Name="ProjectName" Value="$(ProjectName)" PerformEnvironmentSet="true" /> <UserMacro Name="___another_silly_macro_to_make_things_work___" Value="" PerformEnvironmentSet="true" /> </VisualStudioPropertySheet>
|
sean |
Posted - Sep 06 2006 : 6:37:44 PM How/where is $(SharePoolDir) defined? Does it change per project? Can you give an example definition?
|
swinefeaster |
Posted - Sep 06 2006 : 5:45:43 PM .;"$(SharePoolDir)3dCommon";"$(SharePoolDir)AppMessageCommon";"$(SharePoolDir)Common";"$(SharePoolDir)ContainerCommon";"$(SharePoolDir)DrawCommon";"$(SharePoolDir)ErrorStringCommon";"$(SharePoolDir)FileCommon";"$(SharePoolDir)GeoProjectionCommon";"$(SharePoolDir)GdiplusCommon";"$(SharePoolDir)GuiCommon";"$(SharePoolDir)HeadDefCommon";"$(SharePoolDir)MathCommon";"$(SharePoolDir)MouseGateCommon";"$(SharePoolDir)TupleCommon";"$(SharePoolDir)TimeCommon";"$(SharePoolDir)UiStringCommon";3dPlot;Gui;HeadDefCommon;"$(SharePoolDir)PcSonarCommon";"$(SharePoolDir)PcSonarGuiCommon";Model;ModelInternals;MouseGate;NewMenu |
sean |
Posted - Sep 06 2006 : 2:45:06 PM quote: Originally posted by swinefeaster
right now these directories are added in the additional include directories, and they work for compiling. however, VAX does NOT suggest symbols from the heads in these directories (I can show you an example), so 1072 really is not fixed.
Let's pick it up from here. Going one step at a time. Feline and I both think 1072 is fixed so there's no point going over that - we are either talking about different things or the testcase we used for 1072 is not representative of your environment.
What exactly is listed in your project additional include directories?
|
swinefeaster |
Posted - Sep 06 2006 : 1:01:41 PM oh i see what you mean by case 1072 now. i thought that applied to using macros in additional directories to parse by VAX.
> ideally we recommend you add these library directories to: > IDE tools menu -> Options -> Projects and Solutions -> VC++ Directories -> Show directories for = Include files
that won't do. i don't believe VS2005 will reevaluate these paths based on different project-specific macros. right now these directories are added in the additional include directories, and they work for compiling. however, VAX does NOT suggest symbols from the heads in these directories (I can show you an example), so 1072 really is not fixed.
furthermore, i would like to see these additional included symbols (and any cpps in those dirs) in the OFIW and FSIW dialogs --- perhaps with checkboxes that include / exclude them.
thanks again!
swine |
feline |
Posted - Sep 05 2006 : 5:17:22 PM case 1072 solved the problem of going right click on a project in solution explorer, then going to the additional include directories field and adding a directory that used $(TestInclude)
before this fix, the directory was not found, so files in this directory were not suggested when typing #include and were not being parsed.
my understanding is that these variables are project specific. is this correct?
in contrast:
VA Options -> Projects -> C/C++ Directories
is a global setting, that applies to all projects. so you cannot use a project specific variable in here, since if you open a different project VA will not know what to make of this.
ideally we recommend you add these library directories to: IDE tools menu -> Options -> Projects and Solutions -> VC++ Directories -> Show directories for = Include files
which VA then picks up, so long as you are not using the custom platform in VA options.
does this make sense? or are we still talking about different things? |
swinefeaster |
Posted - Sep 05 2006 : 12:49:24 PM your description in blue is correct as to what property sheets are. we need to be able to use the $(xxx) macros in the C/C++ directories section in VAX options --- that's the whole point of case 1072, no? i don't need a fancy macro selection dialog, just to be able to type them in and have them evaluated correctly.
in your example i agree that "set" shouldn't be added to OFIW. rather the opposite: specifying a C/C++ directory in VAX options using a macro (or not) should make that file appear in OFIW and OFIR if it is in that additional directory.
if not, then what is the purpose of doing case 1072? what does 1072 solve?
thanks |
feline |
Posted - Sep 02 2006 : 3:02:52 PM i have the feeling we are talking about different things here. the following is my description, from case=1072, of how to setup a test project:
i tool the following detailed steps to set this up, which explain what property pages are:
* show property manger (view menu -> property manager) * right click on debug mode and select "add new project property sheet" * give it a name and save to the current directory * right click on new entry and select properties * go to common properties -> user macros * set name = "TestInclude" * set value = "$(ProjectDir)..\\..\\vsprop_test\\" * save this * close properties dialog * open project properties and go to C++ additional include directories * open the additional include directories dialog via the "..." button * use the "Macros >>" button to show macros, "TestInclude" is in the list. it was not shown for me until i closed and re-opened properties dialog * add the additional include dir "$(TestInclude)"
this is not going any where near the VA options dialog, which is what i immediately think of when you mention having to select a custom platform.
as for OFIW, this stands for Open File In Workspace. i do not expect it to show files from library directories that you are referencing, but which are not part of your workspace. for example if i add the line:
#include <set>
to a file this will not add the file "set" to OFIW, even though the IDE knows where to find this file and the code will compile. |
swinefeaster |
Posted - Aug 30 2006 : 12:59:30 PM um, 1072 is supposed to enable the use of macro variables in the c/c++ directories section in Visual Assist X Options. i can NOT get this to work.
1. first of all, i don't understand why I have to select a Custom platform to be able to edit anything.
2. even if i do this, an i type "$(SharePoolDir)Common" in the "Other include files" section for the Custom platform, and restart the IDE as suggested, i still can't find the symbols in the Common folder in neither the OFIW or FSIW dialogs...
:( |
swinefeaster |
Posted - Apr 04 2006 : 1:34:45 PM awesome! i've been missing good old foobar ever since you guys revamped OFIW... |
support |
Posted - Apr 03 2006 : 11:28:23 PM We'll start by getting #1 and #3 implemented for OFIW. (It's already done for FSIW.)
And don't forget filtering for "foo bar" finds files with foo *and* bar.
case=1029 |
swinefeaster |
Posted - Apr 03 2006 : 9:11:10 PM haha yeah sorry i couldn't help it.
that thread sums up a lot of what i'm after, but not necessarily everything. just enabling all the system files in the OFIW dialog doesn't cut it. i would need a three-tier setup:
1. workspace files 2. repository files (my common files) 3. system files (vc, mfc, etc)
...for both OFIW and FSIW dialogs.
An Object-Oriented solution would allow me to define more levels as I see fit ;). Why fix it for 3 levels if you can do it for any number...? Just a thought...
cheers
|
feline |
Posted - Apr 03 2006 : 5:21:45 PM i was hoping you were not going to say that *lopsided smile*
this would require adding extra options, and a new pair of dialogs.
if we can think through a "simple" definition of what you are after here it would help, especially if it could use the existing OFIW and FSIW dialogs.
your respository is basically a 3rd party library, or the equivelent. people who use Boost are going to be in a similar situation.
normally you specify the location of the headers for the library via the additional include directories setting in the project properties. if this includes environment variables, or IDE macro's is irrelivent for the moment
*ah* suddenly i remember something i recall reading a little while ago.
http://forum.wholetomato.com/forum/topic.asp?TOPIC_ID=4423&SearchTerms=system,header
the feature request support raised incluses the statement:
Include files from project directories and additional include directories (via IDE and/or VA X options dialogs.)
i believe that this would do what you are after. do you agree, or am i overlooking some factor? |