Skip to content

Commit e9e5546

Browse files
committed
Close #1506
1 parent 88cb6c2 commit e9e5546

File tree

3 files changed

+9
-2
lines changed

3 files changed

+9
-2
lines changed

RetailCoder.VBE/App.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,8 @@ async void sink_ProjectRenamed(object sender, DispatcherRenamedEventArgs<VBProje
335335

336336
_logger.Debug("Project '{0}' (ID {1}) was renamed to '{2}'.", e.OldName, e.Item.HelpFile, e.Item.Name);
337337

338-
// note: if a bug is discovered with renaming a project, it may just need to be removed and readded.
338+
_parser.State.RemoveProject(e.Item.HelpFile);
339+
_parser.State.AddProject(e.Item);
339340

340341
_parser.State.OnParseRequested(sender);
341342
}

RetailCoder.VBE/Refactorings/Rename/RenameRefactoring.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,7 @@ private void Rename()
203203
else if (_model.Target.DeclarationType == DeclarationType.Project)
204204
{
205205
RenameProject();
206+
return; // renaming a project automatically triggers a reparse
206207
}
207208
else
208209
{
@@ -263,7 +264,6 @@ private void RenameProject()
263264
if (project != null)
264265
{
265266
project.Name = _model.NewName;
266-
_state.RemoveDeclaration(_model.Target);
267267
}
268268
}
269269
catch (COMException)

Rubberduck.Parsing/VBA/RubberduckParserState.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,10 +109,16 @@ public void AddProject(VBProject project)
109109

110110
public void RemoveProject(string projectId)
111111
{
112+
var project = Projects.FirstOrDefault(f => f.HelpFile == projectId);
112113
if (_projects.ContainsKey(projectId))
113114
{
114115
_projects.Remove(projectId);
115116
}
117+
118+
if (project != null)
119+
{
120+
ClearStateCache(project);
121+
}
116122
}
117123

118124
public void RemoveProject(VBProject project)

0 commit comments

Comments
 (0)