Добавление поддержки вашей любимой библиотеки в Glyphfriend

С выпуском Glyphfriend 2.0 одним из основных моментов переписывания было предоставление членам сообщества возможности более легко добавлять поддержку своих любимых семейств глифов. Это в дополнение ко всем другим замечательным преимуществам, таким как производительность и гибкость, но в этом посте, в частности, речь пойдет о том, как вы можете добавить к нему свои собственные значки.

Предыдущий подход.

Ранее выполнение этого могло быть занозой в заднице и требовало следующих вещей:

  • Создание определенного класса Provider для обработки прослушивания всех событий автозаполнения, чтобы проверить, соответствуют ли они заданной библиотеке (через регулярное выражение).
  • Набор оптимизированных и прозрачных файлов .png размером 16x16, представляющих все глифы в вашей библиотеке (и правильно названных, включая префикс, например, fa-beer, glyphicon-party и т. д.).
  • Убедитесь, что все глифы включены в проект и для свойства IncludeinVSIX задано значение true.

Пример одного из них выглядел следующим образом:

[Export(typeof(ICssCompletionEntryGlyphProvider))]
[Name("Glyphfriend Font Awesome")]
internal class FontAwesomeGlyphCompletionProvider : BaseGlyphfriendProvider  
{
        public FontAwesomeGlyphCompletionProvider()
        {
            Library = "FontAwesome";
            GlyphCssDefinitionExpression = new Regex(@"^font(-?)awesome(-.*)?(\.min)?\.css$", RegexOptions.IgnoreCase | RegexOptions.Compiled);
            DefaultIconClass = "fa-default";
        }
}

Опять же — не очень сложно, но процесс был не таким привлекательным и легким, как мне бы хотелось.

Новый, лучший способ.

Я хотел, чтобы этот процесс был предельно простым и максимально гибким, так как существует бесчисленное множество библиотек, которые люди используют, и хотя этот проект пытается поддерживать самые популярные, иногда это может не сработать.

В новой версии вы можете выполнить все эти шаги (сохранить один) и выкинуть их из окна. Все, что вам теперь нужно, чтобы добавить поддержку вашей библиотеки, — это сами изображения. Или, как уже упоминалось ранее, это:

  • Набор оптимизированных и прозрачных файлов .png размером 16x16, представляющих все глифы в вашей библиотеке (и правильно названных, включая префикс, например, fa-beer, glyphicon-party и т. д.).

Сбор ваших изображений иногда может быть болезненным, в зависимости от того, как их создатель решает их распространять. Время от времени вы можете найти изображения .png подходящего размера, но в других случаях вам, возможно, придется либо изменить их размер до 16x16 пикселей, либо использовать такой инструмент, как InkscapeBatch, для обработки серии изображений .svg через пакетное преобразование в соответствующий тип.

Когда у вас есть изображения, просто добавьте папку в каталог Glyphs проекта Glyphfriend.Packager, как показано ниже:

После быстрой сборки упаковщик добавит его в словарь, сериализует и включит в расширение. Поэтому, если вы устанавливаете его или запускаете локально, вы должны увидеть новый значок:

Это все зависит от вас!

Glyphfriend является полностью открытым исходным кодом, и я с радостью принимаю любые предложения и запросы на включение (очевидно, после проверки). Если у вас есть идея для библиотеки, которая в настоящее время не поддерживается, и она достаточно популярна, дайте мне знать, и мы можем обсудить ее добавление.

Или, если у вас есть более конкретный вариант использования, возможно, ваш собственный набор значков, который использует ваша компания, и вы не хотите, чтобы кто-либо еще имел его, это тоже нормально. Просто создайте свою собственную сборку Glyphfriend, распространите ее среди своей команды и занимайтесь своими делами :)

Первоначально опубликовано на rion.io 30 января 2017 г.