Example #1
0
 internal static SourceText Create(Stream stream, Lazy <Encoding> getEncoding, Encoding defaultEncoding, SourceHashAlgorithm checksumAlgorithm, bool canBeEmbedded)
 => EncodedStringText.Create(stream, getEncoding, defaultEncoding, checksumAlgorithm, canBeEmbedded);
Example #2
0
 internal static SourceText Decode(Stream data, Encoding encoding, SourceHashAlgorithm checksumAlgorithm, bool throwIfBinaryDetected, bool canBeEmbedded)
 => EncodedStringText.Decode(data, encoding, checksumAlgorithm, throwIfBinaryDetected, canBeEmbedded);
Example #3
0
        internal async Task<ValueTuple<SourceText, string>> ReadFileContentAsync(CommandLineSourceFile file, IList<DiagnosticInfo> diagnostics, Encoding encoding)
        {
            try
            {
                using (var data = new FileStream(file.Path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite, bufferSize:4096, useAsync: true))
                {
                    MemoryStream stream = memoryStreamPool.Allocate();
                    stream.SetLength(0);

                    await data.CopyToAsync(stream).ConfigureAwait(false);
                    var normalizedFilePath = data.Name;
                    var text = new EncodedStringText(stream, encoding);

                    memoryStreamPool.Free(stream);

                    return ValueTuple.Create<SourceText, string>(text, normalizedFilePath);
                }

            }
            catch (Exception e)
            {
                diagnostics.Add(ToFileReadDiagostics(e, file));
                return default(ValueTuple<SourceText, string>);
            }
        }