Курсор клавиатуры находится в некотором документе (окне, не знаю, как оно точно называется). 
Нужно считать текущую строку, затем предыдущую строку, затем строку перед предыдущей и т.п. 
Ищем среди них строку, которая имеет вид MODULE<эн пробелов>Идентификатор<что угодно>. 
От этой строки запускаем парсер модуля, строим AST (заимствуем функционал из компилятора). Если нам удалось построить AST, то находим в нём место, в котором стоит курсор и возвращаем стек вложенных узлов AST. Если не удалось, то извлекаем слово под курсором (по правилам формирования идентификатора, с учётом возможности появления в нём кириллицы) и возвращаем что-нибудь по смыслу равное "слово такое-то в модуле таком-то" . 
Постановка задачи кривая, поскольку на самом деле для этой задачи нужен парсер, способный построить AST для некорректного текста. Решение этой задачи в принципе существует, но это сложно. Поэтому пока будем так. Видимо, в ББ есть какое-то восстановление после ошибок. 
Применить это можно будет для:
- точного перехода к определению (функция из другого модуля с учётом переименования при импорте, переменная в этом модуле и т.п.)
 - показать документацию к идентификатору в виде hint-а или чего-то подобного. 
 - показать документацию или интерфейс текущего модуля за одно нажатие
 - показать, в какой функции мы находимся
 
Ваши ставки.