На энном году работы с использованием Clojure/Clojurescript в качестве основных языков разработки, я наконец-то дошел до стадии, когда «больше терперть уже нельзя», и написал таки свой плагин для этой цели. Это явилось результатом многолетних поисков, лишений и страданий. Как говаривал Мичурин: мы не можем ждать милостей от природы, взять их у нее – наша задача. Интересующихся прошу под кат.
Рубрика «plugin»
DIY VSCode плагин для Clojure
2022-04-10 в 1:03, admin, рубрики: clojure, clojurescript, diy или сделай сам, plugin, Visual Studio, vscode, Разработка под LinuxПишем свой плагин для IDEA для поддержки нового языка (часть 2)
2022-03-09 в 6:35, admin, рубрики: idea, java, jetbrains, kotlin, monkey, pluginДисклаймер: я не являюсь разработчиком из JetBrains, а жаль, и поэтому в статье и в коде могут быть и скорее всего есть неточности и ошибки.
-
Введение
-
Предусловия
-
Создание основы языкового плагина
-
Создание PSI-дерева
-
- Лексер
-
- Парсер
-
Аннотаторы
-
Подсветка скобок
Часть 2
Пишем свой плагин для IDEA для поддержки нового языка (часть 1)
2022-03-09 в 6:30, admin, рубрики: idea, java, jetbrains, kotlin, monkey, pluginЯ начал писать статьи задолго до сегодняшних событий, и не уверен, что статьи еще могут быть актуальны (так как не уверен уже, что будет завтра), но не охота, чтобы усилия пропали совсем зря.
Дисклаймер: я не являюсь разработчиком из JetBrains, поэтому в статье и в коде могут быть и скорее всего есть неточности и ошибки.
Краткое оглавление
Часть 1
Vuex – решаем старый спор новыми методами
2020-06-06 в 12:23, admin, рубрики: javascript, library, plugin, vue, vuejs, vuejs2, vuex, vuex-map, web-разработка, Программирование, Разработка веб-сайтовВо Vuex есть одна популярная практика — не использовать mapState
и mapMutations
. Вообще. Вместо это мы сразу же при создании нового значения в store делаем для него геттер, а для каждой мутации – экшен.
Что-то наподобие:
export default new Vuex.Store({
state: {
// 1
count: 0
},
getters: {
// 1
count: (state) => state.count
},
mutations: {
// 2
increment(state) {
state.count++;
}
},
actions: {
// 2
increment({ commit }) {
commit('increment');
}
}
});
Холивара не избежать. Это уже доказала вот эта статья. Опять в интернете кто-то не прав, и я должен доказать почему. И я докажу.
Чиним сериализацию объектов в Kotlin раз и навсегда
2020-04-02 в 12:10, admin, рубрики: android, compiler, java, kotlin, plugin, serializable, Блог компании Badoo, разработка мобильных приложений, Разработка под android
Недавно я наткнулся на статью о проблеме c Java-сериализацией объектов в Kotlin. Автор предложил решать её добавлением метода readResolve
к каждому объекту, который наследуется от java.io.Serializable
.
Этот способ выглядит абсолютно правильным, однако его поддержка может оказаться слишком проблематичной. С учетом того, что в нашем проекте эта проблема возникала только при использовании объектов внутри Bundle, мы решили использовать проверку через is
для каждой ветки when
-выражений в случае sealed
классов.
Тем не менее, размышляя об этом, я никак не мог понять, почему Kotlin не генерирует readResolve
в компиляторе, поддерживая singleton-свойства объектов. Мне казалось, что это работа для инструментов, а не для человека. Но раз Kotlin не добавляет эту функцию сам, мы можем ему помочь! Этим мы сейчас и займёмся.
Пишем babel плагин, пошаговое руководство
2020-02-28 в 19:19, admin, рубрики: babel, javascript, plugin, Разработка веб-сайтов
Сегодня я поделюсь с вами пошаговым руководством как написать свой babel плагин. Вы сможете использовать эти знания для автоматизации правок, рефакторинга или кодогенерации.
Избавляемся от рутины со своим плагином для PhpStorm
2020-02-26 в 15:04, admin, рубрики: badoo, idea, kotlin, php, phpstrom, plugin, Блог компании Badoo, высокая производительность, Программирование, Разработка веб-сайтовПривет! Я тружусь в команде Антиспама, и, как и у большинства бэкенд-разработчиков Badoo, большая часть времени у меня уходит на работу с PHP-кодом.
С этой работой связано много специфических проблем и задач, которые можно решить или упростить. Когда мне надоело вручную делать то, что может делать за меня IDE, я решил попробовать доработать самую распространённую в компании IDE — PhpStorm — и написать плагин, решающий рутинные задачи, упростив тем самым жизнь себе и коллегам.
Так появился плагин Badoo для PhpStorm, который мы сегодня активно используем. За несколько лет его возможности серьёзно расширились, мы его развиваем, и в этой статье я расскажу на примере наших кейсов, как адаптировать IDE под свои задачи и инструменты, и докажу, что это не так сложно, как кажется.
Moxy Strategy plugin
2020-02-02 в 17:28, admin, рубрики: android, kotlin, moxy, plugin, разработка мобильных приложений, Разработка под androidИногда простые вещи очень утомляют, особенно когда их необходимо делать постоянно. Одна из таких вещей при работе с фреймворком Moxy — это добавление стратегий к функциям. Для ускорения этого процесса был написан плагин, который по "alt+enter" предоставляет выбор стратегии если ее нет или диалог с заменой на другую стратегию. Те, кто хочет узнать как это работает, добро пожаловать под кат.
Пишем VLC плагин для изучения английского
2019-11-15 в 12:59, admin, рубрики: C, english, plugin, vlc, английский, английский язык самообразование, изучение иностранных языков, изучение языков, иностранные языки, ненормальное программирование, Программирование
В данной статье я расскажу о том, как написать плагин на языке C для медиаплеера VLC. Я написал свой плагин для упрощения просмотра сериалов и фильмов на английском языке. Идея создания этого плагина описывается в разделах Идея и Поиск решения. Технические детали реализации плагина приведены в разделах Hello World плагин и Реализация. О том, что получилось в итоге и как этим пользоваться можно прочитать в последнем разделе, Результат.
Исходный код проекта доступен на GitHub.
Читать полностью »
Настройка Warnings Next Generation плагина для интеграции PVS-Studio
2019-09-11 в 7:21, admin, рубрики: ci, devops, Jenkins, Jenkins CI, open source, plugin, plugins, pvs-studio, pvs-studio free, PVS-Studo, pvsstudio, static code analysis, warnings, Блог компании PVS-Studio, Тестирование IT-систем, управление разработкой
Релиз PVS-Studio 7.04 совпал c релизом плагина Warnings Next Generation 6.0.0 для Jenkins. Как раз в этом релизе Warnings NG Plugin добавил поддержку статического анализатора PVS-Studio. Этот плагин визуализирует данные о предупреждениях компилятора или других инструментов анализа в Jenkins. В этой статье будет подробно рассказано как установить и настроить данный плагин для использования с PVS-Studio, а также описано большинство его возможностей.
Читать полностью »