Магия IntelliJ IDEA: Language Injection Пишешь SQL запрос в строке — ни подсветки синтаксиса, ни проверки, ни автодополнения.
Пишешь SQL запрос в строке — ни подсветки синтаксиса, ни проверки, ни автодополнения. Опечатка в названии таблицы найдется только в рантайме. JSON в тесте? Вручную экранируешь кавычки и молишься, что не забыл запятую.
А IDEA умеет превращать строковые литералы в полноценные мини-редакторы с поддержкой нужного языка.
🟢 Что делает
— Внедряет поддержку другого языка (SQL, JSON, RegEx, HTML) внутри строкового литерала Java
— Включает подсветку синтаксиса, автодополнение, проверку ошибок для внедренного языка
— Позволяет редактировать в отдельном окне с полноценным редактором
— Понимает контекст: для SQL подключается к БД и предлагает реальные таблицы и колонки
🟢 Зачем это нужно
— Нативные SQL запросы в JDBC перестают быть черным ящиком — видишь ошибки до запуска
— JSON в тестовых данных валидируется на лету, форматируется одной кнопкой
— RegEx с подсветкой групп захвата и встроенным тестером
— HTML/XML в шаблонах проверяется на корректность структуры
— Xpath выражения с автодополнением элементов
🟢 Как использовать
— Автоматически: IDEA часто сама определяет язык (например, для методов createQuery, Pattern.compile)
— Вручную: Alt+Enter на строке → "Inject language or reference"
— Через аннотацию: добавить @Language("SQL") над String параметром
— Редактирование: Alt+Enter → "Edit SQL/JSON/RegEx fragment" — открывает полноценный редактор в popup
Java библиотека