Я расскажу вам про маленький проект, позволяющий использовать 32 битные версии расширений в 64 битной версии Total Commander-а (далее TC). Проект находится на стадии demo и позволяет использовать WCX модули с минимальным, необходимым набором функции (просмотр и извлечение содержимого архивов или все что можно представить в виде архивов). Ну и в конце опрос о востребованности такого решения и доведения проекта до некого уровня, покрывающего всю возможную часть API и все возможные категории модулей.
Читать полностью »
Рубрика «plugins» - 4
Дружим Total Commander (64 bits) и plugins (32 bits)
2013-11-19 в 9:45, admin, рубрики: plugins, Total Commander, windows, Программирование, метки: plugins, Total CommanderCustom Tree v2 jQuery plugin + draggable
2013-08-02 в 11:37, admin, рубрики: javascript, jquery, jquery plugins, plugin, plugins, tree, treecontrol, treeview, Веб-разработка, метки: javascript, jquery plugins, plugin, plugins, tree, treecontrol, treeview На днях решил вернуться к перепиливанию одного своего старенького Open Source проекта.
В процессе обдумывания решил, что предыдущий компонент с деревом в его нынешнем виде меня больше не устраивает.
Хотелось чего-нибудь более Event Driven, с понятным и простым API.
Сейчас решил, что оно уже готово для Public.
Берите, пользуйтесь.
Или посмотрите на example в рамках GH-pages.
Под катом краткий перевод краткой документации по API.
UPD: в комментариях мой код для организации перетаскивания.
Читать полностью »
Разработка плагина IntelliJ IDEA. Часть 7
2013-07-28 в 14:59, admin, рубрики: development, intellij idea, java, plugins, ПрограммированиеВ этой части: компоненты пользовательского интерфейса. Предыдущая часть тут.

