Skip to content

Commit ed20254

Browse files
authored
Merge pull request #1 from retailcoder/next
some more fixes from retailcoder
2 parents 1126e47 + bc4d894 commit ed20254

File tree

2 files changed

+61
-10
lines changed

2 files changed

+61
-10
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;

Rubberduck.Parsing/Symbols/AliasDeclarations.cs

Lines changed: 51 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ public class AliasDeclarations : ICustomDeclarationLoader
1414
private Declaration _fileSystemModule;
1515
private Declaration _interactionModule;
1616
private Declaration _stringsModule;
17+
private Declaration _dateTimeModule;
1718

1819
public AliasDeclarations(RubberduckParserState state)
1920
{
@@ -48,7 +49,9 @@ public IReadOnlyList<Declaration> Load()
4849
Grammar.Tokens.RightB,
4950
Grammar.Tokens.RTrim,
5051
Grammar.Tokens.String,
51-
Grammar.Tokens.UCase
52+
Grammar.Tokens.UCase,
53+
Grammar.Tokens.Date,
54+
Grammar.Tokens.Time,
5255
};
5356

5457
private IReadOnlyList<Declaration> AddAliasDeclarations()
@@ -71,7 +74,7 @@ private IReadOnlyList<Declaration> AddAliasDeclarations()
7174
var functionAliases = FunctionAliasesWithoutParameters();
7275
AddParametersToAliasesFromReferencedFunctions(functionAliases, possiblyAliasedFunctions);
7376

74-
return functionAliases;
77+
return functionAliases.Concat<Declaration>(PropertyGetDeclarations()).ToList();
7578
}
7679

7780
private void UpdateAliasFunctionModulesFromReferencedProjects(DeclarationFinder finder)
@@ -88,6 +91,7 @@ private void UpdateAliasFunctionModulesFromReferencedProjects(DeclarationFinder
8891
_fileSystemModule = finder.FindStdModule("FileSystem", vba, true);
8992
_interactionModule = finder.FindStdModule("Interaction", vba, true);
9093
_stringsModule = finder.FindStdModule("Strings", vba, true);
94+
_dateTimeModule = finder.FindStdModule("DateTime", vba, true);
9195
}
9296

9397

@@ -120,6 +124,50 @@ private List<Declaration> ReferencedBuiltInFunctionsThatMightHaveAnAlias(Rubberd
120124
return functions.ToList();
121125
}
122126

127+
private List<PropertyGetDeclaration> PropertyGetDeclarations()
128+
{
129+
return new List<PropertyGetDeclaration>
130+
{
131+
DatePropertyGet(),
132+
TimePropertyGet(),
133+
};
134+
}
135+
136+
private PropertyGetDeclaration DatePropertyGet()
137+
{
138+
return new PropertyGetDeclaration(
139+
new QualifiedMemberName(_dateTimeModule.QualifiedName.QualifiedModuleName, "Date"),
140+
_dateTimeModule,
141+
_dateTimeModule,
142+
"Variant",
143+
null,
144+
string.Empty,
145+
Accessibility.Global,
146+
null,
147+
new Selection(),
148+
false,
149+
true,
150+
new List<IAnnotation>(),
151+
new Attributes());
152+
}
153+
154+
private PropertyGetDeclaration TimePropertyGet()
155+
{
156+
return new PropertyGetDeclaration(
157+
new QualifiedMemberName(_dateTimeModule.QualifiedName.QualifiedModuleName, "Time"),
158+
_dateTimeModule,
159+
_dateTimeModule,
160+
"Variant",
161+
null,
162+
string.Empty,
163+
Accessibility.Global,
164+
null,
165+
new Selection(),
166+
false,
167+
true,
168+
new List<IAnnotation>(),
169+
new Attributes());
170+
}
123171

124172
private List<FunctionDeclaration> FunctionAliasesWithoutParameters()
125173
{
@@ -146,7 +194,7 @@ private List<FunctionDeclaration> FunctionAliasesWithoutParameters()
146194
RightBFunction(),
147195
RTrimFunction(),
148196
StringFunction(),
149-
UCaseFunction()
197+
UCaseFunction(),
150198
};
151199
}
152200

0 commit comments

Comments
 (0)