Exemplo n.º 1
0
        /// <summary>
        ///  Handler for removed text by other editor
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void my_RemovedText(object sender, EditedTextEventArgs e)
        {
            if (e.File == filename)
            {
                lock (CoProNetwork.locker)
                {
                    while (e.Seq != cb.ExpectedSequence)//if excpected id is the id i got
                    {
                        System.Threading.Monitor.Wait(CoProNetwork.locker);
                        Debug.WriteLine("Recieved seq : " + e.Seq + " Expected seq : " + cb.ExpectedSequence);
                    }


                    trackDict[e.Editor] = m_textView.TextSnapshot.CreateTrackingPoint(e.Location,
                                            PointTrackingMode.Positive);
                    uiDisp.Invoke(new Action(() =>
                    {
                        ITextEdit edit = m_textView.TextBuffer.CreateEdit();

                        var curTrackPoint = trackDict[e.Editor];

                        edit.Delete(e.Location, int.Parse(e.Command.Split(';')[1]));

                        mySideCalling = false;
                        edit.Apply();
                        edit.Dispose();
                    }));
                    System.Threading.Monitor.PulseAll(CoProNetwork.locker);
                }
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Handler for changing caret of an editor
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void my_ChangedCaret(object sender, EditedTextEventArgs e)
        {

            if (e.File == filename)
            {
                lock (CoProNetwork.locker)
                {
                    while (e.Seq != cb.ExpectedSequence)//if excpected id is the id i got
                    {
                        System.Threading.Monitor.Wait(CoProNetwork.locker);
                        Debug.WriteLine("Recieved seq : " + e.Seq + " Expected seq : " + cb.ExpectedSequence);
                    }

                    if (e.Location == 1 || e.Location == -1)
                    {
                        trackDict[e.Editor] = m_textView.TextSnapshot.CreateTrackingPoint(e.Location + trackDict[e.Editor].GetPosition(m_textView.TextSnapshot),
                        PointTrackingMode.Positive);
                    }
                    else
                    {
                        trackDict[e.Editor] = m_textView.TextSnapshot.CreateTrackingPoint(e.Location,
                        PointTrackingMode.Positive);
                    }

                    System.Threading.Monitor.PulseAll(CoProNetwork.locker);
                }
            }
            else
            {
                trackDict[e.Editor] = null;
            }

        }