Example #1
0
        public void Complete(ICSharpCode.AvalonEdit.Editing.TextArea textArea, ISegment completionSegment, EventArgs insertionRequestEventArgs)
        {
            string tokenLeftOfCaret = textArea.Document.GetIdentifierLeftOf(textArea.Caret.Offset);

            textArea.Document.Replace(textArea.Caret.Offset - tokenLeftOfCaret.Length, tokenLeftOfCaret.Length, "");
            TemplateEngine.Expand(textArea, $"{Text}\"");
        }
Example #2
0
 public void Complete(ICSharpCode.AvalonEdit.Editing.TextArea textArea,
                      ICSharpCode.AvalonEdit.Document.ISegment completionSegment,
                      EventArgs insertionRequestEventArgs)
 {
     if (textArea != null && textArea.Document != null)
     {
         textArea.Document.Replace(completionSegment, this.Text);
     }
 }
 public SelectionColorizerWithBackground(
     ICSharpCode.AvalonEdit.Editing.TextArea textArea)
 {
     if (textArea == null)
     {
         throw new ArgumentNullException("textArea");
     }
     this._textArea = textArea;
 }
        public override void Complete(ICSharpCode.AvalonEdit.Editing.TextArea textArea, ICSharpCode.AvalonEdit.Document.ISegment completionSegment, EventArgs insertionRequestEventArgs)
        {
            var insertion = Action == null ? this.Text : Action.Invoke();

            textArea.Document.Replace(completionSegment, insertion);
            if (insertion.EndsWith("("))
            {
                _parent.ShowCompletions(_control);
            }
        }
Example #5
0
 public void Complete(ICSharpCode.AvalonEdit.Editing.TextArea textArea, ICSharpCode.AvalonEdit.Document.ISegment completionSegment, EventArgs insertionRequestEventArgs)
 {
     try
     {
         textArea.Document.Replace(MainWindow.StartIndex, MainWindow.Length, this.Text);
     }
     catch (Exception)
     {
         //SetStatus?.BeginInvoke("代码提示模块出现错误", null, null);
     }
 }
 public override void Complete(ICSharpCode.AvalonEdit.Editing.TextArea textArea, ICSharpCode.AvalonEdit.Document.ISegment completionSegment, EventArgs insertionRequestEventArgs)
 {
     if (func_.Inner != null && func_.Inner.Length > 2)
     {
         textArea.Document.Replace(completionSegment, func_.Name.Trim() + "(");
     }
     else
     {
         textArea.Document.Replace(completionSegment, text_);
     }
 }
Example #7
0
 public override void Complete(ICSharpCode.AvalonEdit.Editing.TextArea textArea, ICSharpCode.AvalonEdit.Document.ISegment completionSegment, EventArgs insertionRequestEventArgs)
 {
     // Removed hard written addition of '(' because it interferes with overload-insight
     if (func_.Inner != null && func_.Inner.Length > 2)
     {
         textArea.Document.Replace(completionSegment, func_.Name.Trim());
     }
     else
     {
         textArea.Document.Replace(completionSegment, text_);
     }
 }
Example #8
0
 public virtual void Complete(ICSharpCode.AvalonEdit.Editing.TextArea textArea, ISegment completionSegment, EventArgs insertionRequestEventArgs)
 {
     // TODO quick fix, may need to revisit this
     //textArea.Document.Replace(completionSegment, this.CompletionText);
     textArea.Document.Replace(completionSegment, this.DisplayText);
 }
