Здравствуйте, xeno.by, Вы писали:
XB>Насчет IDE я потому и спросил, что в статье только конспективно. Интересно было бы узнать подробности. Скажем, нажимаю я ctrl+space. Что происходит дальше?
Получаешь дополнение текущего символа.
Технически проходит парсинг в специальном режиме. В нем отслеживается позиция курсора и если в ней находится некий символ, то он обрабатывается специальным образом. Если в обычном режиме мы пытаемся найти полное соответствие символа, то в этом мы ищем префикс, подстроку (определяется функцией фильтрации) или некий другой символ (например, точку в ООЯ). Далее, если найден ровно один символ, то мы его молча комплитим. Если найдено несколько символов, мы создаем список комплита как сумму всех возможных значений символа.
Возможно в грамматике придется описать места возможного комплита. Это уже детали которые надо будет продумать по глубже.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.