Web Essentials 元素内容 HTML 自动完成
Web Essentials element content HTML autocompletion
我正在尝试为 Web Essentials 中 Google 的 Material 设计图标实现自动完成功能。
此图标字体使用元素内容而不是 class 属性来定义图标,如下所示:<i class="material-icons">add</i>
.
我一直在检查 HTML 当前存在的完成 classes 并提出了下面的代码,但由于某些原因这不起作用。
由于我一直无法找到有关这些程序集的文档,如果您能为我指明正确的方向,我们将不胜感激。
using System.Collections.Generic;
using System.Linq;
using Microsoft.Html.Editor.Completion.Def;
using Microsoft.Web.Core.ContentTypes;
using Microsoft.VisualStudio.Utilities;
using Microsoft.Html.Editor.Completion;
namespace MaterialIcons
{
[HtmlCompletionProvider(CompletionTypes.Children)]
[ContentType(HtmlContentTypeDefinition.HtmlContentType)]
class IconCompletion : IHtmlCompletionListProvider
{
private static List<string> _icons = new List<string>()
{
"info_outline",
"input",
"invert_colors"
};
public string CompletionType
{
get
{
return CompletionTypes.Children;
}
}
public IList<HtmlCompletion> GetEntries(HtmlCompletionContext context)
{
if (!context.Element.GetAttribute("class").Value.Contains("material-icons"))
{
return new List<HtmlCompletion>();
}
return CreateCompletionItems(context).ToArray();
}
private static IEnumerable<HtmlCompletion> CreateCompletionItems(HtmlCompletionContext context)
{
foreach (string item in _icons)
{
yield return new SimpleHtmlCompletion(item, context.Session) { };
}
}
}
}
找到答案,我需要为提供商提供一个元素。
所以我不得不输入 [HtmlCompletionProvider(CompletionTypes.Children, "*")]
而不是 [HtmlCompletionProvider(CompletionTypes.Children)]
以将我的提供程序应用于所有 HTML 元素。
我正在尝试为 Web Essentials 中 Google 的 Material 设计图标实现自动完成功能。
此图标字体使用元素内容而不是 class 属性来定义图标,如下所示:<i class="material-icons">add</i>
.
我一直在检查 HTML 当前存在的完成 classes 并提出了下面的代码,但由于某些原因这不起作用。
由于我一直无法找到有关这些程序集的文档,如果您能为我指明正确的方向,我们将不胜感激。
using System.Collections.Generic;
using System.Linq;
using Microsoft.Html.Editor.Completion.Def;
using Microsoft.Web.Core.ContentTypes;
using Microsoft.VisualStudio.Utilities;
using Microsoft.Html.Editor.Completion;
namespace MaterialIcons
{
[HtmlCompletionProvider(CompletionTypes.Children)]
[ContentType(HtmlContentTypeDefinition.HtmlContentType)]
class IconCompletion : IHtmlCompletionListProvider
{
private static List<string> _icons = new List<string>()
{
"info_outline",
"input",
"invert_colors"
};
public string CompletionType
{
get
{
return CompletionTypes.Children;
}
}
public IList<HtmlCompletion> GetEntries(HtmlCompletionContext context)
{
if (!context.Element.GetAttribute("class").Value.Contains("material-icons"))
{
return new List<HtmlCompletion>();
}
return CreateCompletionItems(context).ToArray();
}
private static IEnumerable<HtmlCompletion> CreateCompletionItems(HtmlCompletionContext context)
{
foreach (string item in _icons)
{
yield return new SimpleHtmlCompletion(item, context.Session) { };
}
}
}
}
找到答案,我需要为提供商提供一个元素。
所以我不得不输入 [HtmlCompletionProvider(CompletionTypes.Children, "*")]
而不是 [HtmlCompletionProvider(CompletionTypes.Children)]
以将我的提供程序应用于所有 HTML 元素。