--=_mixed 00794D9285256DF3_=
Content-Type: multipart/alternative; boundary="=_alternative 00794D9285256DF3_="
--=_alternative 00794D9285256DF3_=
Content-Type: text/plain; charset="US-ASCII"
Here is the first go at Hyperlink navigation for CDT 2.0. The main points:
* Navigation can be turned on/off from the C Editor preference page
* To activate hyperlinks, hold the Ctrl key down and move the mouse over
the element you want to navigate to; clicking the button is equivalent to
F3/selecting Open Declarations
* Opening includes works as well (as long as the file can be found - ie.
make sure to set up the paths properly if you are referencing external
files) - this equivalent to selecting 'Open Include' from the outline
view. I should also mention that I modified the behaviour of the
OpenIncludeAction a bit. The workflow used to be: i) Search the project's
include paths for the file in question, ii) If the file was not found on
any of the include paths, search the project itself. This has been changed
to: i) Search include paths, ii) Search project regardless of what was
found.
We overlook the contribution of other projects. When we set dependencies
on a project we also export there include paths. For example,
IProject("application"), IProject("library"), "application" depends on "library".
When looking for include paths we should look at the dependent project's scannerProvider include paths.
IMHO, there is a flaw in IScannerInfo since it does not allow to make a distinction between
include paths system/compiler builtins and contribution on the command lines(-I ..) , it makes a difference when doing
this, (We address this in the ICPathEntry):