Completed
Last Updated: 02 Feb 2023 09:38 by ADMIN
Release R1 2023
Created by: Joerg
Comments: 0
Category: SyntaxEditor
Type: Feature Request
10
Add ability to disable horizontal scrollbar and enable word wrapping - fixed width of editor and if the word cannot fit - it is moved to next line.
Completed
Last Updated: 30 Aug 2021 11:33 by ADMIN
Release R3 2021
Unplanned
Last Updated: 15 Mar 2023 15:12 by ADMIN

Use the following code in the project:

    Private Sub btnToggleWW_Click(sender As Object, e As EventArgs) Handles btnToggleWW.Click
        RadSyntaxEditor1.IsWordWrapEnabled = Not RadSyntaxEditor1.IsWordWrapEnabled
        Me.Text = RadSyntaxEditor1.IsWordWrapEnabled.ToString()

    End Sub

When you enable the word wrapping, the horizontal scrollbar is collapsed:

However, when the word wrapping is disabled, the scrollbar doesn't reappear anymore:

Completed
Last Updated: 06 May 2020 10:40 by ADMIN
Release R2 2020
Created by: Iprel
Comments: 3
Category: SyntaxEditor
Type: Feature Request
1
How can I create a tagger that recognizes strings (text contained in double quotes: "text") and apply a color to it?
Completed
Last Updated: 12 Feb 2020 12:02 by ADMIN
Release R1 2020 SP1

RadSyntaxEditor allows the end-users to select a part of the text and drag the selection to a new position.

Currently, there is no public API that allows you to control whether the drag operation should start, on what target line you are dragging over (and whether you can drop on it) and when you drop the selection.

Completed
Last Updated: 07 Jul 2020 08:22 by ADMIN
Release R3 2020 (LIB 2020.2.713)

I'm trying to use the new RadSyntaxEditor in a popup editor and I'm having issues and questions. I'm using it in a component built in code that is used to edit a SQL Query from a grid cell double click. It seems to work except when I press enter to insert a new line it does not do that, instead the default form button is fired to close the form. Note that I can launch the form to either show a multi-line textbox or a RadSyntaxEditor depending on the input parameters. It works perfectly with the textbox. The issue is with the RadSyntaxEditor 

I also have the following questions:

I cannot find any documentation on loading text into the RadSyntaxEditor is my code correct for this?

I cannot find any documentation regarding the Document property - where do I find that?

I cannot find anything on how to get the text out of the RadSyntaxEditor when I'm done. Is my code correct on this?

Here are my code snippets:


        private void GvMrgLtr_CellDoubleClick(object sender, EventArgs e)
        {
            var m = MethodBase.GetCurrentMethod();
            try
            {
                if (sender is HostedTextBoxBase sndr)
                    sndr.Text = MemoDialog.ShowDialog(sndr.Text, "Edit", 0, false, false, true);
            }
            catch (Exception ex)
            {
                MessageBox.Show($@"{m.Name} : {ex}");
                Log.Error(ex, m.Name);
            }
        }

 


using System.Windows.Forms;
using Telerik.WinControls.UI;
using Telerik.WinForms.Controls.SyntaxEditor.Taggers;
using Telerik.WinForms.SyntaxEditor.Core.Text;

namespace P3CMS.Components
{
    internal static class MemoDialog
    {
        public static string ShowDialog(string text, string caption, int maxLength = 0,
            bool ro = false, bool spellcheck = true, bool sqlSyntaxHighlight = false)
        {
            var originalText = text;

            var memoDialogForm = new RadForm
            {
                Width = 500,
                Height = 700,
                FormBorderStyle = FormBorderStyle.Sizable,
                Text = caption,
                StartPosition = FormStartPosition.CenterScreen
            };

            var textBox = new RadTextBox
            {
                Left = 50,
                Top = 40,
                Width = 400,
                Dock = DockStyle.Fill,
                Multiline = true,
                AcceptsReturn = true,
                Text = text,
                ScrollBars = ScrollBars.Both,
                MaxLength = maxLength,
                ReadOnly = ro
            };

            var textDocument = new TextDocument(text);
            var radSyntaxEditor = new RadSyntaxEditor
            {
                Left = 50,
                Top = 40,
                Width = 400,
                Dock = DockStyle.Fill, 
                Document = textDocument
            };

            var tagger = new SqlTagger(radSyntaxEditor.SyntaxEditorElement);
            radSyntaxEditor.TaggersRegistry.RegisterTagger(tagger);

            var checker = new RadSpellChecker { AutoSpellCheckControl = textBox };
            if (!spellcheck)
                checker.AutoSpellCheckControl = null;

            var bottomPanel = new RadPanel { Height = 60, Dock = DockStyle.Bottom };
            var confirmation = new RadButton
            { Text = @"Ok", Left = 50, Width = 100, Top = 8, DialogResult = DialogResult.OK };
            var cancel = new RadButton
            { Text = @"Cancel", Left = 200, Width = 100, Top = 8, DialogResult = DialogResult.Cancel };

            confirmation.Click += (sender, e) => { memoDialogForm.Close(); };

            if (sqlSyntaxHighlight)
                memoDialogForm.Controls.Add(radSyntaxEditor);
            else
                memoDialogForm.Controls.Add(textBox);
            memoDialogForm.Controls.Add(bottomPanel);
            bottomPanel.Controls.Add(confirmation);
            bottomPanel.Controls.Add(cancel);
            memoDialogForm.AcceptButton = confirmation;
            memoDialogForm.CancelButton = cancel;

            if (!sqlSyntaxHighlight)
                textBox.Select(0, 0);

            return memoDialogForm.ShowDialog() == DialogResult.OK
                ? sqlSyntaxHighlight ? textDocument.CurrentSnapshot.GetText() : textBox.Text
                : originalText;
        }
    }
}

