public override Stream OpenRead(string resolvedPath) { if (ScriptParser.TryParseNuGetPackageReference(resolvedPath, out var packageName, out _)) { var scripts = _scriptMap[packageName]; if (scripts.Count == 1) { return(_sourceReferenceResolver.OpenRead(resolvedPath)); } if (scripts.Count > 1) { MemoryStream memoryStream = new MemoryStream(); StreamWriter streamWriter = new StreamWriter(memoryStream); foreach (var script in scripts) { var loadStatement = $"#load \"{script}\""; streamWriter.WriteLine(loadStatement); } streamWriter.Flush(); memoryStream.Position = 0; return(memoryStream); } } return(_sourceReferenceResolver.OpenRead(resolvedPath)); }
public override Stream OpenRead(string resolvedPath) { if (resolvedPath.StartsWith("nuget:", StringComparison.OrdinalIgnoreCase)) { var packageName = PackageNameVersionMatcher.Match(resolvedPath).Groups[1].Value; var scripts = _scriptMap[packageName]; if (scripts.Count == 1) { return(_sourceReferenceResolver.OpenRead(resolvedPath)); } if (scripts.Count > 1) { MemoryStream memoryStream = new MemoryStream(); StreamWriter streamWriter = new StreamWriter(memoryStream); foreach (var script in scripts) { var loadStatement = $"#load \"{script}\""; streamWriter.WriteLine(loadStatement); } streamWriter.Flush(); memoryStream.Position = 0; return(memoryStream); } } return(_sourceReferenceResolver.OpenRead(resolvedPath)); }
/// <summary> /// Opens a <see cref="T:System.IO.Stream" /> that allows reading the content of the specified file. /// </summary> /// <param name="resolvedPath">Path returned by <see cref="M:Microsoft.CodeAnalysis.SourceReferenceResolver.ResolveReference(System.String,System.String)" />.</param> /// <returns></returns> public override Stream OpenRead(string resolvedPath) { ImportUserTypeCode code; if (codeGenCode.TryGetValue(resolvedPath, out code)) { return(new MemoryStream(Encoding.UTF8.GetBytes(code.Code))); } ImportUserTypeOptions options = ImportUserTypeOptions.ParseString(resolvedPath); if (options != null) { code = GenerateCode(options); AddCode(code); return(new MemoryStream(Encoding.UTF8.GetBytes(code.Code))); } return(originalSourceResolver.OpenRead(resolvedPath)); }
public override Stream OpenRead(string resolvedPath) { return(originalSourceResolver.OpenRead(resolvedPath)); }
public override Stream OpenRead(string resolvedPath) { return(_inner.OpenRead(resolvedPath)); }