Re: 'Open Declaration' finds the wrong instance of a routine [message #85171 is a reply to message #85168] |
Wed, 10 July 2013 11:21   |
David Fanning
Messages: 11724 Registered: August 2001
|
Senior Member |
|
|
Bill Gallery writes:
>
> The idl workbench has a convenient feature: in the editor, if you right-click on a call to a procedure and select "Open Declaration", idl will open that procedure in a new window. However, it doesn't always find the correct instance of that procedure. Details below.
>
> I have a project that contains multiple copies of an idl procedure calc_a.pro (see diagram below.)
> - Only one copy of calc_a is in !path.
> - The routine calc_b.pro calls calc_a.
> - In calc_b.pro, if I right-click on the call to calc_a and select "Open Declaration", it opens \project\old\calc_a.pro not \project\proc.calc_a.pro.
> - However, 'help,/source' shows that the desired copy of calc_a.pro has been compiled.
>
> How do I prevent IDL from opening the wrong copy of calc_a.pro? The different copies of calc_a.pro may be different leading to confusion or worse.
>
> Notes:
> - C:\MyProject\old is ***not*** in !path nor is './'
> - Project>Properties>IDL Project Properties>"Update IDL path when project is opened or closed" is un-checked.
> - The tab "Problems" shows
> "Duplicate Routine: calc_a calc_a.pro C:\MyProject\old
>
> The problem does not appear to be with !path, but I can't find any other settings or preferences that control this behavior.
>
> Any suggestions?
I would say both directories MUST be on your IDL path. ExelisVis is not
the NSA, they aren't scrubbing your hard drive looking for duplicate
files. They are looking in your IDL path.
If you print !Path, are you *sure* you don't see the old directory
there?
I suppose it is possible they search every directory in the project
directory. My project directory and my IDL directory are generally a
long ways from one another, which may explain why I've never seen
anything like this. :-)
Cheers,
David
--
David Fanning, Ph.D.
Fanning Software Consulting, Inc.
Coyote's Guide to IDL Programming: http://www.idlcoyote.com/
Sepore ma de ni thue. ("Perhaps thou speakest truth.")
|
|
|