예제 #1
0
        internal static ITextBuffer LoadReference(DocumentReference documentReference, ITextBufferService textBufferService, out Encoding encoding)
        {
            encoding = (Encoding)null;
            string text;

            using (Stream stream = documentReference.GetStream(FileAccess.Read))
            {
                if (stream == null)
                {
                    return((ITextBuffer)null);
                }
                try
                {
                    text = DocumentReference.ReadDocumentContents(stream, out encoding);
                }
                catch (IOException ex)
                {
                    return((ITextBuffer)null);
                }
            }
            ITextBuffer textBuffer = textBufferService.CreateTextBuffer();

            textBuffer.SetText(0, textBuffer.Length, text);
            return(textBuffer);
        }
예제 #2
0
        public override IDocument OpenDocument(IProjectItem projectItem, IProject project, bool isReadOnly)
        {
            DocumentReference documentReference = projectItem.DocumentReference;
            Stream            stream            = documentReference.GetStream(FileAccess.Read);

            if (stream != null)
            {
                Encoding encoding;
                string   contents;
                using (stream)
                    contents = DocumentReference.ReadDocumentContents(stream, out encoding);
                return((IDocument) new LimitedDocument(projectItem.DocumentReference, isReadOnly, encoding, contents, this.editingService));
            }
            throw new FileNotFoundException(string.Format((IFormatProvider)CultureInfo.CurrentCulture, ExceptionStringTable.DocumentFileNotFound, new object[1]
            {
                (object)documentReference.Path
            }));
        }