Skip to content

Commit b7ce6d8

Browse files
committed
resolved merge conflict
2 parents 293d0c1 + b356f79 commit b7ce6d8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+5516
-3379
lines changed

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,12 @@ This library makes localizing WPF applications at runtime using resx files a bre
9292

9393
> Licensed under [The Code Project Open License](http://www.codeproject.com/info/cpol10.aspx).
9494
95+
###[EventHook](https://github.com/justcoding121/Windows-User-Action-Hook)
96+
97+
> A one stop library for global windows user actions such mouse, keyboard, clipboard, website visit & print events.
98+
99+
This library allows Rubberduck to detect righ-click actions in the active code pane, to dynamically enable/disable menu commands depending on the current context/selection. We're also using it to capture keypresses, to trigger a reparse of the current module as it's being modified.
100+
95101
##Icons
96102

97103
We didn't come up with these icons ourselves! Here's who did what:

RetailCoder.VBE/Inspections/IgnoreOnceQuickFix.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public override void Fix()
3232
int commentStart;
3333
if (codeLine.HasComment(out commentStart) && codeLine.Substring(commentStart).StartsWith(ignoreAnnotation))
3434
{
35-
annotationText = codeLine + ' ' + _inspectionName;
35+
annotationText = codeLine + ", " + _inspectionName;
3636
codeModule.ReplaceLine(insertLine - 1, annotationText);
3737
}
3838
else

RetailCoder.VBE/Inspections/InspectionsUI.de.resx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@
139139
<value>Das Projekt hat den Standard-Projektnamen.</value>
140140
</data>
141141
<data name="EmptyStringLiteralInspection" xml:space="preserve">
142-
<value>Man sollte bevorzugt 'vbNullString' gegenüber eiem leeren String verwenden.</value>
142+
<value>Man sollte bevorzugt 'vbNullString' gegenüber einem leeren String verwenden.</value>
143143
</data>
144144
<data name="EmptyStringLiteralInspectionMeta" xml:space="preserve">
145145
<value>Die eingbaute Konstante 'vbNullString' ist ein Null String Zeiger, der 0 bytes Arbeitsspeicher benötigt. Dies ist das beabsichtigete Verhalten eines leeren Strings.</value>
@@ -199,7 +199,7 @@
199199
<value>Eine Variable, die im Modulkopf deklariert wurde aber nur in einer Prozedur verwendet wird, sollte in der Prozedur deklariert werden.</value>
200200
</data>
201201
<data name="MoveFieldCloserToUsageInspectionName" xml:space="preserve">
202-
<value>Die Größe der Varibale ist größer als benötigt.</value>
202+
<value>Die Größe der Variable ist größer als benötigt.</value>
203203
</data>
204204
<data name="MoveFieldCloserToUsageInspectionResultFormat" xml:space="preserve">
205205
<value>Veringere die Größe der Modulvariable '{0}'.</value>
@@ -247,7 +247,7 @@
247247
<value>Die 'REM'-Anweisung existiert aus Gründen der Abwärtskompatibilität. Sie kann gefahrlos durch ein einfaches Anführungszeichen ersetzt werden.</value>
248248
</data>
249249
<data name="ObsoleteCommentSyntaxInspectionName" xml:space="preserve">
250-
<value>Nutzung der 'REM'-anweisung</value>
250+
<value>Nutzung der 'REM'-Anweisung</value>
251251
</data>
252252
<data name="ObsoleteGlobalInspectionMeta" xml:space="preserve">
253253
<value>Das Schlüsselwort 'Global' existiert aus Gründen der Abwärtskompatibilität. Es kann gefahrlos mit 'Public' ersetzt werden.</value>
@@ -265,7 +265,7 @@
265265
<value>Die Verwendung der Typ-Buchstaben (z.B. $) existiert aus Gründen der Abwärtskompatibilität. Sie kann gefahrlos in der Deklaration durch 'as' ersetzt werden.</value>
266266
</data>
267267
<data name="ObsoleteTypeHintInspectionName" xml:space="preserve">
268-
<value>Verwendugshinweis für Typ</value>
268+
<value>Verwendungshinweis für Typ</value>
269269
</data>
270270
<data name="OptionBaseInspectionMeta" xml:space="preserve">
271271
<value>Arrays sind normalerweise null-basiert. Diese Option ändert die untere Standardgrenze für impliziert erzeugte Arrays. Dies kann einen 'off-by-one' Fehler erzeugen, wenn sie nicht sorgsam eingesetzt wird.</value>
@@ -277,7 +277,7 @@
277277
<value>Rubberduck kann keine Variablen auswerten, die nicht deklariert wurden. Nutze am besten 'Option Explicit' um fehleranfällige Programme zu erstellen.</value>
278278
</data>
279279
<data name="OptionExplicitInspectionName" xml:space="preserve">
280-
<value>'Option Expilicit' ist nicht angegeben.</value>
280+
<value>'Option Explicit' ist nicht angegeben.</value>
281281
</data>
282282
<data name="ParameterCanBeByValInspectionMeta" xml:space="preserve">
283283
<value>Ein Parameter der als Referenz übergeben wird, aber keine neue Wert- oder Referenzzuweisung erhält, sollte als Wert übergeben werden.</value>
@@ -332,13 +332,13 @@
332332
<value>Variable wurde deklariert aber nie genutzt.</value>
333333
</data>
334334
<data name="VariableNotUsedInspectionMeta" xml:space="preserve">
335-
<value>Eine Variable wurde deklariert und hat eine Wert-/Referenzzuweisung erhalten, allerdings wird diese Varibale nicht weitergenutzt.</value>
335+
<value>Eine Variable wurde deklariert und hat eine Wert-/Referenzzuweisung erhalten, allerdings wird diese Variable nicht weitergenutzt.</value>
336336
</data>
337337
<data name="VariableNotUsedInspectionName" xml:space="preserve">
338338
<value>Die Variable wird nicht referenziert.</value>
339339
</data>
340340
<data name="VariableTypeNotDeclaredInspectionMeta" xml:space="preserve">
341-
<value>Varibale, deren Typ nicht explizit deklariert wurde, erhält implizit den Typ 'Variant'. Überlege die Varibale explizit als 'Variant' zu defineren oder eine besseren Typ zu zuweisen.</value>
341+
<value>Variable, deren Typ nicht explizit deklariert wurde, erhält implizit den Typ 'Variant'. Überlege die Variable explizit als 'Variant' zu definieren oder eine besseren Typ zu zuweisen.</value>
342342
</data>
343343
<data name="VariableTypeNotDeclaredInspectionName" xml:space="preserve">
344344
<value>Variable ist implizit 'Variant'</value>

RetailCoder.VBE/Inspections/MultipleFolderAnnotationsInspection.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System.Linq;
33
using Rubberduck.Parsing.Symbols;
44
using Rubberduck.Parsing.VBA;
5+
using Rubberduck.Parsing.Annotations;
56

67
namespace Rubberduck.Inspections
78
{
@@ -21,9 +22,7 @@ public override IEnumerable<InspectionResultBase> GetInspectionResults()
2122
var issues = UserDeclarations.Where(declaration =>
2223
(declaration.DeclarationType == DeclarationType.Class
2324
|| declaration.DeclarationType == DeclarationType.Module)
24-
&& declaration.Annotations.Split('\n').Count(annotation =>
25-
annotation.StartsWith(Parsing.Grammar.Annotations.AnnotationMarker +
26-
Parsing.Grammar.Annotations.Folder)) > 1);
25+
&& declaration.Annotations.Count(annotation => annotation.AnnotationType == AnnotationType.Folder) > 1);
2726
return issues.Select(issue =>
2827
new MultipleFolderAnnotationsInspectionResult(this, issue));
2928
}

