Example #1
0
 private void OnTextChanged(TextChangedEventArgs e)
 {
     if (TextChanged != null)
     {
         TextChanged(this, e);
     }
 }
Example #2
0
 private void HandleTextChanged(object sender, TextChangedEventArgs e)
 {
     TryParsing(e);
     UpdateFormatting();
     ConsistencyCheck();
 }
Example #3
0
 private void TryParsing(TextChangedEventArgs e)
 {
     if (_parseTree == null
         || _parseTree.EndPosition <= e.Start
         || _parseTree.StartPosition >= e.Start)
     {
         Console.WriteLine("Complete Reparse.");
         _text.SetText("");
         string text = _editor.GetText(0, _editor.Length);
         int pos = 0;
         foreach (char ch in text)
         {
             _text.InsertChar(ch, pos);
             pos ++;
         }
         CompleteReparse();
     }
     else
     {
         // TODO: Add multiple char deletion and insertion to parse nodes and TWC.
         // Also add unit tests for them.
         switch (e.Operation)
         {
         case TextChangedEventArgs.OperationType.Insertion:
             for (int i = 0; i < e.Length; i++)
             {
                 _parseTree = _parseTree.CharInsertedAt(e.Text[i], e.Start + i);
             }
     //                    Console.WriteLine(">>> After insert:");
             break;
         case TextChangedEventArgs.OperationType.Deletion:
     //                    Console.WriteLine(">>> TWC is: {0}", _text.TestRender());
             for (int i = 0; i < e.Length; i++)
             {
                 _parseTree = _parseTree.CharDeletedAt(e.Start);
             }
     //                    Console.WriteLine(">>> After delete:");
             break;
         default:
     //                    Console.WriteLine("Unknown text change operation.");
             break;
         }
     //                Console.WriteLine(">>> Code tree is:{0}{1}",
     //                                  Environment.NewLine,
     //                                  _parseTree.ToStringAsTree());
     //                Console.WriteLine(">>> TWC is: {1}: {0}",
     //                                  _text.TestRender(),
     //                                  _text.GetHashCode());
     //                Console.WriteLine(">>> Old code is '{0}'.", _parseTree.ToStringAsCode(true));
     //                Console.WriteLine(">>> New code is '{0}'.", _parseTree.ToStringAsCode(false));
     }
 }
Example #4
0
 private void OnTextChanged(TextChangedEventArgs.OperationType operation,
                            int start,
                            int length,
                            string text)
 {
     if (TextChanged != null)
     {
         TextChanged(this,
                     new TextChangedEventArgs(operation, start, length, text));
     }
 }