IntelliJ IDEA включает в себя большое количество пользовательских Swing-компонентов. Использование этих компонентов в ваших плагинах гарантирует, что они будут выглядеть и работать согласовано с остальным пользовательским интерфейсом IDE и часто позволяет уменьшить размер кода, по сравнению с использованием стандартных Swing-компонентов.
Меню и панели инструментов
Меню и панели инструментов (тулбары) строятся с использованием системы действий (как уже было описано во второй части).Читать полностью »
Разработка плагина IntelliJ IDEA. Часть 6
2013-07-23 в 7:51, admin, рубрики: development, intellij idea, java, plugins, ПрограммированиеВ этой части: рефакторинги, форматирование, настройки и другие полезные функции. Предыдущая часть.
Рефакторинг «Переименование»
Операция переименования в IntelliJ IDEA похожа на «Find Usages», IDEA использует те же правила для поиска элементов для переименования и тот же индекс слов для нахождения файлов, в которых могут быть ссылки на элемент, который будет переименован.
Когда выполняется этот рефакторинг, на целевом элементе вызывается метод PsiNamedElement.setName(), а для всех ссылок на него – метод PsiReference.handleElementRename(). Оба метода выполняют одно основное действие – замену нижележащего AST-узла, новым, содержащим введенный пользователем текст. Создание полностью корректного AST бывает довольно сложным, но можно воспользоваться следующим методом: создать фиктивный файл пользовательского языка, содержащий необходимый узел, и затем скопировать его.Читать полностью »
Разработка плагина IntelliJ IDEA. Часть 5
2013-07-21 в 9:36, admin, рубрики: development, intellij idea, java, plugins, ПрограммированиеВ этой части: подсветка, ссылочная система, автодополнение, навигация по коду. Предыдущая часть здесь.
Подсветка синтаксиса и ошибок
Класс, используемый в IDEA для определения, как соответствующий текстовый диапазон должен быть подсвечен, называется TextAttributesKey. Экземпляр этого класса создается для каждого различного типа элементов, которые должны быть подсвечены (ключевые слова, числа, строки, комментарии и т.д.), он определяет атрибуты по-умолчанию, которые применяются к элементам соответствующего типа (например, ключевые слова выделяются полужирным, числа – синим, строки – курсивом и зеленым фоном). Отображение TextAttributesKey на специфические атрибуты, используемые в редакторе, определено классом EditorColorsScheme и может быть настроено пользователем, если плагин предоставляет соответствующий конфигурационный интерфейс. В подсветке может использоваться наложение нескольких TextAttributeKey: например, один ключ может определять начертание, а другой – цвет элемента.Читать полностью »
Разработка плагина IntelliJ IDEA. Часть 4
2013-07-20 в 11:57, admin, рубрики: development, intellij idea, java, plugins, ПрограммированиеНаконец добрались до самой мякотки, в этой части — лексический и синтаксический разбор, PSI (Program Structure Interface), стабы (Stubs). Предыдущие части: 1, 2, 3
IntelliJ IDEA это не только Java IDE, но и мощная платформа для построения инструментов разработки для любого языка. Большинство функций IDEA состоят из двух частей: независимой от языка и специфической для конкретного языка программирования. Поэтому поддержка особенностей какого-либо языка не требует особых усилий – необходимо реализовать лишь специфическую часть, а независимая от языка предоставляется платформой. В дополнение, IDEA предоставляет мощный фреймворк, который позволяет реализовывать собственные функции, необходимые при разработке инструментария.
Регистрация типа файла
Первым шагом при разработке плагина специфического языка является регистрация связанного с ним файлового типа. Обычно IDEA определяет тип файла в соответствии с его именем (расширением).
Тип файла специфического языка – это класс, унаследованный от LanguageFileType, который передает экземпляр класса Language в родительский конструктор. Для регистрации типа файла необходимо предоставить реализацию интерфейса FileTypeFactory, зарегистрированную в точке расширения com.intellij.fileTypeFactory:
<extensions defaultExtensionNs="com.intellij">
…
<fileTypeFactory implementation="com.intellij.lang.properties.PropertiesFileTypeFactory"/>
…
</extensions>
Разработка плагина IntelliJ IDEA. Часть 3
2013-07-19 в 18:22, admin, рубрики: development, intellij idea, java, plugins, ПрограммированиеНемного теории о проектах и VFS. Предыдущая часть тут.
Структура проекта
В IntelliJ IDEA проект инкапсулирует все исходные коды, библиотеки, сценарии сборки в едином организационном блоке. Абсолютно все действия в IDEA происходят в контексте проекта. Проект может содержать коллекции модулей и библиотек. В зависимости от логических или функциональных требований, можно создать одномодульный или многомодульный проект.
Модули
Модуль – это отдельная сущность функциональности, которая может быть запущена, протестирована и отлажена независимо.
Модули включают такие вещи как исходные коды, сценарии сборки, юнит-тесты, и т.д. Каждый модуль в проекте может использовать определенный SDK, либо наследовать SDK проекта. Модули могут зависеть от других модулей в проекте.Читать полностью »
Разработка плагина IntelliJ IDEA. Часть 2
2013-07-19 в 14:07, admin, рубрики: development, intellij idea, java, plugins, ПрограммированиеПродолжаем неравный бой с документаций Intellij IDEA. Предыдущая часть находится здесь.
Конфигурационный файл плагина
Вся функциональность, предоставляемая плагином, а также описание и данные об авторе перечисляются в файле plugin.xml.
Рассмотрим структуру файла, в котором присутствуют практически все значимые элементы.
Читать полностью » Разработка плагина IntelliJ IDEA. Часть 1
2013-07-19 в 9:06, admin, рубрики: development, intellij idea, java, plugins, ПрограммированиеЗа последнее время у меня накопилось достаточно материалов по разработке плагинов для IntelliJ IDEA, чем и собираюсь поделиться с читателим.
Среда разработки и инфраструктура
Прежде чем начать программировать плагин стоит рассмотреть устройство среды разработки, поддерживаемые функции и их реализацию, и, разумеется, настройку IDE необходимую для разработки плагинов.
Для разработки плагинов подойдет любая современная версия Intellij IDEA – она уже включает в себя полный набор необходимого инструментария.Читать полностью »
Taist: заточи «облака» под себя
2013-06-26 в 13:54, admin, рубрики: addons, javascript, plugins, SaaS, taist, userscripts, кастомизация, я пиарюсь, метки: addons, javascript, plugins, SaaS, taist, userscripts, кастомизация 
Пост будет вам интересен, если вы: активно используете в работе любые облачные сервисы — например, для управления разработкой и проектами — Trello, Basecamp, Asana, Мегаплан, qTrack, для бухгалтерии и торговли — МойСклад, МоеДело, для CRM — AmoCRM, Highrise, и любые другие.
Еще интереснее будет, если вы при этом:
- уже кастомизировали какой-либо софт или сайт, то есть адаптировали его под свои нужды — например, меняли исходники, писали плагины или, особенно, пользовательские стили/скрипты
- либо хоть раз писали разработчикам используемых сервисов свои пожелания по функционалу
