1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/lunarsf-Lunar-Markdown-Editor

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
CustomCompletionData.cs 3.3 КБ
Копировать Редактировать Исходные данные Просмотреть построчно История
LunarSF Отправлено 8 лет назад d5bf8b8
using ICSharpCode.AvalonEdit.CodeCompletion;
using ICSharpCode.AvalonEdit.Document;
using ICSharpCode.AvalonEdit.Editing;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LunarSF.SHomeWorkshop.LunarMarkdownEditor
{
/// <summary>
/// 表示自动完成列表中的某个项目。
/// </summary>
public class CustomCompletionData : ICompletionData
{
public CustomCompletionData(string text, string description, string completeText = null)
{
this.Text = text;
this.description = description;
if (completeText == null)
{
this.completeText = this.Text;
}
else
{
this.completeText = completeText;
}
}
private string completeText;
/// <summary>
/// 自动完成文本。
/// </summary>
public string CompleteText
{
get { return this.completeText; }
}
private System.Windows.Media.ImageSource image;
/// <summary>
/// 自动完成项目的图标。
/// </summary>
public System.Windows.Media.ImageSource Image
{
get { return image; }
set { image = value; }
}
public string Text { get; private set; }
// Use this property if you want to show a fancy UIElement in the list.
public object Content
{
get { return this.Text; }
}
private string description;
/// <summary>
/// 此条目的描述信息。
/// </summary>
public object Description
{
get { return this.description; }
}
public CompleteItemType Type { get; set; } = CompleteItemType.Normal;
/// <summary>
/// 自动完成(上屏)
/// </summary>
/// <param name="textArea">目标文本区域。</param>
/// <param name="completionSegment">自动完成片段。</param>
/// <param name="insertionRequestEventArgs">插入请求事件参数。</param>
public void Complete(TextArea textArea, ISegment completionSegment,
EventArgs insertionRequestEventArgs)
{
textArea.Document.Replace(completionSegment, this.CompleteText);
OnComplete(this, new EventArgs());
}
/// <summary>
/// 优先权。本例中不需要它。
/// </summary>
public double Priority
{
get { return 0; }
}
/// <summary>
/// “自动完成”动作发生后触发此事件。
/// </summary>
public event EventHandler<EventArgs> Completed;
/// <summary>
/// 用于触发“Completed”事件。
/// </summary>
protected void OnComplete(object sender, EventArgs e)
{
if (this.Completed != null)
{
this.Completed(sender, e);
}
}
}
public enum CompleteItemType
{
Normal, //之前
MarkdownFileLink, //普通MD文件链接
MetaMarkdownFileLink, //目录对应的元文件的链接
ImageResourceLink, //图像资源文件
}
}

Комментарий ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/lunarsf-Lunar-Markdown-Editor.git
git@gitlife.ru:oschina-mirror/lunarsf-Lunar-Markdown-Editor.git
oschina-mirror
lunarsf-Lunar-Markdown-Editor
lunarsf-Lunar-Markdown-Editor
v0.4-beta8