Skip to content

Commit

Permalink
Merge branch 'next' of https://github.com/rubberduck-vba/Rubberduck i…
Browse files Browse the repository at this point in the history
…nto MockComObjects

# Conflicts:
#	Rubberduck.Main/Root/RubberduckIoCInstaller.cs
  • Loading branch information
bclothier committed Feb 19, 2019
2 parents 2624756 + c776544 commit 9d0fe50
Show file tree
Hide file tree
Showing 408 changed files with 23,445 additions and 11,932 deletions.
39 changes: 39 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,39 @@
---
name: Bug report
about: Rubberduck does not work as expected
title: ''
labels: bug
assignees: ''

---
**Rubberduck version information**
The info below can be copy-paste-completed from the first lines of Rubberduck's Log or the About box:

Rubberduck version [...]
Operating System: [...]
Host Product: [...]
Host Version: [...]
Host Executable: [...]


**Description**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Logfile**
Rubberduck generates extensive logging in TRACE-Level. If no log was created at `%APPDATA%\Rubberduck\Logs`, check your settings. Include this Log for bugreports about the behavior of Rubbberduck

**Additional context**
Add any other context about the problem here.
4 changes: 3 additions & 1 deletion README.md
Expand Up @@ -17,6 +17,8 @@ If you like this project and would like to thank its contributors, you are welco
[masterBuildStatus]:https://ci.appveyor.com/api/projects/status/we3pdnkeebo4nlck/branch/master?svg=true
[![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/Rubberduck-vba/rubberduck.svg)](http://isitmaintained.com/project/Rubberduck-vba/rubberduck "Average time to resolve an issue")
[![Percentage of issues still open](http://isitmaintained.com/badge/open/Rubberduck-vba/rubberduck.svg)](http://isitmaintained.com/project/Rubberduck-vba/rubberduck "Percentage of issues still open")
[![Chat on stackexchange](https://img.shields.io/badge/chat-on%20stackexchange-blue.svg)](https://chat.stackexchange.com/rooms/14929/vba-rubberducking)
[![License](https://img.shields.io/github/license/rubberduck-vba/Rubberduck.svg)](https://github.com/rubberduck-vba/Rubberduck/blob/next/LICENSE)

> **[rubberduckvba.com](http://rubberduckvba.com)** [Wiki](https://github.com/rubberduck-vba/Rubberduck/wiki) [Rubberduck News](https://rubberduckvba.wordpress.com/)
> devs@rubberduckvba.com
Expand All @@ -36,7 +38,7 @@ If you like this project and would like to thank its contributors, you are welco

Rubberduck is a COM add-in for the VBA IDE (VBE).

Copyright (C) 2014-2018 Rubberduck project contributors
Copyright (C) 2014-2019 Rubberduck project contributors

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Expand Down
Expand Up @@ -51,7 +51,7 @@ protected override IEnumerable<IInspectionResult> DoGetInspectionResults()
private bool IsAssignedByRefArgument(Declaration enclosingProcedure, IdentifierReference reference)
{
var argExpression = reference.Context.GetAncestor<VBAParser.ArgumentExpressionContext>();
var parameter = State.DeclarationFinder.FindParameterFromArgument(argExpression, enclosingProcedure);
var parameter = State.DeclarationFinder.FindParameterOfNonDefaultMemberFromSimpleArgumentNotPassedByValExplicitly(argExpression, enclosingProcedure);

// note: not recursive, by design.
return parameter != null
Expand Down

Large diffs are not rendered by default.

Expand Up @@ -54,7 +54,7 @@ protected override IEnumerable<IInspectionResult> DoGetInspectionResults()
private bool IsAssignedByRefArgument(Declaration enclosingProcedure, IdentifierReference reference)
{
var argExpression = reference.Context.GetAncestor<VBAParser.ArgumentExpressionContext>();
var parameter = State.DeclarationFinder.FindParameterFromArgument(argExpression, enclosingProcedure);
var parameter = State.DeclarationFinder.FindParameterOfNonDefaultMemberFromSimpleArgumentNotPassedByValExplicitly(argExpression, enclosingProcedure);

// note: not recursive, by design.
return parameter != null
Expand Down
Expand Up @@ -37,7 +37,7 @@ protected override IEnumerable<IInspectionResult> DoGetInspectionResults()
private bool IsAssignedByRefArgument(Declaration enclosingProcedure, IdentifierReference reference)
{
var argExpression = reference.Context.GetAncestor<VBAParser.ArgumentExpressionContext>();
var parameter = State.DeclarationFinder.FindParameterFromArgument(argExpression, enclosingProcedure);
var parameter = State.DeclarationFinder.FindParameterOfNonDefaultMemberFromSimpleArgumentNotPassedByValExplicitly(argExpression, enclosingProcedure);

// note: not recursive, by design.
return parameter != null
Expand Down
21 changes: 10 additions & 11 deletions Rubberduck.CodeAnalysis/QuickFixes/EncapsulateFieldQuickFix.cs
Expand Up @@ -3,38 +3,37 @@
using Rubberduck.Parsing.Inspections.Abstract;
using Rubberduck.Parsing.Rewriter;
using Rubberduck.Parsing.VBA;
using Rubberduck.Refactorings;
using Rubberduck.Refactorings.EncapsulateField;
using Rubberduck.SmartIndenter;
using Rubberduck.UI.Refactorings.EncapsulateField;
using Rubberduck.VBEditor.SafeComWrappers.Abstract;
using Rubberduck.VBEditor.Utility;

namespace Rubberduck.Inspections.QuickFixes
{
public sealed class EncapsulateFieldQuickFix : QuickFixBase
{
private readonly IVBE _vbe;
private readonly RubberduckParserState _state;
private readonly ISelectionService _selectionService;
private readonly IRewritingManager _rewritingManager;
private readonly IIndenter _indenter;

public EncapsulateFieldQuickFix(IVBE vbe, RubberduckParserState state, IIndenter indenter, IRewritingManager rewritingManager)
private readonly IRefactoringPresenterFactory _factory;

public EncapsulateFieldQuickFix(RubberduckParserState state, IIndenter indenter, IRefactoringPresenterFactory factory, IRewritingManager rewritingManager, ISelectionService selectionService)
: base(typeof(EncapsulatePublicFieldInspection))
{
_vbe = vbe;
_state = state;
_selectionService = selectionService;
_rewritingManager = rewritingManager;
_indenter = indenter;
_factory = factory;
}

//The rewriteSession is optional since it is not used in this particular quickfix because it is a refactoring quickfix.
public override void Fix(IInspectionResult result, IRewriteSession rewriteSession = null)
{
using (var view = new EncapsulateFieldDialog(new EncapsulateFieldViewModel(_state, _indenter)))
{
var factory = new EncapsulateFieldPresenterFactory(_vbe, _state, view);
var refactoring = new EncapsulateFieldRefactoring(_vbe, _indenter, factory, _rewritingManager);
refactoring.Refactor(result.Target);
}
var refactoring = new EncapsulateFieldRefactoring(_state, _indenter, _factory, _rewritingManager, _selectionService);
refactoring.Refactor(result.Target);
}

public override string Description(IInspectionResult result)
Expand Down
Expand Up @@ -7,20 +7,21 @@
using Rubberduck.Refactorings.MoveCloserToUsage;
using Rubberduck.Resources.Inspections;
using Rubberduck.VBEditor.SafeComWrappers.Abstract;
using Rubberduck.VBEditor.Utility;

namespace Rubberduck.Inspections.QuickFixes
{
public sealed class MoveFieldCloserToUsageQuickFix : QuickFixBase
{
private readonly IVBE _vbe;
private readonly ISelectionService _selectionService;
private readonly RubberduckParserState _state;
private readonly IRewritingManager _rewritingManager;
private readonly IMessageBox _messageBox;

public MoveFieldCloserToUsageQuickFix(IVBE vbe, RubberduckParserState state, IMessageBox messageBox, IRewritingManager rewritingManager)
public MoveFieldCloserToUsageQuickFix(RubberduckParserState state, IMessageBox messageBox, IRewritingManager rewritingManager, ISelectionService selectionService)
: base(typeof(MoveFieldCloserToUsageInspection))
{
_vbe = vbe;
_selectionService = selectionService;
_state = state;
_rewritingManager = rewritingManager;
_messageBox = messageBox;
Expand All @@ -29,7 +30,7 @@ public MoveFieldCloserToUsageQuickFix(IVBE vbe, RubberduckParserState state, IMe
//The rewriteSession is optional since it is not used in this particular quickfix because it is a refactoring quickfix.
public override void Fix(IInspectionResult result, IRewriteSession rewriteSession = null)
{
var refactoring = new MoveCloserToUsageRefactoring(_vbe, _state, _messageBox, _rewritingManager);
var refactoring = new MoveCloserToUsageRefactoring(_state, _messageBox, _rewritingManager, _selectionService);
refactoring.Refactor(result.Target);
}

Expand Down
29 changes: 11 additions & 18 deletions Rubberduck.CodeAnalysis/QuickFixes/RemoveUnusedParameterQuickFix.cs
@@ -1,43 +1,36 @@
using Rubberduck.Inspections.Abstract;
using Rubberduck.Inspections.Concrete;
using Rubberduck.Interaction;
using Rubberduck.Parsing.Inspections.Abstract;
using Rubberduck.Parsing.Rewriter;
using Rubberduck.Parsing.VBA;
using Rubberduck.Refactorings;
using Rubberduck.Refactorings.RemoveParameters;
using Rubberduck.UI.Refactorings.RemoveParameters;
using Rubberduck.VBEditor.SafeComWrappers.Abstract;
using Rubberduck.VBEditor.Utility;

namespace Rubberduck.Inspections.QuickFixes
{
public sealed class RemoveUnusedParameterQuickFix : QuickFixBase
{
private readonly IVBE _vbe;
private readonly RubberduckParserState _state;
private readonly IDeclarationFinderProvider _declarationFinderProvider;
private readonly IRefactoringPresenterFactory _factory;
private readonly IRewritingManager _rewritingManager;
private readonly IMessageBox _messageBox;
private readonly ISelectionService _selectionService;

public RemoveUnusedParameterQuickFix(IVBE vbe, RubberduckParserState state, IMessageBox messageBox, IRewritingManager rewritingManager)
public RemoveUnusedParameterQuickFix(IDeclarationFinderProvider declarationFinderProvider, IRefactoringPresenterFactory factory, IRewritingManager rewritingManager, ISelectionService selectionService)
: base(typeof(ParameterNotUsedInspection))
{
_vbe = vbe;
_state = state;
_declarationFinderProvider = declarationFinderProvider;
_factory = factory;
_rewritingManager = rewritingManager;
_messageBox = messageBox;
_selectionService = selectionService;
}

//The rewriteSession is optional since it is not used in this particular quickfix because it is a refactoring quickfix.
public override void Fix(IInspectionResult result, IRewriteSession rewriteSession = null)
{
using (var dialog = new RemoveParametersDialog(new RemoveParametersViewModel(_state)))
{
var refactoring = new RemoveParametersRefactoring(
_vbe,
new RemoveParametersPresenterFactory(_vbe, dialog, _state, _messageBox),
_rewritingManager);

refactoring.QuickFix(_state, result.QualifiedSelection);
}
var refactoring = new RemoveParametersRefactoring(_declarationFinderProvider, _factory, _rewritingManager, _selectionService);
refactoring.QuickFix(result.QualifiedSelection);
}

public override string Description(IInspectionResult result) => Resources.Inspections.QuickFixes.RemoveUnusedParameterQuickFix;
Expand Down
21 changes: 10 additions & 11 deletions Rubberduck.CodeAnalysis/QuickFixes/RenameDeclarationQuickFix.cs
Expand Up @@ -6,42 +6,41 @@
using Rubberduck.Parsing.Inspections.Abstract;
using Rubberduck.Parsing.Rewriter;
using Rubberduck.Parsing.VBA;
using Rubberduck.Refactorings;
using Rubberduck.Refactorings.Rename;
using Rubberduck.Resources;
using Rubberduck.UI.Refactorings.Rename;
using Rubberduck.VBEditor.SafeComWrappers.Abstract;
using Rubberduck.VBEditor.Utility;

namespace Rubberduck.Inspections.QuickFixes
{
public sealed class RenameDeclarationQuickFix : QuickFixBase
{
private readonly IVBE _vbe;
private readonly ISelectionService _selectionService;
private readonly RubberduckParserState _state;
private readonly IRewritingManager _rewritingManager;
private readonly IMessageBox _messageBox;

public RenameDeclarationQuickFix(IVBE vbe, RubberduckParserState state, IMessageBox messageBox, IRewritingManager rewritingManager)
private readonly IRefactoringPresenterFactory _factory;

public RenameDeclarationQuickFix(RubberduckParserState state, IMessageBox messageBox, IRefactoringPresenterFactory factory, IRewritingManager rewritingManager, ISelectionService selectionService)
: base(typeof(HungarianNotationInspection),
typeof(UseMeaningfulNameInspection),
typeof(DefaultProjectNameInspection),
typeof(UnderscoreInPublicClassModuleMemberInspection),
typeof(ExcelUdfNameIsValidCellReferenceInspection))
{
_vbe = vbe;
_selectionService = selectionService;
_state = state;
_rewritingManager = rewritingManager;
_messageBox = messageBox;
_factory = factory;
}

//The rewriteSession is optional since it is not used in this particular quickfix because it is a refactoring quickfix.
public override void Fix(IInspectionResult result, IRewriteSession rewriteSession = null)
{
using (var view = new RenameDialog(new RenameViewModel(_state)))
{
var factory = new RenamePresenterFactory(_vbe, view, _state);
var refactoring = new RenameRefactoring(_vbe, factory, _messageBox, _state, _state.ProjectsProvider, _rewritingManager);
refactoring.Refactor(result.Target);
}
var refactoring = new RenameRefactoring(_factory, _messageBox, _state, _state.ProjectsProvider, _rewritingManager, _selectionService);
refactoring.Refactor(result.Target);
}

public override string Description(IInspectionResult result)
Expand Down
2 changes: 1 addition & 1 deletion Rubberduck.Core/AddRemoveReferences/ReferenceModel.cs
Expand Up @@ -184,7 +184,7 @@ public bool Matches(ReferenceInfo info)
FullPath.Equals(info.FullPath, StringComparison.OrdinalIgnoreCase) ||
FullPath32.Equals(info.FullPath, StringComparison.OrdinalIgnoreCase) ||
FullPath64.Equals(info.FullPath, StringComparison.OrdinalIgnoreCase) ||
Guid.Equals(info.Guid);
!Guid.Equals(Guid.Empty) && Guid.Equals(info.Guid);
}

private void NotifyPropertyChanged([CallerMemberName] string propertyName = "")
Expand Down
10 changes: 10 additions & 0 deletions Rubberduck.Core/AutoComplete/AutoCompleteHandlerBase.cs
Expand Up @@ -5,6 +5,9 @@

namespace Rubberduck.AutoComplete
{
/// <summary>
/// A base class/interface for AC services / "handlers".
/// </summary>
public abstract class AutoCompleteHandlerBase
{
protected AutoCompleteHandlerBase(ICodePaneHandler pane)
Expand All @@ -14,6 +17,13 @@ protected AutoCompleteHandlerBase(ICodePaneHandler pane)

protected ICodePaneHandler CodePaneHandler { get; }

/// <summary>
/// A method that returns <c>false</c> if the input isn't handled, <c>true</c> if it is.
/// </summary>
/// <param name="e">The autocompletion event info</param>
/// <param name="settings">The current AC settings</param>
/// <param name="result">If handled, the resulting <c>CodeString</c></param>
/// <returns></returns>
public abstract bool Handle(AutoCompleteEventArgs e, AutoCompleteSettings settings, out CodeString result);
}
}
Expand Up @@ -5,8 +5,12 @@
using Rubberduck.Settings;
using Rubberduck.VBEditor.Events;

namespace Rubberduck.AutoComplete.Service
namespace Rubberduck.AutoComplete
{
/// <summary>
/// A service responsible for dispatching CodePane work to more specialized autocompletion services.
/// Handles changes in configuration settings.
/// </summary>
public class AutoCompleteService : IDisposable
{
private static readonly ILogger Logger = LogManager.GetCurrentClassLogger();
Expand Down Expand Up @@ -151,6 +155,7 @@ private bool TryHandle(AutoCompleteEventArgs e, AutoCompleteHandlerBase handler)
return false;
}

Logger.Debug($"Keypress was handled by {handler.GetType().Name}.");
e.Handled = true;
return true;

Expand All @@ -169,7 +174,8 @@ public void Dispose()
}

private bool _isDisposed;
protected virtual void Dispose(bool disposing)

private void Dispose(bool disposing)
{
if (_isDisposed || !disposing)
{
Expand Down
@@ -1,7 +1,7 @@
using Rubberduck.VBEditor;
using System;
using System;
using Rubberduck.VBEditor;

namespace Rubberduck.AutoComplete.Service
namespace Rubberduck.AutoComplete.SelfClosingPairs
{
public class SelfClosingPair : IEquatable<SelfClosingPair>
{
Expand Down
Expand Up @@ -8,7 +8,7 @@
using Rubberduck.Parsing.VBA.Parsing;
using Rubberduck.VBEditor;

namespace Rubberduck.AutoComplete.Service
namespace Rubberduck.AutoComplete.SelfClosingPairs
{
public class SelfClosingPairCompletionService
{
Expand Down

0 comments on commit 9d0fe50

Please sign in to comment.