@@ -7,12 +7,12 @@ namespace Rubberduck.VBEditor.SourceCodeHandling
77 public class SourceFileHandlerSourceCodeHandlerAdapter : ISourceCodeHandler
88 {
99 private readonly IProjectsProvider _projectsProvider ;
10- private readonly ISourceFileHandler _sourceFileHandler ;
10+ private readonly ITempSourceFileHandler _tempSourceFileHandler ;
1111
12- public SourceFileHandlerSourceCodeHandlerAdapter ( ISourceFileHandler sourceFileHandler , IProjectsProvider projectsProvider )
12+ public SourceFileHandlerSourceCodeHandlerAdapter ( ITempSourceFileHandler tempSourceFileHandler , IProjectsProvider projectsProvider )
1313 {
1414 _projectsProvider = projectsProvider ;
15- _sourceFileHandler = sourceFileHandler ;
15+ _tempSourceFileHandler = tempSourceFileHandler ;
1616 }
1717
1818 public string SourceCode ( QualifiedModuleName module )
@@ -23,7 +23,7 @@ public string SourceCode(QualifiedModuleName module)
2323 return string . Empty ;
2424 }
2525
26- return _sourceFileHandler . Read ( component ) ;
26+ return _tempSourceFileHandler . Read ( component ) ?? string . Empty ;
2727 }
2828
2929 public void SubstituteCode ( QualifiedModuleName module , string newCode )
@@ -40,9 +40,14 @@ public void SubstituteCode(QualifiedModuleName module, string newCode)
4040 return ;
4141 }
4242
43- var file = _sourceFileHandler . Export ( component ) ;
44- File . WriteAllText ( file , newCode ) ;
45- _sourceFileHandler . Import ( component , file ) ;
43+ var fileName = _tempSourceFileHandler . Export ( component ) ;
44+ if ( fileName == null || ! File . Exists ( fileName ) )
45+ {
46+ return ;
47+ }
48+ File . WriteAllText ( fileName , newCode ) ;
49+ _tempSourceFileHandler . ImportAndCleanUp ( component , fileName ) ;
50+
4651 }
4752 }
4853}
0 commit comments