Completed
Last Updated: 11 Jan 2021 10:25 by ADMIN
Release R1 2021

RadSyntaxEditorElement offers the following method: public CaretPosition GetPositionFromPoint(System.Drawing.Point point)

However, it doesn't return the correct CaretPosition as it requires to transform the System.Drawing.Point first:

        private void MySyntaxEditor1_MouseDown(object sender, MouseEventArgs e)
        {  
            CaretPosition pos = mySyntaxEditor1.SyntaxEditorElement.GetPositionFromPoint(GetPosition(e, mySyntaxEditor1.SyntaxEditorElement.EditorPresenter)); 
            CaretPosition start = new CaretPosition(pos);
            start.MoveToCurrentWordStart();
            CaretPosition end = new CaretPosition(pos);
            end.MoveToCurrentWordEnd();
            mySyntaxEditor1.SyntaxEditorElement.Selection.Select(start, end);
        }

 public Telerik.WinControls.SyntaxEditor.UI.Point GetPosition(System.Windows.Forms.MouseEventArgs args, Telerik.WinControls.SyntaxEditor.UI.UIElement element)
        {

            System.Drawing.Point screenLocation = mySyntaxEditor1.SyntaxEditorElement.PointToScreen(args.Location);
            System.Drawing.Point point = element.PointFromScreen(screenLocation);
            Telerik.WinControls.Layouts.RadMatrix matrix = element.TotalTransform;
            matrix.Invert();

            return new System.Drawing.PointF(point.X * matrix.ScaleX, point.Y * matrix.ScaleY);
        }

Completed
Last Updated: 29 Mar 2021 15:51 by ADMIN
Release R2 2021 (LIB 2021.1.329)
Declined
Last Updated: 05 Jul 2024 12:54 by ADMIN

When using the new Office 2019 Light theme in the SyntaxEditor there are no scrollbars displayed in the CompletionList window. Also the list is not scrollable using the scrollwheel. Only when using the arrows on the keyboard.

When using the fluent theme it is working fine.

See attached screenshots.

Completed
Last Updated: 28 May 2022 00:58 by ADMIN
Release R2 2022 SP1

This is an odd one - see attached GIF.

If I attempt to select characters with the mouse (left-click + drag), at the beginning of any line of text, it won't highlight (90+% of the time).  That's if I'm dragging from left-to-right.

If I select the same text from right-to-left, it works every time.

 

Unplanned
Last Updated: 27 Jun 2022 11:31 by Dinko
Created by: Dinko
Comments: 0
Category: SyntaxEditor
Type: Feature Request
1
Currently, you search in the entire document. Add options like in the Visual Studio or Notepad++ to choose where to search and replace. Those options should be in the entire document (like the default behavior) or the current selection. 
Completed
Last Updated: 31 Jan 2024 11:39 by ADMIN
Release 2024 Q1 (2024.1.130)

The component itself seems to work fine with DPI scaling except for the search/find functionality. When you search for some text and click to go to the first instance it finds, the actual text is off-screen, though it is highlighted correctly (when you scroll down you can see it highlighted).

This is easy to replicate by changing the Windows display scale to anything other than 100%.

Completed
Last Updated: 15 Feb 2021 10:26 by ADMIN
Release R1 2021 SP2
Created by: Iprel
Comments: 2
Category: SyntaxEditor
Type: Feature Request
0
How can I hide line numbers?
Declined
Last Updated: 22 Jul 2020 15:42 by ADMIN

A programmatically created selection keeps highlighting the following part of the text when its original content is deleted via keyboard.

If there are less characters left than the selection encompassed, further editing will result in unhandled Exceptions.

 Steps to reproduce:

  1. Enter multiple lines of text in RadSyntaxEditor
  2. Programmatically set Selection.
  3. Press [Del] or [Backspace] or [Ctrl-X] to remove the selected Text.
