wpf Avalon中的代码段[编辑]

azpvetkf  于 2023-02-10  发布在  其他
关注(0)|答案(2)|浏览(145)

在avalon edit中有一个snippet类SnippetReplaceableTextElement,我不知道如何正确使用它,我写了类似的东西,但它不起作用:

SnippetReplaceableTextElement snip = new SnippetReplaceableTextElement();
        snip.Text = "Console.WriteLine();";
        InsertionContext context = new InsertionContext(textEditor.TextArea, 0);
        snip.Insert(context);

插入本身发生,但选择不起作用。如何使代码段像在visual studio中一样工作?https://github.com/icsharpcode/AvalonEdit/blob/28b887f78c821c7fede1d4fc461bde64f5f21bd1/ICSharpCode.AvalonEdit/Snippets/SnippetReplaceableTextElement.cs

euoag5mw

euoag5mw2#

这是一个老职位,但是:在网上没有关于如何在AvalonEdit中使用片段的结果。经过一番研究,我找到了一个简单的解决方案:该示例是VStudio“prop”代码段的简单重新实现。

Snippet snip = new Snippet();
        snip.Elements.Add(new SnippetTextElement()            { Text = "public " });
        snip.Elements.Add(new SnippetReplaceableTextElement() { Text = "int" });
        snip.Elements.Add(new SnippetTextElement()            { Text = " " });
        snip.Elements.Add(new SnippetReplaceableTextElement() { Text = "MyProperty" });
        snip.Elements.Add(new SnippetTextElement()            { Text = " { get; set; }" });
        snip.Insert(AvalonTextEditor.TextArea);

现在,您将获得一个包含两个SnippetReplaceableText元素的文本插入。您可以使用Tab键导航到下一个SnippetReplaceableTextElement,然后使用Enter键接受。
下面是示例结果:

public int MyProperty { get; set; }

这是非常基本的,但我希望它有帮助。

相关问题