Skip to content

Commit bf6380e

Browse files
authored
Merge pull request #135 from rubberduck-vba/next
sync with main repo
2 parents a0090d6 + 95dd6df commit bf6380e

File tree

107 files changed

+2917
-2718
lines changed

Some content is hidden

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

107 files changed

+2917
-2718
lines changed

RetailCoder.VBE/App.cs

Lines changed: 22 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public sealed class App : IDisposable
3838
private readonly BranchesViewViewModel _branchesVM;
3939
private readonly SourceControlViewViewModel _sourceControlPanelVM;
4040

41-
private readonly Logger _logger;
41+
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
4242

4343
private VBProjectsEventsSink _sink;
4444
private Configuration _config;
@@ -67,7 +67,6 @@ public App(VBE vbe, IMessageBox messageBox,
6767
_appMenus = appMenus;
6868
_stateBar = stateBar;
6969
_hooks = hooks;
70-
_logger = LogManager.GetCurrentClassLogger();
7170

7271
var sourceControlPanel = (SourceControlPanel) sourceControlPresenter.Window();
7372
_sourceControlPanelVM = (SourceControlViewViewModel) sourceControlPanel.ViewModel;
@@ -221,7 +220,7 @@ async void sink_ProjectRemoved(object sender, DispatcherEventArgs<VBProject> e)
221220

222221
if (e.Item.Protection == vbext_ProjectProtection.vbext_pp_locked)
223222
{
224-
_logger.Debug("Locked project '{0}' was removed.", e.Item.Name);
223+
Logger.Debug("Locked project '{0}' was removed.", e.Item.Name);
225224
return;
226225
}
227226

@@ -235,7 +234,7 @@ async void sink_ProjectRemoved(object sender, DispatcherEventArgs<VBProject> e)
235234
_parser.State.RemoveProject(e.Item);
236235
_parser.State.OnParseRequested(this);
237236

238-
_logger.Debug("Project '{0}' was removed.", e.Item.Name);
237+
Logger.Debug("Project '{0}' was removed.", e.Item.Name);
239238
Tuple<IConnectionPoint, int> componentsTuple;
240239
if (_componentsEventsConnectionPoints.TryGetValue(projectId, out componentsTuple))
241240
{
@@ -261,10 +260,10 @@ async void sink_ProjectAdded(object sender, DispatcherEventArgs<VBProject> e)
261260
{
262261
if (!_handleSinkEvents || !_vbe.IsInDesignMode()) { return; }
263262

264-
_logger.Debug("Project '{0}' was added.", e.Item.Name);
263+
Logger.Debug("Project '{0}' was added.", e.Item.Name);
265264
if (e.Item.Protection == vbext_ProjectProtection.vbext_pp_locked)
266265
{
267-
_logger.Debug("Project is protected and will not be added to parser state.");
266+
Logger.Debug("Project is protected and will not be added to parser state.");
268267
return;
269268
}
270269

@@ -288,7 +287,7 @@ private void RegisterComponentsEventSink(VBComponents components, string project
288287
if (_componentsEventsSinks.ContainsKey(projectId))
289288
{
290289
// already registered - this is caused by the initial load+rename of a project in the VBE
291-
_logger.Debug("Components sink already registered.");
290+
Logger.Debug("Components sink already registered.");
292291
return;
293292
}
294293

@@ -311,7 +310,7 @@ private void RegisterComponentsEventSink(VBComponents components, string project
311310
connectionPoint.Advise(componentsSink, out cookie);
312311

313312
_componentsEventsConnectionPoints.Add(projectId, Tuple.Create(connectionPoint, cookie));
314-
_logger.Debug("Components sink registered and advising.");
313+
Logger.Debug("Components sink registered and advising.");
315314
}
316315

317316
async void sink_ComponentSelected(object sender, DispatcherEventArgs<VBComponent> e)
@@ -322,9 +321,8 @@ async void sink_ComponentSelected(object sender, DispatcherEventArgs<VBComponent
322321
{
323322
return;
324323
}
325-
326-
_logger.Debug("Component '{0}' was selected.", e.Item.Name);
327-
// do something?
324+
325+
// todo: keep Code Explorer in sync with Project Explorer
328326
}
329327

330328
async void sink_ComponentRenamed(object sender, DispatcherRenamedEventArgs<VBComponent> e)
@@ -340,7 +338,7 @@ async void sink_ComponentRenamed(object sender, DispatcherRenamedEventArgs<VBCom
340338

341339
_sourceControlPanelVM.HandleRenamedComponent(e.Item, e.OldName);
342340

343-
_logger.Debug("Component '{0}' was renamed to '{1}'.", e.OldName, e.Item.Name);
341+
Logger.Debug("Component '{0}' was renamed to '{1}'.", e.OldName, e.Item.Name);
344342

345343
var projectId = e.Item.Collection.Parent.HelpFile;
346344
var componentDeclaration = _parser.State.AllDeclarations.FirstOrDefault(f =>
@@ -359,7 +357,7 @@ async void sink_ComponentRenamed(object sender, DispatcherRenamedEventArgs<VBCom
359357
_referencesEventsSinks.Remove(projectId);
360358
_parser.State.RemoveProject(projectId);
361359

362-
_logger.Debug("Project '{0}' was removed.", e.Item.Name);
360+
Logger.Debug("Project '{0}' was removed.", e.Item.Name);
363361
Tuple<IConnectionPoint, int> componentsTuple;
364362
if (_componentsEventsConnectionPoints.TryGetValue(projectId, out componentsTuple))
365363
{
@@ -397,7 +395,7 @@ async void sink_ComponentRemoved(object sender, DispatcherEventArgs<VBComponent>
397395

398396
_sourceControlPanelVM.HandleRemovedComponent(e.Item);
399397

400-
_logger.Debug("Component '{0}' was removed.", e.Item.Name);
398+
Logger.Debug("Component '{0}' was removed.", e.Item.Name);
401399
_parser.State.ClearStateCache(e.Item, true);
402400
}
403401

@@ -411,8 +409,7 @@ async void sink_ComponentReloaded(object sender, DispatcherEventArgs<VBComponent
411409
}
412410

413411
_parser.Cancel(e.Item);
414-
415-
_logger.Debug("Component '{0}' was reloaded.", e.Item.Name);
412+
416413
_parser.State.OnParseRequested(sender, e.Item);
417414
}
418415

@@ -427,7 +424,7 @@ async void sink_ComponentAdded(object sender, DispatcherEventArgs<VBComponent> e
427424

428425
_sourceControlPanelVM.HandleAddedComponent(e.Item);
429426

430-
_logger.Debug("Component '{0}' was added.", e.Item.Name);
427+
Logger.Debug("Component '{0}' was added.", e.Item.Name);
431428
_parser.State.OnParseRequested(sender, e.Item);
432429
}
433430

@@ -439,8 +436,7 @@ async void sink_ComponentActivated(object sender, DispatcherEventArgs<VBComponen
439436
{
440437
return;
441438
}
442-
443-
_logger.Debug("Component '{0}' was activated.", e.Item.Name);
439+
444440
// do something?
445441
}
446442

@@ -455,7 +451,7 @@ async void sink_ProjectRenamed(object sender, DispatcherRenamedEventArgs<VBProje
455451

456452
_parser.Cancel();
457453

458-
_logger.Debug("Project '{0}' (ID {1}) was renamed to '{2}'.", e.OldName, e.Item.HelpFile, e.Item.Name);
454+
Logger.Debug("Project '{0}' (ID {1}) was renamed to '{2}'.", e.OldName, e.Item.HelpFile, e.Item.Name);
459455

460456
_parser.State.RemoveProject(e.Item.HelpFile);
461457
_parser.State.AddProject(e.Item);
@@ -471,9 +467,8 @@ async void sink_ProjectActivated(object sender, DispatcherEventArgs<VBProject> e
471467
{
472468
return;
473469
}
474-
475-
_logger.Debug("Project '{0}' was activated.", e.Item.Name);
476-
// do something?
470+
471+
// todo: keep Code Explorer in sync with Project Explorer
477472
}
478473
#endregion
479474

@@ -485,15 +480,16 @@ private void _stateBar_Refresh(object sender, EventArgs e)
485480

486481
private void Parser_StateChanged(object sender, EventArgs e)
487482
{
488-
_logger.Debug("App handles StateChanged ({0}), evaluating menu states...", _parser.State.Status);
483+
Logger.Debug("App handles StateChanged ({0}), evaluating menu states...", _parser.State.Status);
489484
_appMenus.EvaluateCanExecute(_parser.State);
490485
}
491486

492487
private void LoadConfig()
493488
{
494-
_logger.Debug("Loading configuration");
495489
_config = _configService.LoadConfiguration();
496490

491+
_autoSave.ConfigServiceSettingsChanged(this, EventArgs.Empty);
492+
497493
var currentCulture = RubberduckUI.Culture;
498494
try
499495
{
@@ -502,7 +498,7 @@ private void LoadConfig()
502498
}
503499
catch (CultureNotFoundException exception)
504500
{
505-
_logger.Error(exception, "Error Setting Culture for Rubberduck");
501+
Logger.Error(exception, "Error Setting Culture for Rubberduck");
506502
_messageBox.Show(exception.Message, "Rubberduck", MessageBoxButtons.OK, MessageBoxIcon.Error);
507503
_config.UserSettings.GeneralSettings.Language.Code = currentCulture.Name;
508504
_configService.SaveConfiguration(_config);

RetailCoder.VBE/AutoSave/AutoSave.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,10 @@ public AutoSave(VBE vbe, IGeneralConfigService configService)
2222

2323
_configService.SettingsChanged += ConfigServiceSettingsChanged;
2424
_timer.Elapsed += _timer_Elapsed;
25-
26-
ConfigServiceSettingsChanged(null, EventArgs.Empty);
25+
_timer.Enabled = false;
2726
}
2827

29-
private void ConfigServiceSettingsChanged(object sender, EventArgs e)
28+
public void ConfigServiceSettingsChanged(object sender, EventArgs e)
3029
{
3130
var config = _configService.LoadConfiguration();
3231

RetailCoder.VBE/Common/Hotkeys/Hotkey.cs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,19 @@
44
using System.Windows.Input;
55
using Rubberduck.Common.WinAPI;
66
using NLog;
7+
using Rubberduck.UI;
78
using Rubberduck.UI.Command;
89

910
namespace Rubberduck.Common.Hotkeys
1011
{
1112
public class Hotkey : IHotkey
1213
{
1314
private readonly string _key;
14-
private readonly ICommand _command;
15+
private readonly CommandBase _command;
1516
private readonly IntPtr _hWndVbe;
16-
private static readonly Logger _logger = LogManager.GetCurrentClassLogger();
17+
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
1718

18-
public Hotkey(IntPtr hWndVbe, string key, ICommand command, Keys secondKey = Keys.None)
19+
public Hotkey(IntPtr hWndVbe, string key, CommandBase command, Keys secondKey = Keys.None)
1920
{
2021
_hWndVbe = hWndVbe;
2122

@@ -26,7 +27,7 @@ public Hotkey(IntPtr hWndVbe, string key, ICommand command, Keys secondKey = Key
2627
SecondKey = secondKey;
2728
}
2829

29-
public ICommand Command { get { return _command; } }
30+
public CommandBase Command { get { return _command; } }
3031
public string Key { get { return _key; } }
3132
public HotkeyInfo HotkeyInfo { get; private set; }
3233
public Keys Combo { get; private set; }
@@ -86,14 +87,11 @@ private void HookKey(Keys key, uint shift)
8687
var success = User32.RegisterHotKey(_hWndVbe, hookId, shift, (uint)key);
8788
if (!success)
8889
{
89-
_logger.Debug(Rubberduck.UI.RubberduckUI.CommonHotkey_KeyNotRegistered, key);
90-
//throw new Win32Exception(Rubberduck.UI.RubberduckUI.CommonHotkey_KeyNotRegistered, key);
90+
Logger.Debug(RubberduckUI.CommonHotkey_KeyNotRegistered, key);
9191
}
9292

9393
HotkeyInfo = new HotkeyInfo(hookId, Combo);
9494
IsAttached = true;
95-
96-
_logger.Debug("Hotkey '{0}' hooked successfully to command '{1}'", Key, Command.GetType()); //no translation needed for Debug.Writeline
9795
}
9896

9997
private void SetCommandShortcutText()

RetailCoder.VBE/Common/Hotkeys/IHotkey.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
using System.Windows.Forms;
22
using System.Windows.Input;
3+
using Rubberduck.UI.Command;
34

45
namespace Rubberduck.Common.Hotkeys
56
{
67
public interface IHotkey : IAttachable
78
{
89
string Key { get; }
9-
ICommand Command { get; }
10+
CommandBase Command { get; }
1011
HotkeyInfo HotkeyInfo { get; }
1112
Keys Combo { get; }
1213
Keys SecondKey { get; }

0 commit comments

Comments
 (0)