data: template class/function scope locations
* Added source locations of template parameters to the scope of template classes and functions to improve context availability in the code view.
This commit is contained in:
@@ -876,7 +876,18 @@ ParseLocation ASTVisitor::getParseLocationOfFunctionBody(const clang::FunctionDe
|
||||
{
|
||||
if (decl->hasBody() && decl->isThisDeclarationADefinition())
|
||||
{
|
||||
return getParseLocation(decl->getSourceRange());
|
||||
clang::SourceRange range;
|
||||
clang::FunctionTemplateDecl* templateDecl = decl->getDescribedFunctionTemplate();
|
||||
if (templateDecl)
|
||||
{
|
||||
range = templateDecl->getSourceRange();
|
||||
}
|
||||
else
|
||||
{
|
||||
range = decl->getSourceRange();
|
||||
}
|
||||
|
||||
return getParseLocation(range);
|
||||
}
|
||||
|
||||
return ParseLocation();
|
||||
@@ -886,7 +897,18 @@ ParseLocation ASTVisitor::getParseLocationOfRecordBody(clang::CXXRecordDecl* dec
|
||||
{
|
||||
if (decl->hasDefinition() && decl->isThisDeclarationADefinition())
|
||||
{
|
||||
return getParseLocation(decl->getDefinition()->getSourceRange());
|
||||
clang::SourceRange range;
|
||||
clang::ClassTemplateDecl* templateDecl = decl->getDescribedClassTemplate();
|
||||
if (templateDecl)
|
||||
{
|
||||
range = templateDecl->getSourceRange();
|
||||
}
|
||||
else
|
||||
{
|
||||
range = decl->getDefinition()->getSourceRange();
|
||||
}
|
||||
|
||||
return getParseLocation(range);
|
||||
}
|
||||
|
||||
return ParseLocation();
|
||||
|
||||
Reference in New Issue
Block a user