Плейсхолдер глобальных переменных для NSMP — чистая, лёгкая и IDE-ориентированная библиотека, предоставляющая статические классы с глобальными переменными для автодополнения и удобства разработки.
В NSMP скрипты зачастую используют глобальные переменные runtime контекста (Например subject, user, api, utils). IDE не понимает эти переменные из коробки, что усложняет разработку и снижает developer experience.
nsd.sdk.global_variables решает эту проблему структурно:
- Предоставляет статические классы-плейсхолдеры для всех ключевых NSD-переменных,
- Повышает IDE-поддержку (автодополнение, навигация по коду),
- Снижает число ошибок во время разработки.
- Разработка NSD-скриптов в IntelliJ IDEA и других Java-IDE
- Повышение читаемости и поддержки кода
- Минимизация ошибок на этапе написания логики
Tip
Всегда используйте актуальную версию из репозитория.
- Добавьте репозиторий в конфигурационный файл gradle
build.gradle.ktsвашего проекта:
repositories {
maven {
url = uri("https://maven.pkg.github.com/exeki/*")
credentials {
username = System.getenv("GITHUB_USERNAME")
password = System.getenv("GITHUB_TOKEN")
}
}
mavenCentral()
}- Добавьте туда же библиотеку:
dependencies {
implementation("ru.kazantsev.nsd:sdk.global_variables:<version>")
}Для maven алгоритм такой же, но синтаксис будет другой.
Для получения автодополнения и подсказок IDE подключите статические импорты в свой скрипт:
import static ru.kazantsev.nsd.global_variables.ApiPlaceholder.*;
import static ru.kazantsev.nsd.global_variables.GlobalVariablesPlaceholder.*;Пример:
ISDtObject employee = utils.find('employee', [:])
ISDtObject comment = utils.create(comment, [
source: subject,
author: employee,
])Warning
Если хотите переносить скрипты с использованием данных плейсхолдеров в NSMP без удаления импортов из скриптов, нужно добавить модуль sdkPlaceholder в инсталляцию.
src/main/java/ru/kazantsev/nsd/sdk/global_variables/
├── ApiPlaceholder.java
├── GlobalVariablesPlaceholder.java
├── MailVariablePlaceholder.java
└── ...
- ApiPlaceholder — Глобальные API-объекты (
api,utilsи др.). - GlobalVariablesPlaceholder — Базовые переменные контекста (
subject,userи др.). - MailVariablePlaceholder — Переменные, используемые в обработчиках почты.
PR и идеи по расширению списка плейсхолдеров приветствуются (если по делу).
Рекомендуемый flow:
git fork https://github.com/exeki/nsd.sdk.global_variables
git checkout -b feature/<name>
git commit -m "feat: description"
git push origin feature/<name>