Example #9
0
        public OperatorParameterView(Operator op)
        {
            var watch = new Stopwatch();

            watch.Start();

            InitializeComponent();
            Operator = op;

            var binding = new Binding("Namespace");

            binding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
            binding.Source = op.Definition;
            binding.Path   = new PropertyPath("Namespace");
            NamespaceTextBox.SetBinding(TextBox.TextProperty, binding);

            binding = new Binding("Type");
            binding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
            binding.Source = op.Definition;
            binding.Path   = new PropertyPath("Name");
            TypeTextBox.SetBinding(TextBox.TextProperty, binding);


            binding = new Binding("OperatorName")
            {
                Mode = BindingMode.OneWay
            };
            binding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
            binding.Source = op;
            binding.Path   = new PropertyPath("Name");
            XNameTextBox.XTextEdit.SetBinding(TextBox.TextProperty, binding);
            XNameTextBox.EditingStartedEvent += () =>
            {
                _opStateEntry = new UpdateOperatorPropertiesCommand.Entry(op);
                _updateOperatorPropertiesCommand = new UpdateOperatorPropertiesCommand(op, _opStateEntry);
            };
            XNameTextBox.EditingUpdatedEvent += (o, ev) =>
            {
                _updateOperatorPropertiesCommand.ChangeEntries[0].Name = XNameTextBox.textEditButton.XTextEdit.Text;
                _updateOperatorPropertiesCommand.Do();
            };
            XNameTextBox.EditingCompletedEvent += () =>
            {
                App.Current.UndoRedoStack.Add(_updateOperatorPropertiesCommand);
                _updateOperatorPropertiesCommand = new UpdateOperatorPropertiesCommand(op, _opStateEntry);
            };
            XParameterStackPanel = new StackPanel();
            XParameterStackPanel.Children.Clear();

            // find groups
            var inputGroups = from input in op.Inputs
                              group input by input.Name.Split(new[] { '.' })[0] into g
                              select new { Name = g.Key, Inputs = g.ToArray() };

            foreach (var group in inputGroups)
            {
                var singleParameterRow = new OperatorParameterViewRow(group.Inputs.ToList());
                singleParameterRow.XParameterNameButton.Content = group.Name;

                singleParameterRow.XInputControls.Children.Add(new GroupInputControl(group.Inputs.ToList())); // This is slooww (half of operator selection time)

                // Single Parameter
                if (group.Inputs.Length == 1)
                {
                    XParameterStackPanel.Children.Add(singleParameterRow);

                    var input = group.Inputs[0];
                    if (input.Type == FunctionType.Float)
                    {
                        if (!input.IsMultiInput)
                        {
                            var metaInput  = input.Parent.GetMetaInput(input);
                            var enumValues = metaInput.EnumValues;

                            // ENUM - Parameter
                            if (enumValues.Count > 0)
                            {
                                var newEnumControl = new EnumParameterValue(input);
                                singleParameterRow.ResetToDefaultEvent += newEnumControl.ResetToDefaultHandler;
                                singleParameterRow.XParameterValue.Children.Add(newEnumControl);
                            }

                            // Single Float Parameter
                            else
                            {
                                FloatParameterControl newFloatControl = new FloatParameterControl(input);
                                singleParameterRow.XParameterValue.Children.Add(newFloatControl);
                                singleParameterRow.ResetToDefaultEvent     += newFloatControl.ParameterRow_ResetSingleParameterHandler;
                                singleParameterRow.StartManipulationEvent  += newFloatControl.ParameterRow_StartManipulationHandler;
                                singleParameterRow.UpdateManipulationEvent += newFloatControl.ParameterRow_UpdateManipulaitonHandler;
                                singleParameterRow.EndManipulationEvent    += newFloatControl.ParameterRow_EndManipulationHandler;
                            }
                        }
                    }
                    else if (input.Type == FunctionType.Text)
                    {
                        var paramEdit = new TextParameterValue(input);
                        if (input.Name.EndsWith("Text"))
                        {
                            singleParameterRow.XAdditionalContent.Child = paramEdit;
                        }
                        else
                        {
                            singleParameterRow.XParameterValue.Children.Add(paramEdit);
                        }
                    }
                    else if (input.Type == FunctionType.Scene)
                    {
                        var paramEdit = new SceneParameterValue(input);
                        singleParameterRow.XParameterValue.Children.Add(paramEdit);
                    }
                    else if (input.Type == FunctionType.Image)
                    {
                        var paramEdit = new ImageParameterValue(input);
                        singleParameterRow.XParameterValue.Children.Add(paramEdit);
                    }
                    else if (input.Type == FunctionType.Dynamic)
                    {
                        var paramEdit = new DynamicParameterValue(input);
                        singleParameterRow.XParameterValue.Children.Add(paramEdit);
                    }
                    else if (input.Type == FunctionType.Generic)
                    {
                        var paramEdit = new GenericParameterValue(input);
                        singleParameterRow.XParameterValue.Children.Add(paramEdit);
                    }
                    else if (input.Type == FunctionType.Mesh)
                    {
                        var paramEdit = new MeshParameterValue(input);
                        singleParameterRow.XParameterValue.Children.Add(paramEdit);
                    }
                }

                // Float Parameter Groups
                else
                {
                    if (group.Inputs.Length == 4 &&
                        group.Inputs[0].Name.EndsWith(".R") &&
                        group.Inputs[1].Name.EndsWith(".G") &&
                        group.Inputs[2].Name.EndsWith(".B") &&
                        group.Inputs[3].Name.EndsWith(".A"))
                    {
                        var rgbaControl = new RgbaParameterValue(group.Inputs);
                        singleParameterRow.ResetToDefaultEvent     += rgbaControl.ResetToDefaultHandler;
                        singleParameterRow.StartManipulationEvent  += rgbaControl.StartManipulationHandler;
                        singleParameterRow.UpdateManipulationEvent += rgbaControl.UpdateManipulationHandler;
                        singleParameterRow.EndManipulationEvent    += rgbaControl.EndManipulationHandler;
                        singleParameterRow.XParameterValue.Children.Add(rgbaControl);
                    }
                    else
                    {
                        var vectorControl = new VectorNParameterValue(group.Inputs);

                        singleParameterRow.StartManipulationEvent  += vectorControl.StartManipulationHandler;
                        singleParameterRow.UpdateManipulationEvent += vectorControl.UpdateManipulationHandler;
                        singleParameterRow.EndManipulationEvent    += vectorControl.EndManipulationHandler;
                        singleParameterRow.ResetToDefaultEvent     += vectorControl.ResetToDefaultHandler;
                        singleParameterRow.XParameterValue.Children.Add(vectorControl);
                    }

                    var parameterGroupComponent = new ParameterGroup(group.Inputs);
                    parameterGroupComponent.XParameterGroupPanel.Children.Add(singleParameterRow);
                    XParameterStackPanel.Children.Add(parameterGroupComponent);
                }
            }

            var descriptionBox = new ICSharpCode.AvalonEdit.Editing.TextArea();

            descriptionBox.ToolTip    = "Operator description. Click to edit";
            descriptionBox.Foreground = Brushes.Gray;
            descriptionBox.Margin     = new Thickness(4, 6, 4, 4);
            descriptionBox.MinHeight  = 40;
            descriptionBox.FontSize   = 13;

            DescriptionDoc              = new TextDocument(op.Definition.Description);
            DescriptionDoc.TextChanged += HandleDescriptionChange;
            descriptionBox.Document     = DescriptionDoc;
            XParameterStackPanel.Children.Add(descriptionBox);

            XParameterScrollViewer.Content = XParameterStackPanel;
            App.Current.OperatorPresetManager.FilterPresetsForSelectedOperator();

            watch.Stop();
        }
