Вынести диагностику проверки опечаток в отдельную библиотеку-сервис
На текущий момент в BSL LS есть проверка опечаток (Typo), которая ищет орфографические ошибки в коде. Для её работы требуется использование библиотеки LanguageTool, которая включает в себя как ядро, так и два словаря (английский и русский). Однако, на мой взгляд, такой подход слишком сильно вредит самому BSL LS:
- Размер. Language Tool огромен. На текущий момент jar BSL LS "весит" 76 МБ, из них 48 МБ (63%) занято LanguageTool. Это достаточно сильно вредит как конечным пользователям (они должны платить за размер, даже если не используют данную диагностику), так и самому BSL LS. В случае выноса LS из плагина сонаркуба необходимо будет поставлять рантайм для трех основных ОС (Windows, *nix, macOS). С использованием jlink упаковка трех рантаймов + BSL LS займет 200+ МБ, что составляет довольно значительный объем.
- Расширение. Сейчас в BSL LS вшиты словари наиболее популярных языков (английский и русский). Однако существуют так же потребность во вьетнамских, украинских, турецких и прочих словарях. Для их добавления необходимо дорабатывать BSL LS, плюс дополнительные словари увеличат и без того большой объем библиотеки.
- Модульность. Language tool мешает полноценному внедрению JPMS, так как содержит одинаковые имена пакетов, что вызывает конфликт при сборке дистрибутива jlink.
Учитывая вышесказанное, предлагается сделать отдельный (не в рамках BSL LS) сервис, в который уедет вся логика проверки слов-токенов, все зависимости Language Tool и который будет предоставлять удобную для клиента кастомизацию настроек исключений и словарей. Данный сервис может подниматься BSL LS и общаться с ним по (не)бинарному протоколу, например JSON-RPC.
Сервис будет скачиваться либо самим БСЛ ЛС, либо вручную пользователем, если в настройках сервера включена проверка орфографии.
я тебя породил я тебя и убью
Идея здравая
Даешь легковесный LS!