@ilmirus кста, есть целых 2 варианта макросов которые не убьют поддержку в IDE. Первый это деривация для силд классов, второй это блекбокс макросы. Деривация имеет интерфейс простой как пробка, но в то же время полезная штуковина для всяких там кодеков и так далее. Вот есть пример как это сделано в магнолии:
https://propensive.com/opensource/magnolia/tutorial но если вам тайпклассы не уперлись, это же прекрасно переносится на реализации интерфейса. Блекбос макросы - это та же функция, у которой есть стандартная сигнатура, при этом компиль не лезет в тело пока не протайпчекает все остальное, а когда протайпчекает, пусть отдает синтаксическое дерево кода в юзерскипт ака тот же самый макрос, после чего компиль перетайпчекивает макрос ещё раз, в итоге и макросы есть, и IDE жива.