Skip to content

Commit e94e8f1

Browse files
committed
Make CE refresh non-async for the tests
1 parent 170fca9 commit e94e8f1

File tree

2 files changed

+34
-37
lines changed

2 files changed

+34
-37
lines changed

RetailCoder.VBE/Navigation/CodeExplorer/CodeExplorerViewModel.cs

Lines changed: 33 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public CodeExplorerViewModel(FolderHelper folderHelper, RubberduckParserState st
2828
_folderHelper = folderHelper;
2929
_state = state;
3030
_state.StateChanged += ParserState_StateChanged;
31-
31+
3232
_refreshCommand = new DelegateCommand(param => _state.OnParseRequested(this),
3333
param => !IsBusy && _state.IsDirty());
3434

@@ -188,38 +188,38 @@ public string PanelTitle
188188

189189
if (SelectedItem is CodeExplorerProjectViewModel)
190190
{
191-
var node = (CodeExplorerProjectViewModel) SelectedItem;
191+
var node = (CodeExplorerProjectViewModel)SelectedItem;
192192
return node.Declaration.IdentifierName + string.Format(" - ({0})", node.Declaration.DeclarationType);
193193
}
194194

195195
if (SelectedItem is CodeExplorerComponentViewModel)
196196
{
197-
var node = (CodeExplorerComponentViewModel) SelectedItem;
197+
var node = (CodeExplorerComponentViewModel)SelectedItem;
198198
return node.Declaration.IdentifierName + string.Format(" - ({0})", node.Declaration.DeclarationType);
199199
}
200200

201201
if (SelectedItem is CodeExplorerMemberViewModel)
202202
{
203-
var node = (CodeExplorerMemberViewModel) SelectedItem;
203+
var node = (CodeExplorerMemberViewModel)SelectedItem;
204204
return node.Declaration.IdentifierName + string.Format(" - ({0})", node.Declaration.DeclarationType);
205205
}
206206

207207
return SelectedItem.Name;
208208
}
209209
}
210-
210+
211211
public string Description
212212
{
213213
get
214214
{
215215
if (SelectedItem is ICodeExplorerDeclarationViewModel)
216216
{
217-
return ((ICodeExplorerDeclarationViewModel) SelectedItem).Declaration.DescriptionString;
217+
return ((ICodeExplorerDeclarationViewModel)SelectedItem).Declaration.DescriptionString;
218218
}
219219

220220
if (SelectedItem is CodeExplorerCustomFolderViewModel)
221221
{
222-
return ((CodeExplorerCustomFolderViewModel) SelectedItem).FolderAttribute;
222+
return ((CodeExplorerCustomFolderViewModel)SelectedItem).FolderAttribute;
223223
}
224224

225225
return string.Empty;
@@ -237,47 +237,44 @@ public ObservableCollection<CodeExplorerItemViewModel> Projects
237237
set
238238
{
239239
_projects = new ObservableCollection<CodeExplorerItemViewModel>(value.OrderBy(o => o.NameWithSignature));
240-
240+
241241
ReorderChildNodes(_projects);
242242
OnPropertyChanged();
243243
}
244244
}
245245

246246
private void ParserState_StateChanged(object sender, EventArgs e)
247247
{
248-
UiDispatcher.InvokeAsync(() =>
248+
if (Projects == null)
249249
{
250-
if (Projects == null)
251-
{
252-
Projects = new ObservableCollection<CodeExplorerItemViewModel>();
253-
}
250+
Projects = new ObservableCollection<CodeExplorerItemViewModel>();
251+
}
254252

255-
IsBusy = _state.Status < ParserState.ResolvedDeclarations;
256-
if (_state.Status != ParserState.ResolvedDeclarations)
257-
{
258-
return;
259-
}
253+
IsBusy = _state.Status < ParserState.ResolvedDeclarations;
254+
if (_state.Status != ParserState.ResolvedDeclarations)
255+
{
256+
return;
257+
}
260258

261-
var userDeclarations = _state.AllUserDeclarations
262-
.GroupBy(declaration => declaration.Project)
263-
.Where(grouping => grouping.Key != null)
264-
.ToList();
259+
var userDeclarations = _state.AllUserDeclarations
260+
.GroupBy(declaration => declaration.Project)
261+
.Where(grouping => grouping.Key != null)
262+
.ToList();
265263

266-
if (userDeclarations.Any(
264+
if (userDeclarations.Any(
267265
grouping => grouping.All(declaration => declaration.DeclarationType != DeclarationType.Project)))
268-
{
269-
return;
270-
}
266+
{
267+
return;
268+
}
271269

272-
var newProjects = userDeclarations.Select(grouping =>
273-
new CodeExplorerProjectViewModel(_folderHelper,
274-
grouping.SingleOrDefault(declaration => declaration.DeclarationType == DeclarationType.Project),
275-
grouping)).ToList();
270+
var newProjects = userDeclarations.Select(grouping =>
271+
new CodeExplorerProjectViewModel(_folderHelper,
272+
grouping.SingleOrDefault(declaration => declaration.DeclarationType == DeclarationType.Project),
273+
grouping)).ToList();
276274

277-
UpdateNodes(Projects, newProjects);
275+
UpdateNodes(Projects, newProjects);
278276

279-
Projects = new ObservableCollection<CodeExplorerItemViewModel>(newProjects);
280-
});
277+
Projects = new ObservableCollection<CodeExplorerItemViewModel>(newProjects);
281278
}
282279

283280
private void UpdateNodes(IEnumerable<CodeExplorerItemViewModel> oldList,
@@ -406,7 +403,7 @@ private void SetErrorState(CodeExplorerItemViewModel itemNode, VBComponent compo
406403

407404
if (node is CodeExplorerComponentViewModel)
408405
{
409-
var componentNode = (CodeExplorerComponentViewModel) node;
406+
var componentNode = (CodeExplorerComponentViewModel)node;
410407
if (componentNode.GetSelectedDeclaration().QualifiedName.QualifiedModuleName.Component == component)
411408
{
412409
componentNode.IsErrorState = true;
@@ -475,8 +472,8 @@ private void SetErrorState(CodeExplorerItemViewModel itemNode, VBComponent compo
475472
// this is a special case--we have to reset SelectedItem to prevent a crash
476473
private void ExecuteRemoveComand(object param)
477474
{
478-
var node = (CodeExplorerComponentViewModel) SelectedItem;
479-
SelectedItem = Projects.First(p => ((CodeExplorerProjectViewModel) p).Declaration.Project == node.Declaration.Project);
475+
var node = (CodeExplorerComponentViewModel)SelectedItem;
476+
SelectedItem = Projects.First(p => ((CodeExplorerProjectViewModel)p).Declaration.Project == node.Declaration.Project);
480477

481478
_externalRemoveCommand.Execute(param);
482479
}

Rubberduck.Parsing/VBA/RubberduckParser.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ private void ParseAll()
147147
return;
148148
}
149149

150-
150+
151151
lock (_state) // note, method is invoked from UI thread... really need the lock here?
152152
{
153153
foreach (var component in toParse)

0 commit comments

Comments
 (0)