Completed
Last Updated: 21 Aug 2020 12:32 by ADMIN
Release R3 2020 (LIB 2020.2.826)
I am using RadSyntaxEditor to achieve functionality such as showing some overloading of function. But I have a problem when I need to change overloadListWindow.Presenter.OverloadListItems with new OverloadInfoCollection, UI part is not changed. I assume that this change doesn't fire INotifyPropertyChanged, and that is a reason why UI is not updated. In a case, we change overloadListWindow.Presenter.OverloadListItems like in a radButton1_Click event handler, there is no change until I use the arrows button on the keyboard (probably that is a time where is INotifyPropertyChanged event is fired). I was trying to do some workaround, and that was a case where I tried to clear this.radSyntaxEditor1.SyntaxEditorElement.IntelliPrompts.OverloadListWindow.Presenter.OverloadListItems but in that case, I got NullReferenceException even if instance is not null.

using System;
using System.Windows.Forms;
using Telerik.WinForms.Controls.SyntaxEditor.UI;
using Telerik.WinForms.Controls.SyntaxEditor.UI.IntelliPrompt.Overloading;
 
namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
 
            OverloadInfoCollection overloadListA = new OverloadInfoCollection { new OverloadInfo("aaa", "aaa description") };
            this.radSyntaxEditor1.SyntaxEditorElement.IntelliPrompts.OverloadListWindow.Presenter.OverloadListItems = overloadListA;
        }
 
        private void btnClear_Click(object sender, EventArgs e)
        {
            this.radSyntaxEditor1.SyntaxEditorElement.IntelliPrompts.OverloadListWindow.Presenter.OverloadListItems.Clear();
        }
 
        private void btnChange_Click(object sender, EventArgs e)
        {
            OverloadInfoCollection overloadListB = new OverloadInfoCollection { new OverloadInfo("bbb", "bbb description") };
 
            OverloadListPopup overloadListWindow = this.radSyntaxEditor1.SyntaxEditorElement.IntelliPrompts.OverloadListWindow;
            overloadListWindow.Presenter.OverloadListItems = overloadListB;
            overloadListWindow.Refresh();
        }
 
        private void radButton1_Click(object sender, EventArgs e)
        {
            OverloadInfoCollection overloadListC = new OverloadInfoCollection { new OverloadInfo("ccc", "ccc description"), new OverloadInfo("ccc 1", "ccc 1 description") };
            this.radSyntaxEditor1.SyntaxEditorElement.IntelliPrompts.OverloadListWindow.Presenter.OverloadListItems = overloadListC;
        }
 
        private void radSyntaxEditor1_DocumentContentChanged(object sender, Telerik.WinForms.SyntaxEditor.Core.Text.TextContentChangedEventArgs e)
        {
            this.radSyntaxEditor1.SyntaxEditorElement.IntelliPrompts.OverloadListWindow.Show();
        }
    }
}

Completed
Last Updated: 18 Aug 2020 12:40 by ADMIN
Release R3 2020

Hi Team , I want to make my syntax editor readonly and user should not be able to make any changes.

I have made my

((Telerik.WinControls.UI.RadSyntaxEditorElement)(this.radSyntaxEditor.GetChildAt(0))).IsReadOnly = true; .

But still the user is able to delete the data by pressing delete button .

How can we restrict this.

I also tried radSyntaxEditor.enabled=false. It disables editing but the are is greyed out.

 

Thanks

Completed
Last Updated: 19 Aug 2020 15:29 by ADMIN
Release R3 2020
The popup form does not show correctly, when the caret is at the bottom of the screen and there is a vertical scrollbar activated. 
Completed
Last Updated: 01 Sep 2020 09:43 by ADMIN
Release R3 2020
Created by: Christian
Comments: 1
Category: SyntaxEditor
Type: Bug Report
0

XmlFoldingTagger throws while entering XML. When closing the root tag on the next line, the Tagger throws once you enter the '/' (before.png -> after.png).
Adding a second opening tag and converting it to closing by inserting the '/' afterwards works.

When adding a child tag, the tagger offers to fold the unfinished tag against the root closing tag, and throws if you try to do so.

Unplanned
Last Updated: 25 Nov 2020 12:01 by ADMIN
Created by: Ken
Comments: 0
Category: SyntaxEditor
Type: Feature Request
0
We would like to take advantage of hyperlinks to show the user the "friendly name" of an identifier while in the actual script, we store the identifier index. This enables the user to change the friendly name of any identifier without having to go through all scripts that references the identifier, since they are stored as an index. We allow the user to click on the hyperlink which brings up an "Identifier Picker" that lets the user select identifiers defined in the system.
Completed
Last Updated: 30 Dec 2020 14:56 by ADMIN
Release R1 2021

Please refer to the attached gif file.

Workaround: set bottom padding by setting the SyntaxEditorElement.HorizontalScrollBar.Padding property. 

mySyntaxEditor1.SyntaxEditorElement.HorizontalScrollBar.Padding = new Padding(0, 0, 0, 2);

1 2