RetailCoder.VBE/Navigation/CodeExplorer/CodeExplorerComponentViewModel.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
using Rubberduck.Parsing.Symbols;
88
using Rubberduck.VBEditor;
99
using resx = Rubberduck.UI.CodeExplorer.CodeExplorer;
10+
using Rubberduck.Parsing.Annotations;
1011

1112
namespace Rubberduck.Navigation.CodeExplorer
1213
{
@@ -50,8 +51,8 @@ public bool IsTestModule
5051
{
5152
get
5253
{
53-
return _declaration.DeclarationType == DeclarationType.Module
54-
&& _declaration.Annotations.Split('\n').Contains(Parsing.Grammar.Annotations.TestModule);
54+
return _declaration.DeclarationType == DeclarationType.Module
55+
&& _declaration.Annotations.Any(annotation => annotation.AnnotationType == AnnotationType.TestModule);
5556
}
5657
}
5758

RetailCoder.VBE/Refactorings/ImplementInterface/ImplementInterfaceRefactoring.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ private string SubStmt(Declaration member)
117117
{
118118
var memberParams = GetParameters(member);
119119

120-
var memberSignature = "Public Sub " + _targetInterface.IdentifierName + "_" + member.IdentifierName + "(" +
120+
var memberSignature = "Private Sub " + _targetInterface.IdentifierName + "_" + member.IdentifierName + "(" +
121121
string.Join(", ", memberParams) + ")";
122122

123123
var memberCloseStatement = "End Sub" + Environment.NewLine;
@@ -129,7 +129,7 @@ private string FunctionStmt(Declaration member)
129129
{
130130
var memberParams = GetParameters(member);
131131

132-
var memberSignature = "Public Function " + _targetInterface.IdentifierName + "_" + member.IdentifierName + "(" +
132+
var memberSignature = "Private Function " + _targetInterface.IdentifierName + "_" + member.IdentifierName + "(" +
133133
string.Join(", ", memberParams) + ")" + " As " + member.AsTypeName;
134134

135135
var memberCloseStatement = "End Function" + Environment.NewLine;
@@ -141,7 +141,7 @@ private string PropertyGetStmt(Declaration member)
141141
{
142142
var memberParams = GetParameters(member);
143143

144-
var memberSignature = "Public Property Get " + _targetInterface.IdentifierName + "_" + member.IdentifierName + "(" +
144+
var memberSignature = "Private Property Get " + _targetInterface.IdentifierName + "_" + member.IdentifierName + "(" +
145145
string.Join(", ", memberParams) + ")" + " As " + member.AsTypeName;
146146

147147
var memberCloseStatement = "End Property" + Environment.NewLine;
@@ -153,7 +153,7 @@ private string PropertyLetStmt(Declaration member)
153153
{
154154
var memberParams = GetParameters(member);
155155

156-
var memberSignature = "Public Property Let " + _targetInterface.IdentifierName + "_" + member.IdentifierName +
156+
var memberSignature = "Private Property Let " + _targetInterface.IdentifierName + "_" + member.IdentifierName +
157157
"(" + string.Join(", ", memberParams) + ")";
158158

159159
var memberCloseStatement = "End Property" + Environment.NewLine;
@@ -165,7 +165,7 @@ private string PropertySetStmt(Declaration member)
165165
{
166166
var memberParams = GetParameters(member);
167167

168-
var memberSignature = "Public Property Set " + _targetInterface.IdentifierName + "_" + member.IdentifierName +
168+
var memberSignature = "Private Property Set " + _targetInterface.IdentifierName + "_" + member.IdentifierName +
169169
"(" + string.Join(", ", memberParams) + ")";
170170

171171
var memberCloseStatement = "End Property" + Environment.NewLine;

RetailCoder.VBE/UI/RubberduckUI.de.resx

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1099,13 +1099,13 @@ Warnung: Alle eigenen Einstellungen gehen dabei verloren. Die Originaldatei wird
10991099
<value>Frühes Binden</value>
11001100
</data>
11011101
<data name="UnitTestSettings_IncludeTestMethodInitCleanupPrompt" xml:space="preserve">
1102-
<value>Testmethodeninitailisierung / Leeren</value>
1102+
<value>Testmethodeninitialisierung / Leeren</value>
11031103
</data>
11041104
<data name="UnitTestSettings_IncludeTestMethodStubWhenCreatingModulePrompt" xml:space="preserve">
11051105
<value>Einfügen eine Testmethodenstubs</value>
11061106
</data>
11071107
<data name="UnitTestSettings_IncludeTestModuleInitCleanupPrompt" xml:space="preserve">
1108-
<value>Testmodulinitialiesierung / Leeren</value>
1108+
<value>Testmodulinitialisierung / Leeren</value>
11091109
</data>
11101110
<data name="UnitTestSettings_LateBinding" xml:space="preserve">
11111111
<value>Spätes Binden</value>
@@ -1147,7 +1147,7 @@ Warnung: Alle eigenen Einstellungen gehen dabei verloren. Die Originaldatei wird
11471147
<value>Beschreibung</value>
11481148
</data>
11491149
<data name="GeneralSettings_HotkeyEnabled" xml:space="preserve">
1150-
<value>Freigegeben</value>
1150+
<value>Aktiv</value>
11511151
</data>
11521152
<data name="IndenterSettings_AlignCommentsWithCode" xml:space="preserve">
11531153
<value>Richte Kommentare am Code aus</value>
@@ -1165,7 +1165,7 @@ Warnung: Alle eigenen Einstellungen gehen dabei verloren. Die Originaldatei wird
11651165
<value>Optionen freigeben</value>
11661166
</data>
11671167
<data name="IndenterSettings_EnableUndo" xml:space="preserve">
1168-
<value>Rüchgängig freigeben</value>
1168+
<value>Rückgängig freigeben</value>
11691169
</data>
11701170
<data name="IndenterSettings_EndOfLineCommentStyle" xml:space="preserve">
11711171
<value>Zeilenende Kommentarstil:</value>
@@ -1180,7 +1180,7 @@ Warnung: Alle eigenen Einstellungen gehen dabei verloren. Die Originaldatei wird
11801180
<value>Ignoriere Operatoren</value>
11811181
</data>
11821182
<data name="IndenterSettings_IndentCase" xml:space="preserve">
1183-
<value>Rücke Fall ein</value>
1183+
<value>Rücke 'Case' ein</value>
11841184
</data>
11851185
<data name="IndenterSettings_IndentCompilerDirectives" xml:space="preserve">
11861186
<value>Rücke Kompilerdirektiven ein</value>
@@ -1471,4 +1471,13 @@ Allen Sternguckern, Likern &amp; Followern, für das warme Kribbeln
14711471
<data name="CommonHotkey_KeyNotRegistered" xml:space="preserve">
14721472
<value>Hotkey ({0}) ist nicht registriert.</value>
14731473
</data>
1474+
<data name="RubberduckMenu_RegexSearchReplace" xml:space="preserve">
1475+
<value>Rege&amp;x Suchen/Ersetzen</value>
1476+
</data>
1477+
<data name="HotkeyDescription_FindSymbol" xml:space="preserve">
1478+
<value>Suche Symbol</value>
1479+
</data>
1480+
<data name="HotkeyDescription_RefactorMoveCloserToUsage" xml:space="preserve">
1481+
<value>Ziehe die Deklaration näher an die Nutzung. </value>
1482+
</data>
14741483
</root>
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
using Rubberduck.VBEditor;
2+
3+
namespace Rubberduck.Parsing.Annotations
4+
{
5+
public abstract class AnnotationBase : IAnnotation
6+
{
7+
private readonly AnnotationType _annotationType;
8+
private readonly QualifiedSelection _qualifiedSelection;
9+
10+
public const string ANNOTATION_MARKER = "'@";
11+
12+
public AnnotationBase(AnnotationType annotationType, QualifiedSelection qualifiedSelection)
13+
{
14+
_annotationType = annotationType;
15+
_qualifiedSelection = qualifiedSelection;
16+
}
17+
18+
public AnnotationType AnnotationType
19+
{
20+
get
21+
{
22+
return _annotationType;
23+
}
24+
}
25+
26+
public QualifiedSelection QualifiedSelection
27+
{
28+
get
29+
{
30+
return _qualifiedSelection;
31+
}
32+
}
33+
34+
public override string ToString()
35+
{
36+
return string.Format("Annotation Type: {0}", _annotationType);
37+
}
38+
}
39+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
using Antlr4.Runtime.Misc;
2+
using Rubberduck.Parsing.Grammar;
3+
using Rubberduck.VBEditor;
4+
using System.Collections.Generic;
5+
6+
namespace Rubberduck.Parsing.Annotations
7+
{
8+
public sealed class AnnotationListener : VBAParserBaseListener
9+
{
10+
private readonly List<IAnnotation> _annotations;
11+
private readonly IAnnotationFactory _factory;
12+
private readonly QualifiedModuleName _qualifiedName;
13+
14+
public AnnotationListener(IAnnotationFactory factory, QualifiedModuleName qualifiedName)
15+
{
16+
_annotations = new List<IAnnotation>();
17+
_factory = factory;
18+
_qualifiedName = qualifiedName;
19+
}
20+
21+
public IEnumerable<IAnnotation> Annotations
22+
{
23+
get
24+
{
25+
return _annotations;
26+
}
27+
}
28+
29+
public override void ExitAnnotation([NotNull] VBAParser.AnnotationContext context)
30+
{
31+
var newAnnotation = _factory.Create(context, new QualifiedSelection(_qualifiedName, context.GetSelection()));
32+
_annotations.Add(newAnnotation);
33+
}
34+
}
35+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
namespace Rubberduck.Parsing.Annotations
2+
{
3+
public enum AnnotationType
4+
{
5+
TestModule,
6+
ModuleInitialize,
7+
ModuleCleanup,
8+
TestMethod,
9+
TestInitialize,
10+
TestCleanup,
11+
Ignore,
12+
Folder
13+
}
14+
}

0 commit comments

Comments
 (0)