Example #10
0
 public void Complete(ICSharpCode.AvalonEdit.Editing.TextArea textArea, ICSharpCode.AvalonEdit.Document.ISegment completionSegment, EventArgs insertionRequestEventArgs)
 {
     textArea.Selection.ReplaceSelectionWithText(_text);
 }
Example #11
0
 void ICompletionData.Complete(ICSharpCode.AvalonEdit.Editing.TextArea textArea, ISegment completionSegment, EventArgs insertionRequestEventArgs)
 => textArea.Document.Replace(completionSegment, this.Text);
Example #12
0
 public virtual void Complete(ICSharpCode.AvalonEdit.Editing.TextArea textArea, ISegment completionSegment, EventArgs insertionRequestEventArgs)
 {
     textArea.Document.Replace(completionSegment, this.CompletionText);
 }
Example #13
0
        public void Complete(ICSharpCode.AvalonEdit.Editing.TextArea textArea, ICSharpCode.AvalonEdit.Document.ISegment completionSegment, EventArgs insertionRequestEventArgs)
        {
            var change = Content;

            textArea.Document.Replace(completionSegment, (string)change);
        }
Example #14
0
 public void Complete(ICSharpCode.AvalonEdit.Editing.TextArea textArea, ICSharpCode.AvalonEdit.Document.ISegment completionSegment, EventArgs insertionRequestEventArgs)
 {
     CompleteInternal(textArea.Document, completionSegment, insertionRequestEventArgs);
 }
 public void Complete(ICSharpCode.AvalonEdit.Editing.TextArea textArea, ICSharpCode.AvalonEdit.Document.ISegment completionSegment, System.EventArgs insertionRequestEventArgs)
 {
 }