Skip to content

Commit 7ceaec2

Browse files
committed
fixed NRE in ContextFormatter
1 parent 027103a commit 7ceaec2

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

RetailCoder.VBE/UI/Command/MenuItems/CommandBars/IContextFormatter.cs

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,15 @@ private string Format(Declaration declaration)
4545

4646
typeName = "(" + declarationType + (string.IsNullOrEmpty(typeName) ? string.Empty : ":" + typeName) + ")";
4747

48-
if (declaration.DeclarationType.HasFlag(DeclarationType.Module))
48+
if (declaration.DeclarationType.HasFlag(DeclarationType.Project))
49+
{
50+
formattedDeclaration = System.IO.Path.GetFileName(declaration.QualifiedName.QualifiedModuleName.ProjectPath) + ";" + declaration.IdentifierName;
51+
}
52+
else if (declaration.DeclarationType.HasFlag(DeclarationType.Module))
4953
{
5054
formattedDeclaration = moduleName.ToString();
5155
}
52-
56+
5357
if (declaration.DeclarationType.HasFlag(DeclarationType.Member))
5458
{
5559
formattedDeclaration = declaration.QualifiedName.ToString();
@@ -59,7 +63,7 @@ private string Format(Declaration declaration)
5963
formattedDeclaration += typeName;
6064
}
6165
}
62-
66+
6367
if (declaration.DeclarationType == DeclarationType.Enumeration
6468
|| declaration.DeclarationType == DeclarationType.UserDefinedType)
6569
{
@@ -68,8 +72,7 @@ private string Format(Declaration declaration)
6872
? System.IO.Path.GetFileName(moduleName.ProjectPath) + ";" + moduleName.ProjectName + "." + declaration.IdentifierName
6973
: moduleName.ToString();
7074
}
71-
72-
if (declaration.DeclarationType == DeclarationType.EnumerationMember
75+
else if (declaration.DeclarationType == DeclarationType.EnumerationMember
7376
|| declaration.DeclarationType == DeclarationType.UserDefinedTypeMember)
7477
{
7578
formattedDeclaration = string.Format("{0}.{1}.{2}",
@@ -81,13 +84,13 @@ private string Format(Declaration declaration)
8184
}
8285

8386
var subscripts = declaration.IsArray ? "()" : string.Empty;
84-
if (declaration.ParentDeclaration.DeclarationType.HasFlag(DeclarationType.Member))
87+
if (declaration.ParentDeclaration != null && declaration.ParentDeclaration.DeclarationType.HasFlag(DeclarationType.Member))
8588
{
8689
// locals, parameters
8790
formattedDeclaration = string.Format("{0}:{1}{2} {3}", declaration.ParentDeclaration.QualifiedName, declaration.IdentifierName, subscripts, typeName);
8891
}
8992

90-
if (declaration.ParentDeclaration.DeclarationType.HasFlag(DeclarationType.Module))
93+
if (declaration.ParentDeclaration != null && declaration.ParentDeclaration.DeclarationType.HasFlag(DeclarationType.Module))
9194
{
9295
// fields
9396
var withEvents = declaration.IsWithEvents ? "(WithEvents) " : string.Empty;

0 commit comments

Comments
 (0)