Fucking eclipse.
So, I have a code branch for a GIT repository SCP'd over to my cygwin directory at
C:\ProgramData\Cygwin\home\MyUserName\BranchName
It's imported into my eclipse workspace as a C++ project called BranchName
Consider the following code:
BranchName/woof/alpha/source/Foo.h
Code:
#ifndef FOO_H
#define FOO_H
// Non-MyTeam API headers
#include "beta.h"
namespace myteam
{
namespace alpha
{
class Foo
{
public:
static Foo& getInstance();
void someFunction(beta::Operation_t op);
private:
Foo();
~Foo();
Foo(const Foo& copyArg);
Foo& operator=(const Foo& rhs);
static Foo* m_pFooInst;
}; // class
} // end namespace alpha
} // end namespace myteam
#endif /* FOO_H_ */
Now, in C:\Documents\DevIncludes\ProjectAPIs\branchname\ are a bunch of external APIs for the project.
In file C:\Documents\DevIncludes\ProjectAPIs\branchname\woof\beta\source\beta.h:
Code:
#ifndef BETA_H_INCLUDED
#define BETA_H_INCLUDED
namespace beta
{
enum Operation_t {
NONE = 0,
ADD = 1,
UPDATE = 2,
DELETE = 3};
const Operation_t NOOP = NONE;
} // end namespace beta
#endif /* BETA_H_INCLUDED*/
Now, I have C:\Documents\DevIncludes\ProjectAPIs\branchname\woof\beta\source as an includes directory for the project (right click on BranchName in C/C++ Projects in Eclipse, go to Properties, then C/C++ General -> Paths and Symbols, Includes Tab, directory listed under Include Paths).
So, then, why the hell is it that next to this line in Foo.h:
Code:
void someFunction(beta::Operation_t op);
Eclipse is placing a marker with the folowing text:
Type 'beta::Operation_t' could not be resolved
WTF ECLIPSE INDEXER?!
I tried deleting the pbom for the index, I tried freshening all files, nothing works.
I can Mouse over the "beta.h" in the following line:
and press F3, and the Eclipse IDE will open the beta.h file from the includes directory.
Yet, it can not see the symbol. At all.
It's like the CDT indexer and parser aren't finding it, but the outline view is.