Одно слова никак не может быть Affect-Rang'ем. Это раз.
Сколько угодно слов не может быть Affect-Range'ем, если каретка не в нём. А у тебя — не в нём.
Насколько я понял, ты ошибочно понимаешь смысл фразы «Affect-Range'е» как то так: affect-range — это что-то в коде, на суть чего влияет какая-то правка. Вот у тебя в коде факт закоментированности строки влияет на то, именем класса или именем переменной будет являеться идентификатор «Value» в коде. Я понял твою ошибку.
Ещё раз. Это совсем не то.
Представь себе контрол TextBox.
У него есть событие Change. В нём можно написать какую-то обработку.
У него есть событие Validate. В нём можно написать обработку, которая проверит правильность.
Событие change происходит абсолютно при каждой правке.
Событие Validate происходит, когда фокус покидает контрол.
А теперь представь себе такой TextBox, в котором события Change и Validate объедини в одно событие. И происходит оно не после каждой написанной/стёртой буквы, а после того, как пользователь осуществил редактирование достаточно большого блока. Вот этот блок и есть Affect-Range.
Affect-Range — это множество символов, токенная принадлежность которых может поменяться в результате редактирования. Например, они были частью строки, станут частью идентификатора. Были частью идентификатора, станут частью коментария. И т.п.
Affect-Range — это не множество символов, являющихся частями токенов, отождествляющих идентификаторы, суть которых (идентификаторов) может поменяться после редактирования какого-то блока.
Твоя ключевая ошибка в понимании меня хорошо видна в этом вопрос:
Qwertiy писал(а):В какой момент должно быть обработано изменение значения слова?
Изменение значения слов — это малозначимая (я знаю, будешь рьяно протестовать) задача. По крайней мере она очень вторична по сравнению с задачей определения «где здесь вообще что», то есть определения того, где начинается и заканчиваются идентификаторы, комментарии, строки, числа и т.п.
Qwertiy писал(а):Замечу кстати, что VB6 не подсвечивает имена классов.
Во-первых, какой смысл их подсвечивать, если единственное место, где могут появиться имена классов, это после ключевого слова New?
Во-вторых, VB хранить информацию о синтаксических структурах, имеющихся в коде, но не о связях сущностей и действий.
Например строку gva = 42 хранят не как информацию о том, что переменной gva присваивается значение 42, а как информацию о том, что чему-то с именем «gva» присваивают значение 42. VB принципиально, намеренно не хранит и не ведёт учёт того, что как с чем связано, потому что он должен уметь хранить в том числе и представление напрочь неправильного кода с помощью дерева. И он должен уметь показывать IntelliSense, в тех обстоятельствах, когда код неправилен.