Duplicated
Last Updated: 25 Sep 2023 07:06 by ADMIN
Created by: Petar
Comments: 0
Category: SyntaxEditor
Type: Feature Request
0
Add support for successful typing text with IME - Chinese, Japanese, Korean etc.
Currently there are input issues, selection issues, caret issues when using IME input.
Unplanned
Last Updated: 03 Nov 2023 09:23 by Stenly
We could introduce API for customizing the folding region lines and their respective regions. For example, a customization could be hover-coloring of line regions, like in the latest VS:

Unplanned
Last Updated: 23 Dec 2024 11:47 by Martin Ivanov
Add option to enable indent guides (vertical lines) between the code lines in the SyntaxEditor. 
Completed
Last Updated: 21 May 2025 07:52 by ADMIN
Release 2025.2.521 (2025 Q2)
The CSharpTagger matches the following character combination as a multiline comment start - / * (slash and a start with a whitespace between). This causes wrong tags creation in scenarios where the * character is a part of a single line comment. The correct comment start and end should be /* and */.

In the following example, the beginning of the first single line comment is considered a multiline comment start, but since nothing closes it, the entire text is tagged and colored as a comment.

// ***********************************************************************
// some other content here
// some other content here
// ***********************************************************************

public class TestClass
{
}

Completed
Last Updated: 11 Nov 2025 08:11 by ADMIN
Release Telerik UI for WPF 2025.4.1111 (2025 Q4)

NullReferenceException thrown on opening the CompletionListWindow when RadSyntaxEditor is hosted in a non-WPF application (usually WinForms) and there are no WPF Application and MainWindow initialized. 

This can happen if the RadSyntaxEditor for WPF is hosted in a WinForms application. In this scenario the System.Windows.Application.Current and its MainWindow are not initialized, which is what the IntelliPrompt positioning logic relies on.

Exception details:

System.NullReferenceException: 'Object reference not set to an instance of an object.'
> Telerik.Windows.Controls.SyntaxEditor.dll!Telerik.Windows.Controls.SyntaxEditor.UI.IntelliPromptBase.SetPosition(System.Windows.Point pointInScreen) Line 452 C#  Telerik.Windows.Controls.SyntaxEditor.dll!Telerik.Windows.Controls.SyntaxEditor.UI.IntelliPromptBase.SetPosition(System.Windows.Point pointInEditorPresenter, System.Windows.Point pointAboveTheCaret) Line 442 C#  Telerik.Windows.Controls.SyntaxEditor.dll!Telerik.Windows.Controls.SyntaxEditor.UI.IntelliPromptBase.SetPositionInView() Line 480 C#  Telerik.Windows.Controls.SyntaxEditor.dll!Telerik.Windows.Controls.SyntaxEditor.UI.IntelliPromptBase.InitializeIntellisense() Line 401 C#  Telerik.Windows.Controls.SyntaxEditor.dll!Telerik.Windows.Controls.SyntaxEditor.UI.IntelliPromptBase.Show(Telerik.Windows.Controls.SyntaxEditor.UI.CaretPosition caretStartPosition, Telerik.Windows.Controls.SyntaxEditor.UI.CaretPosition caretEndPositions) Line 211 C#
  Telerik.Windows.Controls.SyntaxEditor.dll!Telerik.Windows.Controls.SyntaxEditor.UI.IntelliPromptBase.Show() Line 182 C#

To work this around, you can initialize a new WPF application and MainWindow and create a hidden HwndSource for the MainWindow. This should happen before showing the WPF content in the WinForms application's code. 

 public Form1()
 {
     InitializeComponent();

     new System.Windows.Application();
     System.Windows.Application.Current.MainWindow = new System.Windows.Window();

     var parameters = new HwndSourceParameters("HiddenHost")
     {
         Width = 1, Height = 1,
         WindowStyle = unchecked((int)0x80000000) // WS_POPUP | WS_EX_NOACTIVATE
     };
     var hwndSource = new HwndSource(parameters);
     hwndSource.RootVisual = System.Windows.Application.Current.MainWindow;

      // other code here

     ElementHost host = new ElementHost { Dock = DockStyle.Fill };
     host.Child = wpfControl
     this.Controls.Add(host);
 }

Unplanned
Last Updated: 23 Jan 2026 12:23 by Martin Ivanov

The position of the popup representing the IntelliPrompt is wrong when shown on the monitor with the higher DPI scale, in a setup with two monitors with different DPI settings. For example, if one monitor has 100% DPI scale and the other 125%, the position of the popup will be wrong when the app is on the 125% monitor.

To work this around, use the Caret visual as the PlacementTarget for the popup and set its offsets to 0 after it is shown.

 private void RadSyntaxEditor_PreviewKeyDown(object sender, System.Windows.Input.KeyEventArgs e)
 {
     if (KeyboardModifiers.IsControlDown && e.Key == Key.Space)
     {		
        e.Handled = true;

		var editor = (RadSyntaxEditor)sender;
        CaretPosition startPosition = new CaretPosition(editor.CaretPosition);
        CaretPosition endPosition = new CaretPosition(editor.CaretPosition);
        editor.IntelliPrompts.CompletionListWindow.Show(startPosition, endPosition);
		editor.IntelliPrompts.CompletionListWindow.HorizontalOffset = 0;
		editor.IntelliPrompts.CompletionListWindow.VerticalOffset = 0;
     }
 }

 private void RadSyntaxEditor_Loaded(object sender, System.Windows.RoutedEventArgs e)
 {
    var editor = (RadSyntaxEditor)sender;
    var caret = editor.FindChildByType<Telerik.Windows.Controls.SyntaxEditor.UI.Caret>();
    editor.IntelliPrompts.CompletionListWindow.PlacementTarget = caret;
    editor.IntelliPrompts.CompletionListWindow.Placement = System.Windows.Controls.Primitives.PlacementMode.Bottom;
 }

Unplanned
Last Updated: 21 Jul 2026 10:43 by ADMIN
Created by: Robert
Comments: 1
Category: SyntaxEditor
Type: Bug Report
0

RadSyntaxEditor, while inside of a virtualized RadGridView, stealings focus immediately upon loading. It appears to do this automatically and there is no configuration to disabling. Meaning when scrolling in a RadGridView with virtualized rows, when a row with the RadSyntaxEditor materializes it will automatically steal focus from other elements.

This can be worked around using custom behavior that discards the first preview keyboard focus event that it receives.

private void onPreviewGotKeyboardFocus(object s, KeyboardFocusChangedEventArgs e)
{
    if (!this.SuppressAutoFocus || _wasFocusSuppressed)
    {
        return;
    }

    _wasFocusSuppressed = true;
    e.Handled = true;
}

The offending line of code is this in RadSyntaxEditor.InitActiveEditorPresenter:

if (flag)
{
    base.Dispatcher.BeginInvoke((Action)delegate
    {
        Focus();
    });
}

Request: Add a dependency property to allow opting-out of this default behavior. The above workaround works, but is a bit hacky for something that should probably be built-in.

1 2 3 4