示例#1
0
 public TextBuffer(IContentType contentType, string text)
 {
     Properties         = new PropertyCollection();
     this.contentType   = contentType ?? throw new ArgumentNullException(nameof(contentType));
     currentTextVersion = new TextVersion(this, text?.Length ?? 0, 0, 0);
     Document           = new TextDocument(text);
     Document.SetOwnerThread(null);
 }
示例#2
0
 void CreateNewCurrentSnapshot(IList <ITextChange> changes, int?reiteratedVersionNumber = null, ITextSource afterTextSource = null)
 {
     // It's null the first time it's called from the ctor
     if (changes != null)
     {
         currentTextVersion = currentTextVersion.SetChanges(changes, reiteratedVersionNumber);
     }
     CurrentSnapshot = new TextSnapshot(afterTextSource ?? Document.CreateSnapshot(), ContentType, this, currentTextVersion);
 }
示例#3
0
		public TextBuffer(IContentType contentType, string text) {
			if (contentType == null)
				throw new ArgumentNullException(nameof(contentType));
			Properties = new PropertyCollection();
			this.contentType = contentType;
			currentTextVersion = new TextVersion(this, text?.Length ?? 0, 0, 0);
			Document = new TextDocument(text);
			Document.SetOwnerThread(null);
		}
示例#4
0
        void CreateNewCurrentSnapshot(IList <ITextChange>?changes, int?reiteratedVersionNumber = null, ITextSource?afterTextSource = null)
        {
            // It's null the first time it's called from the ctor
            if (changes is not null)
            {
                currentTextVersion = currentTextVersion.SetChanges(changes, reiteratedVersionNumber);
            }
            var textSource = afterTextSource ?? Document.CreateSnapshot();
            var textImage  = new TextImage(this, textSource, currentTextVersion.ImageVersion);

            CurrentSnapshot = new TextSnapshot(textImage, ContentType, this, currentTextVersion);
        }
示例#5
0
		public TextVersion SetChanges(IList<ITextChange> changes, int? reiteratedVersionNumber = null) {
			var normalizedChanges = NormalizedTextChangeCollection.Create(changes);
			if (reiteratedVersionNumber == null)
				reiteratedVersionNumber = changes.Count == 0 ? ReiteratedVersionNumber : VersionNumber + 1;
			int newLength = Length;
			foreach (var c in normalizedChanges)
				newLength += c.Delta;
			Debug.Assert(newLength >= 0);
			var newVersion = new TextVersion(TextBuffer, newLength, VersionNumber + 1, reiteratedVersionNumber.Value);
			Changes = normalizedChanges;
			Next = newVersion;
			return newVersion;
		}
示例#6
0
        public TextVersion SetChanges(IList <ITextChange> changes, int?reiteratedVersionNumber = null)
        {
            var normalizedChanges = NormalizedTextChangeCollection.Create(changes);
            int reiterVerNum      = reiteratedVersionNumber ?? (changes.Count == 0 ? ReiteratedVersionNumber : VersionNumber + 1);
            int newLength         = Length;

            foreach (var c in normalizedChanges)
            {
                newLength += c.Delta;
            }
            Debug.Assert(newLength >= 0);
            var newVersion = new TextVersion(TextBuffer, newLength, VersionNumber + 1, reiterVerNum, textImageVersion.Identifier);

            textImageVersion.SetChanges(normalizedChanges, newVersion.textImageVersion);
            Next = newVersion;
            return(newVersion);
        }
示例#7
0
        public TextVersion SetChanges(IList <ITextChange> changes, int?reiteratedVersionNumber = null)
        {
            var normalizedChanges = NormalizedTextChangeCollection.Create(changes);

            if (reiteratedVersionNumber == null)
            {
                reiteratedVersionNumber = changes.Count == 0 ? ReiteratedVersionNumber : VersionNumber + 1;
            }
            int newLength = Length;

            foreach (var c in normalizedChanges)
            {
                newLength += c.Delta;
            }
            Debug.Assert(newLength >= 0);
            var newVersion = new TextVersion(TextBuffer, newLength, VersionNumber + 1, reiteratedVersionNumber.Value);

            Changes = normalizedChanges;
            Next    = newVersion;
            return(newVersion);
        }
示例#8
0
		void CreateNewCurrentSnapshot(IList<ITextChange> changes, int? reiteratedVersionNumber = null, ITextSource afterTextSource = null) {
			// It's null the first time it's called from the ctor
			if (changes != null)
				currentTextVersion = currentTextVersion.SetChanges(changes, reiteratedVersionNumber);
			CurrentSnapshot = new TextSnapshot(afterTextSource ?? Document.CreateSnapshot(), ContentType, this, currentTextVersion);
		}