예제 #1
0
 private void findDialog1_ReplaceRequested(object sender, ReplaceEventArgs e)
 {
     this.SelectedText = e.ReplaceText;
     if (this.findDialog1.ReplaceAvailable)
     {
         this.textAfterReplace = base.Rtf;
     }
 }
예제 #2
0
        private void ReplaceRequested(ReplaceEventArgs e)
        {
            BackgroundWorker replaceWorker = new BackgroundWorker();

            replaceWorker.DoWork             += new DoWorkEventHandler(ReplaceWorkerDoWork);
            replaceWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(ReplaceWorkerCompleted);
            replaceWorker.RunWorkerAsync(e);
            _progressDialog.Start();
        }
        void HandleDataDocumentTextReplaced(object sender, ReplaceEventArgs e)
        {
            var data = dict[(Document)sender];

            localUpdate.Remove(data);
            info.Document.Editor.Replace(e.Offset, e.Count, e.Value);
            localUpdate.Add(data);
            UpdateDiff();
        }
예제 #4
0
 void HandleInfoDocumentTextEditorDataDocumentTextReplaced(object sender, ReplaceEventArgs e)
 {
     foreach (var data in localUpdate.ToArray())
     {
         data.Document.TextReplaced -= HandleDataDocumentTextReplaced;
         data.Replace(e.Offset, e.Count, e.Value);
         data.Document.TextReplaced += HandleDataDocumentTextReplaced;
         data.Document.CommitUpdateAll();
     }
 }
예제 #5
0
        /// <summary>
        /// The find dialog has requested a replace operation on the most recently selected text
        /// </summary>
        private void findDialog1_ReplaceRequested(object sender, ReplaceEventArgs e)
        {
            // Unfortunately it does not seem possible to register this in the RichTextBox's undo stack
            SelectedText = e.ReplaceText;

            if (findDialog1.ReplaceAvailable)
            {
                textAfterReplace = Rtf;
            }
        }
예제 #6
0
 /// <summary>
 /// Handles a replace event
 /// </summary>
 /// <param name="replaceArgs"></param>
 public void HandleReplace(ReplaceEventArgs replaceArgs)
 {
     foreach (LineMatch match in replaceArgs.Matches)
     {
         if (match.RequestId == _currentId)
         {
             LoadRequest(_currentId);                    //reload the request data
             break;
         }
     }
 }
예제 #7
0
        private void ReplaceWorkerDoWork(object sender, DoWorkEventArgs e)
        {
            ReplaceEventArgs rArgs = e.Argument as ReplaceEventArgs;

            if (rArgs != null)
            {
                TrafficViewer.Instance.TrafficViewerFile.Replace(rArgs.Matches, rArgs.Replacement);
            }

            e.Result = rArgs;
        }
예제 #8
0
        void HandleDataDocumentTextReplaced(object sender, ReplaceEventArgs e)
        {
            var data = dict[(Document)sender];

            localUpdate.Remove(data);
            var editor = info.Document.GetContent <IEditableTextFile> ();

            editor.DeleteText(e.Offset, e.Count);
            editor.InsertText(e.Offset, e.Value);
            localUpdate.Add(data);
            UpdateDiff();
        }
		public override void TextReplaced (ReplaceEventArgs args)
		{
/*			// TODO: Implement span rule based document partitioner
			var mode = Document.SyntaxMode;
			var node = GetTreeNodeAtOffset (args.Offset);
			base.ChangeLength (node.value, node.value.Length - args.Count);
			if (args.Value == null)
				return;
			
			for (int i = args.Offset; i < args.Offset + args.Value.Length; i++) {
				
			}*/
		}
예제 #10
0
            /// <summary>
            /// Marks necessary lines modified when text is replaced
            /// </summary>
            private void EditorDocumentTextReplacing(object sender, ReplaceEventArgs e)
            {
                int startLine = widget.Editor.Document.OffsetToLineNumber(e.Offset),
                    endLine   = widget.Editor.Document.OffsetToLineNumber(e.Offset + Math.Max(e.Count, e.Value != null ? e.Value.Length : 0)),
                    lineCount = 0;

                string[] tokens = null;

                if (startLine < endLine)
                {
                    // change crosses line boundary

                    lineCount = endLine - startLine;
                    lineCount = Math.Min(lineCount, annotations.Count - startLine);

                    if (lineCount > 0)
                    {
                        annotations.RemoveRange(startLine, lineCount);
                    }
                    if (!string.IsNullOrEmpty(e.Value))
                    {
                        for (int i = 0; i < lineCount; ++i)
                        {
                            annotations.Insert(startLine, locallyModified);
                        }
                    }
                    return;
                }
                else if (0 == e.Count)
                {
                    // insert
                    tokens    = e.Value.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
                    lineCount = tokens.Length - 1;
                    for (int i = 0; i < lineCount; ++i)
                    {
                        annotations.Insert(Math.Min(startLine + 1, annotations.Count), locallyModified);
                    }
                }
                else if (startLine > endLine)
                {
                    // revert
                    UpdateAnnotations(null, null);
                    return;
                }

                SetAnnotation(startLine, locallyModified);
            }
예제 #11
0
 void HandleSkipCharsOnReplace(object sender, ReplaceEventArgs args)
 {
     for (int i = 0; i < skipChars.Count; i++)
     {
         SkipChar sc = skipChars[i];
         if (args.Offset < sc.Start || args.Offset > sc.Offset)
         {
             skipChars.RemoveAt(i);
             i--;
             continue;
         }
         if (args.Offset <= sc.Offset)
         {
             sc.Offset -= args.Count;
             if (!string.IsNullOrEmpty(args.Value))
             {
                 sc.Offset += args.Value.Length;
             }
         }
     }
 }
예제 #12
0
 void UpdateConflictsOnTextReplace(object sender, ReplaceEventArgs e)
 {
     Document.UpdateSegments(GetAllConflictingSegments(), e);
 }
예제 #13
0
 void HandleTextEditorDataDocumentTextReplaced(object sender, ReplaceEventArgs e)
 {
     RemoveMarkers(false);
 }
예제 #14
0
 void UpdateConflictsOnTextReplace(object sender, ReplaceEventArgs e)
 {
     this.UpdateDiff();
     Mono.TextEditor.Document.UpdateSegments(GetAllConflictingSegments(), e);
 }