mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-02 13:55:39 +02:00
Static variables shown as global in search, bug 255192.
This commit is contained in:
parent
a036483c18
commit
eea81e9d95
3 changed files with 18 additions and 7 deletions
|
@ -51,7 +51,7 @@ import org.eclipse.core.runtime.Path;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Doug Schaefer
|
* @author Doug Schaefer
|
||||||
*
|
* @noextend This class is not intended to be subclassed by clients.
|
||||||
*/
|
*/
|
||||||
public class IndexTypeInfo implements ITypeInfo, IFunctionInfo {
|
public class IndexTypeInfo implements ITypeInfo, IFunctionInfo {
|
||||||
private static int hashCode(String[] array) {
|
private static int hashCode(String[] array) {
|
||||||
|
@ -562,4 +562,11 @@ public class IndexTypeInfo implements ITypeInfo, IFunctionInfo {
|
||||||
return false;
|
return false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @since 5.1
|
||||||
|
*/
|
||||||
|
public boolean isFileLocal() {
|
||||||
|
return fileLocal != null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,6 +17,7 @@ package org.eclipse.cdt.internal.core.browser;
|
||||||
import org.eclipse.cdt.core.CCorePlugin;
|
import org.eclipse.cdt.core.CCorePlugin;
|
||||||
import org.eclipse.cdt.core.dom.ast.ASTTypeUtil;
|
import org.eclipse.cdt.core.dom.ast.ASTTypeUtil;
|
||||||
import org.eclipse.cdt.core.dom.ast.DOMException;
|
import org.eclipse.cdt.core.dom.ast.DOMException;
|
||||||
|
import org.eclipse.cdt.core.dom.ast.EScopeKind;
|
||||||
import org.eclipse.cdt.core.dom.ast.IBinding;
|
import org.eclipse.cdt.core.dom.ast.IBinding;
|
||||||
import org.eclipse.cdt.core.dom.ast.ICompositeType;
|
import org.eclipse.cdt.core.dom.ast.ICompositeType;
|
||||||
import org.eclipse.cdt.core.dom.ast.IEnumeration;
|
import org.eclipse.cdt.core.dom.ast.IEnumeration;
|
||||||
|
@ -27,8 +28,6 @@ import org.eclipse.cdt.core.dom.ast.IParameter;
|
||||||
import org.eclipse.cdt.core.dom.ast.IScope;
|
import org.eclipse.cdt.core.dom.ast.IScope;
|
||||||
import org.eclipse.cdt.core.dom.ast.ITypedef;
|
import org.eclipse.cdt.core.dom.ast.ITypedef;
|
||||||
import org.eclipse.cdt.core.dom.ast.IVariable;
|
import org.eclipse.cdt.core.dom.ast.IVariable;
|
||||||
import org.eclipse.cdt.core.dom.ast.c.ICFunctionScope;
|
|
||||||
import org.eclipse.cdt.core.dom.ast.cpp.ICPPBlockScope;
|
|
||||||
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType;
|
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType;
|
||||||
import org.eclipse.cdt.core.dom.ast.cpp.ICPPNamespace;
|
import org.eclipse.cdt.core.dom.ast.cpp.ICPPNamespace;
|
||||||
import org.eclipse.cdt.core.dom.ast.cpp.ICPPNamespaceAlias;
|
import org.eclipse.cdt.core.dom.ast.cpp.ICPPNamespaceAlias;
|
||||||
|
@ -141,7 +140,7 @@ public class IndexModelUtil {
|
||||||
scope = binding.getScope();
|
scope = binding.getScope();
|
||||||
} catch (DOMException e) {
|
} catch (DOMException e) {
|
||||||
}
|
}
|
||||||
if (scope instanceof ICPPBlockScope || scope instanceof ICFunctionScope) {
|
if (scope != null && scope.getKind() == EScopeKind.eLocal) {
|
||||||
elementType= ICElement.C_VARIABLE_LOCAL;
|
elementType= ICElement.C_VARIABLE_LOCAL;
|
||||||
} else {
|
} else {
|
||||||
elementType = ICElement.C_VARIABLE;
|
elementType = ICElement.C_VARIABLE;
|
||||||
|
|
|
@ -23,6 +23,7 @@ import org.eclipse.cdt.core.browser.IFunctionInfo;
|
||||||
import org.eclipse.cdt.core.browser.IQualifiedTypeName;
|
import org.eclipse.cdt.core.browser.IQualifiedTypeName;
|
||||||
import org.eclipse.cdt.core.browser.ITypeInfo;
|
import org.eclipse.cdt.core.browser.ITypeInfo;
|
||||||
import org.eclipse.cdt.core.browser.ITypeReference;
|
import org.eclipse.cdt.core.browser.ITypeReference;
|
||||||
|
import org.eclipse.cdt.core.browser.IndexTypeInfo;
|
||||||
import org.eclipse.cdt.core.model.CModelException;
|
import org.eclipse.cdt.core.model.CModelException;
|
||||||
import org.eclipse.cdt.core.model.CoreModel;
|
import org.eclipse.cdt.core.model.CoreModel;
|
||||||
import org.eclipse.cdt.core.model.ICElement;
|
import org.eclipse.cdt.core.model.ICElement;
|
||||||
|
@ -91,9 +92,13 @@ public class TypeInfoLabelProvider extends LabelProvider {
|
||||||
buf.append(TypeInfoMessages.TypeInfoLabelProvider_globalScope);
|
buf.append(TypeInfoMessages.TypeInfoLabelProvider_globalScope);
|
||||||
}
|
}
|
||||||
} else if (isSet(SHOW_FULLY_QUALIFIED)) {
|
} else if (isSet(SHOW_FULLY_QUALIFIED)) {
|
||||||
if (typeInfo.getCElementType() != ICElement.C_VARIABLE_LOCAL && qualifiedName.isGlobal()) {
|
final int elemType = typeInfo.getCElementType();
|
||||||
buf.append(TypeInfoMessages.TypeInfoLabelProvider_globalScope);
|
if (elemType != ICElement.C_VARIABLE_LOCAL && qualifiedName.isGlobal()) {
|
||||||
buf.append(' ');
|
if ((elemType != ICElement.C_FUNCTION && elemType != ICElement.C_VARIABLE) ||
|
||||||
|
!(typeInfo instanceof IndexTypeInfo && ((IndexTypeInfo) typeInfo).isFileLocal())) {
|
||||||
|
buf.append(TypeInfoMessages.TypeInfoLabelProvider_globalScope);
|
||||||
|
buf.append(' ');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
buf.append(qualifiedName.getFullyQualifiedName());
|
buf.append(qualifiedName.getFullyQualifiedName());
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue