forked from qt-creator/qt-creator
Ignore the symbol's column for generated symbols (at least for now).
This commit is contained in:
@@ -137,7 +137,7 @@ protected:
|
||||
|
||||
} // end of anonymous namespace
|
||||
|
||||
QualifiedNameId *qualifiedNameIdForSymbol(Symbol *s, const LookupContext &context)
|
||||
static QualifiedNameId *qualifiedNameIdForSymbol(Symbol *s, const LookupContext &context)
|
||||
{
|
||||
Name *symbolName = s->name();
|
||||
if (! symbolName)
|
||||
@@ -433,12 +433,18 @@ void CPPEditor::updateMethodBoxIndex()
|
||||
if (file()->fileName() != symbol->fileName())
|
||||
continue;
|
||||
|
||||
else if (symbol->isGenerated())
|
||||
continue;
|
||||
|
||||
if (symbol) {
|
||||
int column = symbol->column();
|
||||
|
||||
if (column != 0)
|
||||
--column;
|
||||
|
||||
if (symbol->isGenerated())
|
||||
column = 0;
|
||||
|
||||
QTextCursor c(document()->findBlockByNumber(symbol->line() - 1));
|
||||
c.setPosition(c.position() + column);
|
||||
|
||||
@@ -969,7 +975,8 @@ bool CPPEditor::openEditorAt(Symbol *s)
|
||||
if (column)
|
||||
--column;
|
||||
#else
|
||||
unsigned column = 0;
|
||||
if (s->isGenerated())
|
||||
unsigned column = 0;
|
||||
#endif
|
||||
|
||||
return openCppEditorAt(fileName, s->line(), column);
|
||||
|
||||
@@ -164,7 +164,8 @@ Symbol::Symbol(TranslationUnit *translationUnit, unsigned sourceLocation, Name *
|
||||
_visibility(Symbol::Public),
|
||||
_scope(0),
|
||||
_index(0),
|
||||
_next(0)
|
||||
_next(0),
|
||||
_isGenerated(false)
|
||||
{
|
||||
setSourceLocation(sourceLocation);
|
||||
setName(name);
|
||||
@@ -200,14 +201,24 @@ unsigned Symbol::sourceLocation() const
|
||||
unsigned Symbol::sourceOffset() const
|
||||
{ return _sourceOffset; }
|
||||
|
||||
bool Symbol::isGenerated() const
|
||||
{ return _isGenerated; }
|
||||
|
||||
void Symbol::setSourceLocation(unsigned sourceLocation)
|
||||
{
|
||||
_sourceLocation = sourceLocation;
|
||||
|
||||
if (_sourceLocation)
|
||||
_sourceOffset = translationUnit()->tokenAt(sourceLocation).offset;
|
||||
else
|
||||
if (! _sourceLocation) {
|
||||
_isGenerated = false;
|
||||
_sourceOffset = 0;
|
||||
} else {
|
||||
TranslationUnit *unit = translationUnit();
|
||||
|
||||
const Token &tk = unit->tokenAt(sourceLocation);
|
||||
|
||||
_isGenerated = tk.generated;
|
||||
_sourceOffset = tk.offset;
|
||||
}
|
||||
}
|
||||
|
||||
unsigned Symbol::line() const
|
||||
|
||||
@@ -233,6 +233,8 @@ public:
|
||||
|
||||
Name *identity() const;
|
||||
|
||||
bool isGenerated() const;
|
||||
|
||||
void setScope(Scope *scope); // ### make me private
|
||||
void setSourceLocation(unsigned sourceLocation); // ### make me private
|
||||
|
||||
@@ -256,6 +258,8 @@ private:
|
||||
unsigned _index;
|
||||
Symbol *_next;
|
||||
|
||||
bool _isGenerated: 1;
|
||||
|
||||
class IdentityForName;
|
||||
class HashCode;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user