Whole Tomato Software Forums
Whole Tomato Software Forums
Main Site | Profile | Register | Active Topics | Members | Search | FAQ
User name:
Password:
Save Password
Forgot your password?

 All Forums
 Visual Assist
 Technical Support
 OFIR and FSIR
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

swinefeaster
Tomato Guru

310 Posts

Posted - Apr 03 2006 :  1:26:05 PM  Show Profile  Reply with Quote
> 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

feline
Whole Tomato Software

United Kingdom
19021 Posts

Posted - Apr 03 2006 :  5:21:45 PM  Show Profile  Reply with Quote
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?

zen is the art of being at one with the two'ness
Go to Top of Page

swinefeaster
Tomato Guru

310 Posts

Posted - Apr 03 2006 :  9:11:10 PM  Show Profile  Reply with Quote
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

Go to Top of Page

support
Whole Tomato Software

5566 Posts

Posted - Apr 03 2006 :  11:28:23 PM  Show Profile  Reply with Quote
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
Go to Top of Page

swinefeaster
Tomato Guru

310 Posts

Posted - Apr 04 2006 :  1:34:45 PM  Show Profile  Reply with Quote
awesome! i've been missing good old foobar ever since you guys revamped OFIW...
Go to Top of Page

swinefeaster
Tomato Guru

310 Posts

Posted - Aug 30 2006 :  12:59:30 PM  Show Profile  Reply with Quote
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...

:(
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19021 Posts

Posted - Sep 02 2006 :  3:02:52 PM  Show Profile  Reply with Quote
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.

zen is the art of being at one with the two'ness
Go to Top of Page

swinefeaster
Tomato Guru

310 Posts

Posted - Sep 05 2006 :  12:49:24 PM  Show Profile  Reply with Quote
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
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19021 Posts

Posted - Sep 05 2006 :  5:17:22 PM  Show Profile  Reply with Quote
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?

zen is the art of being at one with the two'ness
Go to Top of Page

swinefeaster
Tomato Guru

310 Posts

Posted - Sep 06 2006 :  1:01:41 PM  Show Profile  Reply with Quote
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
Go to Top of Page

sean
Whole Tomato Software

USA
2817 Posts

Posted - Sep 06 2006 :  2:45:06 PM  Show Profile  Reply with Quote
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?
Go to Top of Page

swinefeaster
Tomato Guru

310 Posts

Posted - Sep 06 2006 :  5:45:43 PM  Show Profile  Reply with Quote
.;"$(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
Go to Top of Page

sean
Whole Tomato Software

USA
2817 Posts

Posted - Sep 06 2006 :  6:37:44 PM  Show Profile  Reply with Quote
How/where is $(SharePoolDir) defined?
Does it change per project?
Can you give an example definition?
Go to Top of Page

swinefeaster
Tomato Guru

310 Posts

Posted - Sep 07 2006 :  7:07:52 PM  Show Profile  Reply with Quote
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>
Go to Top of Page

swinefeaster
Tomato Guru

310 Posts

Posted - Sep 07 2006 :  7:09:00 PM  Show Profile  Reply with Quote
See also the discussion in:
http://forum.wholetomato.com/forum/topic.asp?TOPIC_ID=4530
Go to Top of Page

sean
Whole Tomato Software

USA
2817 Posts

Posted - Sep 07 2006 :  7:56:12 PM  Show Profile  Reply with Quote
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
Go to Top of Page

swinefeaster
Tomato Guru

310 Posts

Posted - Sep 07 2006 :  8:10:49 PM  Show Profile  Reply with Quote
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

Go to Top of Page

sean
Whole Tomato Software

USA
2817 Posts

Posted - Sep 07 2006 :  8:14:11 PM  Show Profile  Reply with Quote
Delete your va\\vc8 directory and then startup the IDE - it will rebuild when you open a solution/file.
Go to Top of Page

swinefeaster
Tomato Guru

310 Posts

Posted - Sep 07 2006 :  9:45:01 PM  Show Profile  Reply with Quote
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
Go to Top of Page

sean
Whole Tomato Software

USA
2817 Posts

Posted - Sep 07 2006 :  11:50:32 PM  Show Profile  Reply with Quote
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
Go to Top of Page

swinefeaster
Tomato Guru

310 Posts

Posted - Sep 08 2006 :  11:58:11 AM  Show Profile  Reply with Quote
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
Go to Top of Page

sean
Whole Tomato Software

USA
2817 Posts

Posted - Sep 08 2006 :  12:33:37 PM  Show Profile  Reply with Quote
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.
Go to Top of Page

swinefeaster
Tomato Guru

310 Posts

Posted - Sep 08 2006 :  5:20:30 PM  Show Profile  Reply with Quote
excellent, thanks!
Go to Top of Page

sean
Whole Tomato Software

USA
2817 Posts

Posted - Sep 13 2006 :  1:51:53 PM  Show Profile  Reply with Quote
[we've continued this by email]
Go to Top of Page

sean
Whole Tomato Software

USA
2817 Posts

Posted - Sep 22 2006 :  01:30:04 AM  Show Profile  Reply with Quote
swinefeaster's #include problems: case=2648

Edited by - support on Oct 06 2006 8:04:57 PM
Go to Top of Page

support
Whole Tomato Software

5566 Posts

Posted - Oct 06 2006 :  8:05:24 PM  Show Profile  Reply with Quote
Cases 2429 and 2648 are fixed in 1538.
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
 Printer Friendly
Jump To:
© 2023 Whole Tomato Software, LLC Go To Top Of Page
Snitz Forums 2000