Большинство комплишенов моего плагина подсказывают параметры внутри методов.
$foo->bar('тут комплитим'); в процессе вырисовался обьект CompletionContext, в котором есть обьект Parameter, и обьект ParameterList - это уже внутренние объекты PhpStorm. И юзались они везде и часто.Теперь возникла мысль, что
$foo['тут комплитим'] и $foo('тут комплитим') - это тоже вызовы методов! И если на них смотреть по-другому, как $foo->offsetGet('тут комплитим') и $foo->__invoke('тут комплитим'), то все станет сильно проще для меня. Но внутренние объекты шторма там другие, поэтому надо обьект CompletionContext абстрагировать немного. Но не получается. Он был открыт, все лезли в его внутренности и построить абстракцию, когда там не метод, а вызов массива или __invoke, не получается.Сижу теперь делаю поля приватными и методы как можно более абстрактными. За 5 лет там много накопилось.