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
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: 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.

 

Completed
Last Updated: 29 Mar 2021 15:51 by ADMIN
Release R2 2021 (LIB 2021.1.329)
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: 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: 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: 13 Nov 2024 12:49 by ADMIN
Release 2024.4.1113 (2024 Q4)
In this case, we have a longer text on a single line. When the text goes outside of the view area, a horizontal scroll will appear. When we click at the begging of the line and scroll to the end of the line, clicking at the end of the text line will not change the caret position, thus we can't see the caret.
Completed
Last Updated: 15 Aug 2024 11:50 by ADMIN
Completed
Last Updated: 07 Aug 2024 15:07 by ADMIN
Release 2024.3.806 (2024 Q3)
In this particular case, we have RadSyntaxEditor control and MS Button. The MS Button have mnemonic text: "&OK". When the RadSyntexEditor control editor is focused and we press the O button, the Click event of the MS Button is triggered. This way we can't press the O key while RadSyntaxEditor control is focused.
Completed
Last Updated: 22 Mar 2022 13:50 by ADMIN
Release R2 2022 (LIB 2022.1.322)

Setting the SyntaxEditorElement.IsReadOnly property to true disables editing the text inside RadSyntaxEditor. However, when opening the Find and Replace dialog, the user is still allowed to replace the text and thus change the content in the document. This shouldn't be allowed when the control is in read-only mode.

Workaround:

            this.radSyntaxEditor1.SyntaxEditorElement.InputHandler = new MyInputBehavior(this.radSyntaxEditor1.SyntaxEditorElement);

        public class MyInputBehavior : SyntaxEditorInputBehavior
        {
            public MyInputBehavior(RadSyntaxEditorElement editor) : base(editor)
            {
                
            }

            protected override void PerformOpenFileDialog(KeyEventArgs e)
            {
                this.SyntaxEditor.SearchPanel.ReplaceAllButton.Enabled = false;
                this.SyntaxEditor.SearchPanel.ReplaceButton.Enabled = false;
                this.SyntaxEditor.SearchPanel.ReplaceTextBox.Enabled = false;
                base.PerformOpenFileDialog(e);
            }
        }

Completed
Last Updated: 20 Oct 2021 09:12 by ADMIN
Release R3 2021 SP1

When I setup and OverloadList, the OverloadListWindow follows the cursor and can move off screen so the user can't see/read the information that is presented.

Workaround: adjust the position of the overload window when it is shown:

            this.radSyntaxEditor1.SyntaxEditorElement.IntelliPrompts.OverloadListWindow.VisibleChanged+=OverloadListWindow_VisibleChanged;

        private void OverloadListWindow_VisibleChanged(object sender, EventArgs e)
        {
           ShapedForm f = sender as ShapedForm;
            Screen myScreen = Screen.FromControl(this);
            Rectangle area = myScreen.WorkingArea;
            if (f.Left + f.Width > area.Width)
            {
                f.Left = area.Width - f.Width -5;
            }
        } 

Completed
Last Updated: 08 Oct 2021 10:15 by ADMIN
Release R3 2021 SP1
Completed
Last Updated: 29 Mar 2021 07:31 by ADMIN
Release R2 2021 (LIB 2021.1.329)
Completed
Last Updated: 15 Feb 2021 10:57 by ADMIN
Release R1 2021 SP2

If my xml string contains an element with attributes, XMLFoldingTagger just ignores it!

 

For example:

<Formular DebugMode="F" Version="1" Typ="Rechnung">

     <OtherElements/>

<Formular/>

 

is ignored. Element Formular is not recognized by the XMLFoldingTagger. Only simple elements are recognized, like:

 

<Formular>

     <OtherElements/>

<Formular/>

 

 

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?
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);

Completed
Last Updated: 30 Dec 2020 14:13 by ADMIN
Release R1 2021
If setting "Allow Scaling" to False, it would be nice it the ZoomComboBox is automatically hidden and the vertical scroll bar fills the space. When Allow Scaling is false, the user can still change the the zoom factor, but nothing happens which is confusing. Although setting SyntaxEditorElement.ZoomComboBox.Visibility to Collapsed does remove the ZoomComboBox, it does not cause the vertical scroll bar to fill the space resulting in slight strange looking UI.
1 2