Разработка 1C:EDT Plugin в IntelliJ IDEA
Не обязательно использовать Eclipse RCP, особенно если больше по душе IntelliJ IDEA. В этом нет ничего сложного.
Подготовка
В первую очередь необходимо установить 1C:EDT (использовалась версия 2022.2.5+10) и IntelliJ IDEA (использовалась версия 2023.1.2 (Community Edition)). Для разработки плагина 1C:EDT достаточно использовать IntelliJ IDEA CE c установленным плагином OSGi (использовалась версия 231.8109.90).
Создание проекта
Создать новый проект. Указать имя и расположение проекта. Язык Java, система сборки IntelliJ. Пример кода в проект не добавлять.

Добавление библиотеки 1C:EDT
Открыть Project Structure и выбрать Libraries.
Добавить новую Java библиотеку, выбрав путь к директории plugins из директории установки 1C:EDT.

Класс активатор
Активатор не является обязательным классом, но в дальнейшем он все таки понадобится. Лучше создать его заранее, так как он управляет жизненным циклом плагина и потребуется для получения экземпляра плагина.
В директории src необходимо создать Package com.skycorvette.example и в него добавить Java Class Activator, расширяющий реализацию класса org.eclipse.core.runtime.Plugin.
package com.skycorvette.example;
import org.eclipse.core.runtime.Plugin;
import org.osgi.framework.BundleContext;
public class Activator extends Plugin {
@Override
public void start(BundleContext context) throws Exception {
super.start(context);
}
@Override
public void stop(BundleContext context) throws Exception {
super.stop(context);
}
}Структура файлов проекта
<root>
└─── src
└── com.skycorvette.example
└── Activator.java
Настройка OSGi
Открыть Project Structure и выбрать Modules.
Добавить модуль OSGi и заполнить Manifest Generation.
Symbolic name: com.skycorvette.example;singleton:=true
Bundle activator: com.skycorvette.example.Activator
Bundle version: 1.0.0.1
Additional properties:
Bundle-Vendor: Sky Corvette Team
Bundle-Name: Example
В директории установки 1C:EDT рядом с директорией plugins создать директорию dropins. Если доступ на запись в данную директорию ограничен, необходимо предоставить. Указать расположение результирующего файла плагина, выбрав путь к созданной директории dropins.

Проверка плагина в 1C:EDT
Собрать проект, запустить 1C:EDT и открыть окно About 1C:Enterprise Development Tools, нажать кнопку Installation Details и перейти к разделу Plug-ins. Проверить, что плагин присутствует в списке. Пока плагин ничего не делает.
Точка расширения
Пришло время реализовать в плагине функциональность, расширяющую возможности 1C:EDT. Например, валидацию в модулях встроенного языка.
Для этого необходимо создать Java Class Validator, реализующий интерфейс com._1c.g5.v8.dt.bsl.validation.IExternalBslValidator. Интерфейс IExternalBslValidator объявлен устаревшим, так как существует новый механизм проверок. Используется только для демонстрации возможностей.
package com.skycorvette.example;
import com._1c.g5.v8.dt.bsl.validation.CustomValidationMessageAcceptor;
import com._1c.g5.v8.dt.bsl.validation.IExternalBslValidator;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.util.CancelIndicator;
public class Validator implements IExternalBslValidator {
@Override
public boolean needValidation(EObject eObject) {
return false;
}
@Override
public void validate(EObject object, CustomValidationMessageAcceptor messageAcceptor, CancelIndicator monitor) {
IExternalBslValidator.super.validate(object, messageAcceptor, monitor);
}
}plugin.xml, который описывает, как плагин расширяет возможности 1C:EDT.
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<extension point="com._1c.g5.v8.dt.bsl.externalBslValidator">
<externalValidator
class="com.skycorvette.example.Validator">
</externalValidator>
</extension>
</plugin>plugin.xml в состав сборки.
Результирующая структура файлов проекта
<root>
├─── src
│ └── com.skycorvette.example
│ ├── Activator.java
│ └── Validator.java
└─── plugin.xml
Запуск и отладка
Открыть Run/Debug Configurations и добавить новую конфигурацию JAR Application. В качестве Path to JAR указать файл org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar, расположенный в директории plugins установки 1C:EDT. Для MacOS указать VM options -XstartOnFirstThread.
Теперь можно запускать 1C:EDT из IntelliJ IDEA и использовать отладку.
Комментарии и вопросы в telegram